Show HN: Kage – किसी भी वेबसाइट को ऑफ़लाइन देखने के लिए एक ही बाइनरी में शैडो करें

उद्देश्य और मुख्य विचार

  • यह टूल पूरी वेबसाइटों को (सिर्फ़ एकल पेजों को नहीं) ऑफ़लाइन-मैत्रीपूर्ण बंडलों में मिरर करता है।
  • JS निष्पादन के बाद रेंडर किए गए DOM को कैप्चर करता है, स्क्रिप्ट्स हटाता है, और संसाधनों को फिर से लिखता है ताकि स्नैपशॉट बिना नेटवर्क एक्सेस के काम करें।

मौजूदा टूल्स से तुलना

  • JS-भारी साइटों (जैसे SPAs, Next.js) के लिए इसे HTTrack/wget का एक आधुनिक विकल्प माना गया है।
  • अक्सर SingleFile/SingleFileZ और archiveweb.page के साथ तुलना की गई:
    • SingleFile को उच्च-निष्ठा वाले एकल-पेज सेव और base64 बंडलिंग के लिए सराहा गया है।
    • SingleFile पहले से ही स्कोप्ड रिकर्सिव क्रॉल का समर्थन करता है; कुछ लोग जटिल फीचर्स (shadow DOMs, iframes, websockets, deduping) के लिए इसकी तकनीकों को अपनाने का सुझाव देते हैं।
  • इसका उल्लेख grab-site, browsertrix, Kiwix/ZIM, gwtar, mhtml, Teleport Pro, curl, और “Print to PDF” के साथ भी किया गया।

आउटपुट फ़ॉर्मेट और वितरण

  • वर्तमान में यह आउटपुट देता है:
    • स्टैटिक HTML फ़ोल्डर।
    • ZIM फाइलें (कई प्लेटफ़ॉर्म पर Kiwix रीडर्स के लिए)।
    • स्व-निहित executable जो एक webview और archive को एम्बेड करते हैं।
  • सुझाव:
    • क्लाइंट-साइड रूटिंग के साथ एक ही स्व-निहित HTML।
    • एक self-extracting archive जो उपयोगकर्ता के ब्राउज़र में खुलती है (CHM-जैसी)।
    • Obsidian/Logseq जैसे टूल्स के लिए उपयोग हेतु Markdown फ़ोल्डर; EPUB निर्यात।

उपयोग के मामले

  • ब्लॉग, दस्तावेज़, कंपनी विकी, Confluence, और dev docs (जैसे Apple docs, Snowflake) का ऑफ़लाइन पठन।
  • यात्रा/ऑफ़लाइन परिदृश्य (उड़ानें, ट्रेनें, बिना कनेक्टिविटी वाली साइटें)।
  • दीर्घकालिक व्यक्तिगत आर्काइव और शोध पहुँच।

तकनीकी व्यवहार और सीमाएँ

  • Chrome/Chromium का उपयोग करता है; आसान सेटअप के लिए Docker की सिफारिश की गई है।
  • वर्तमान कमियाँ/अनुरोध: साइट लोड कम करने के लिए throttling, images/videos को बाहर रखना, partial crawls, cookie/auth समर्थन, paywalls को संभालना, और embedded videos।
  • स्थानीय HTTP server के माध्यम से सर्व करना file:// CORS/origin की विचित्रताओं से बचाता है; इस मोड में ब्राउज़र कितने प्रतिबंधात्मक हैं, इसे लेकर कुछ बहस है।

सुरक्षा और भरोसे संबंधी चिंताएँ

  • Docker में Chrome के साथ --no-sandbox के उपयोग पर चिंता उठाई गई; बाद में env/flags के जरिए इसे केवल Docker तक सीमित किया गया।
  • कुछ लोग archives को binaries के रूप में संग्रहीत करने पर भरोसा नहीं करते; साझा करने के लिए HTML/ZIM को प्राथमिकता देते हैं।
  • संबंधित binary के लिए antivirus false positive की रिपोर्ट की गई।
  • कुछ पाठकों को README की शैली बहुत नापसंद आई, उन्होंने इसे “LLM slop” कहा, और सवाल उठाया कि क्या कोड की गुणवत्ता भी वैसी ही है।

आर्काइविंग इकोसिस्टम और दीर्घकालिक चिंताएँ

  • WARC बनाम mitmproxy captures, HTTP/2/WebSockets, और संभावित नए archival formats पर चर्चा।
  • स्थापित formats (WARC, ZIM) के साथ compatibility में रुचि, और यह सवाल कि समय के साथ “इसे एक दशक तक संभाल कर रखें” कितना सही बैठता है (अस्पष्ट)।