Hacker News new | ask | show | jobs
by uKVZe85V 855 days ago
TL;DR: on that site, 77% of first-party bandwidth is Javascript. Serving HTML instead of Json would cut the bandwidth by 4.4.

> It's minimal and most code is on the server. Also it's a small footprint and proven to be fast (Preact). This site has a 100 performance score on Google Pagespeed,

Yes, it's nicely minimal in a number of aspects. Good point.

> JS doesn't mean bad UX.

For those who run their browser with scripts off by default it is.

Disabling JS and cookies by default has another nice benefit: on a number of sites, the stupid content-obcsuring cookie banner just does not exist (as well as ads, of course). And pages load time is much better.

> Blocking third party scripts and cookies is one thing, but not wanting first party script just forces the developer to use server-side templating for their static content which means you either deliver everything from the same origin (bad for latency) or chain a CDN in front that picks out static content to cache (I don't think that's compatible with the web 2.0 ideology).

That doesn't hold.

If a server can format data into a Json, it can format the same data into HTML and serve it the same. In the specific case of this site, the generated HTML has the same lifetime as the generated Json.

From the site: "It is updated every 2 hours."

Ironically, because this site is nicely minimal in a number of aspects, one can play with statistics. Not counting cloudflare beacon js, I measure

1.16k HTML, 1.56k CSS, 18.44k JS, 1.05k favicon.svg, 1.61k JSON payload.

Therefore 77% of bandwidth used is Javascript:

    p=(1.16+1.56+1.05+1.61) ; j=18.44 ; 100*j/(j+p)=77
By serving HTML instead of Json (at the same price), the bandwidth cost would be divised by 4.4:

    p=(1.16+1.56+1.05+1.61) ; j=18.44 ; (j+p)/p = 4.4
Think about it: running custom code on each browser of each visitor to perform exactly the same computation and yield the same DOM each and every time is totally useless.

All in all, serving a full HTML page instead of a HTML shell + custom JS + Json totally makes sense.

The good news is, for the past year I have started to hear seasoned web developers complain more about the sad state web development has been for years, and longing for some simplicity. Wait and see.

Kudos to the author for embracing minimalism. You can go a step further.