Remix.run Logo
calebm 2 days ago

https://fuzzygraph.com is a 1.4Mb Single HTML file that I have a build script for (https://github.com/calebmadrigal/fuzzygraph).

notpushkin 6 hours ago | parent | next [-]

Alright, this is pretty cool. I don’t see any reason for it to be a single-file web app, though!

Going through your article on the topic [0], I think the only strong point that SFWAs have which SPAs don’t is: “you can download and run them completely offline”. This highlights the best use case for SFWAs – it is something that you might want to download and run offline. Hypervault [1] is a better example here, IMO.

SFWAs do have drawbacks, mainly the inability to cache things independently (it’s all-or-nothing), or to download things in parallel. So basically it boils down to two questions:

• Is my app something users would want to run offline?

• Will I update it frequently enough for the cache problem to matter?

And it’s up to you to find the balance here.

[0]: https://gods.art/articles/single_file_web_apps.html

[1]: https://gods.art/articles/single_file_web_apps.html#hypervau...

---

Actually I’ve just thought of something.

If it still makes sense to distribute your app as an SFWA, but you have to use a bundler, you can have the best of both worlds by making two builds: one as an SFWA, and one as a “traditional”, chunked static SPA. It should be fairly easy (just make two different configs, building from the same source).

calebm 3 hours ago | parent [-]

The biggest thing for me is how durable it is as an SFWA (avoiding software rot)

Barbing 2 days ago | parent | prev [-]

Pretty graph! iOS Safari, takes just under a second probably to load each time I pan across the graph. Wonder what it’d take to bring it all the way to smooth scrolling—too demanding on resources?

Looking again, figure it has to do all the math again with each pan/drag, so minor latency makes sense.