Gwtar: A static efficient single-file HTML format

(gwern.net)

62 points | by theblazehen 3 hours ago

7 comments

  • simonw 1 hour ago
    TIL about window.stop() - the key to this entire thing working, it's causes the browser to stop loading any more assets: https://developer.mozilla.org/en-US/docs/Web/API/Window/stop

    Apparently every important browser has supported it for well over a decade: https://caniuse.com/mdn-api_window_stop

    Here's a screenshot illustrating how window.stop() is used - https://gist.github.com/simonw/7bf5912f3520a1a9ad294cd747b85... - everything after <!-- GWTAR END is tar compressed data.

    Posted some more notes on my blog: https://simonwillison.net/2026/Feb/15/gwtar/

    • moritzwarhier 27 minutes ago
      Not the inverse, but for any SPA (not framework or library) developers seeing this, it's probably worth noting that this is not better than using document.write, window.open and simular APIs.

      But could be very interesting for use cases where the main logic lives on the server and people try to manually implement some download- and/or lazy-loading logic.

      Still probably bad unless you're explicitly working on init and redirect scripts.

    • 8n4vidtmkvmk 57 minutes ago
      Neat! I didn't know about this either.

      Php has a similar feature called __halt_compiler() which I've used for a similar purpose. Or sometimes just to put documentation at the end of a file without needing a comment block.

  • zetanor 1 hour ago
    The author dismisses WARC, but I don't see why. To me, Gwtar seems more complicated than a WARC, while being less flexible and while also being yet another new format thrown onto the pile.
    • simonw 1 hour ago
      I don't think you can provide a URL to a WARC that can be clicked to view its content directly in your browser.
      • zetanor 51 minutes ago
        At the very least, WARC could have been used as the container ("tar") format after the preamble of Gwtar. But even there, given that this format doesn't work without a web server (unlike SingleFile, mentioned in the article), I feel like there's a lot to gain by separating the "viewer" (Gwtar's javascript) from the content, such that the viewer can be updated over time without changing the archives.

        I certainly could be missing something (I've thought about this problem for all of a few minutes here), but surely you could host "warcviewer.html" and "warcviewer.js" next to "mycoolwarc.warc" "mycoolwrc.cdx" with little to no loss of convenience, and call it a day?

    • obscurette 48 minutes ago
      WARC is mentioned with very specific reason not being good enough: "WARCs/WACZs achieve static and efficient, but not single (because while the WARC is a single file, it relies on a complex software installation like WebRecorder/Replay Webpage to display)."
  • spankalee 13 minutes ago
    I really don't understand why a zip file isn't a good solution here. Just because is requires "special" zip software on the server?
  • O1111OOO 36 minutes ago
    I gave up a long time ago and started using the "Save as..." on browsers again. At the end of the day, I am interested in the actual content and not the look/feel of the page.

    I find it easier to just mass delete assets I don't want from the "pageTitle_files/" directory (js, images, google-analytics.js, etc).

  • renewiltord 31 minutes ago
    Hmm, I’m interested in this, especially since it applies no compression delta encoding might be feasible for daily scans of the data but for whatever reason my Brave mobile on iOS displays a blank page for the example page. Hmm, perhaps it’s a mobile rendering issue because Chrome and Safari on iOS can’t do it either https://gwern.net/doc/philosophy/religion/2010-02-brianmoria...
  • wetpaws 49 minutes ago
    [dead]
  • nullsanity 18 minutes ago
    Gwtar seems like a good solution to a problem nobody seemed to want to fix. However, this website is... something else. It's full of inflated self impprtantance, overly bountiful prose, and feels like someone never learned to put in the time to write a shorter essay. Even the about page contains a description of the about page.

    I don't know if anyone else gets "unemployed megalomaniacal lunatic" vibes, but I sure do.

    • 3rodents 10 minutes ago
      gwern is a legendary blogger (although blogger feels underselling it… “publisher”?) and has earned the right to self-aggrandize about solving a problem he has a vested interest in. Maybe he’s a megalomaniac and/or unemployed and/or writing too many words but after contributing so much, he has earned it.
    • fluidcruft 16 minutes ago
      What's up with the non-stop knee-jerk bullshit ad hom on HN lately?