Email or username:

Password:

Forgot your password?
30 comments
Dieter Komendera

@nikitonsky Mastodon clocking in just at 1,7 MB is rather refreshing for the social media section

technomancy (turbonerd aspect)

@kommen @nikitonsky tbh mastodon's stock frontend still feels super clunky after using pinafore for a few years (560kb)

Raphael

@nikitonsky Surprised you didn't try Miro. Huge memory consumption on their tabs but I've never checked the raw amount of scripts.

Niki Tonsky

@OmegaPolice I don’t really use it, don’t even have an account. If you use it, you can measure yourself! I’m very curious to know

Raphael

@nikitonsky Fair. 😅

Hope I checked the right boxes. Opened a single Miro board there. "Finished" was more like ≈40s, is keeps sending requests (of course it does).

Anyway: 29MB
Not as bad as I thought!

Niki Tonsky

@OmegaPolice yeah that’s a lot. My baseline is still Figma. Is Miro 1.5x complexity of Figma? Probably not

Raphael

@nikitonsky No idea, don't think I've ever used Figma.

Nolan Lawson

@nikitonsky Great post! Unfortunately though I think "disable cache" may be over-reporting. For react.dev for example, it looks like it is continually re-downloading the same resources as you scroll.

My workaround is usually to use a fresh private window rather than "disable cache," FWIW.

Nikita Karamov

@nolan a valid argument for some sites, but for react.dev? It's a blog post with static information, why does it even try loading a script in the first place, and why does it do it over and over again? Yeah, it's not what a typical user would experience, but it's still crazy dumb behaviour :D

@nikitonsky

Ben

@kytta @nolan @nikitonsky because most of their pages have inline code editors where you can write code and see the output in action. A lot of their pages have multiple embedded editors. Having caching enabled would prevent that from being an issue.

I’m not excusing the total JS size, but calling it just static code is a bit disingenuous.

David McCormick

@nikitonsky excellent post! In conclusion… use jQuery?

gom

@nikitonsky
You should try Nextcloud. Without caching this stuff becomes almost unusable. With some additional Apps the Dashboard alone is at 45MB.

🍃 Nick 🍁

@nikitonsky just used your method to check out what we have for karrot.world / @karrot

1.86mb of JavaScript for logged in main view - with maps, threaded messaging, emoji reactions, "events", etc...

Compares quite favourably to sites of similar complexity from your post (discord = 21mb, slack = 55mb!!!).

We also always publish a bundle analysis along with the code, e.g. karrot.world/bundlesize.html (ah, just noticed we've accidentally pulled in lodash recently!)

Ben

@nikitonsky great post! So many of those examples are awful, especially because of how many of those sites were probably doing okay… until they injected shit tons of marketing JS. It’s a huge bummer to see how the app-ification of sites has led to such a negative first-load experience.

Just makes me… want to work for those companies and try to fix stuff.

The PornHub vs YouTube comparison is especially great, because the different monetization models result in vastly different outcomes.

Niki Tonsky

@sangster somebody mentioned on HN that Pornhub just can’t allow “load once, serve from cache” model since they are usually run in private windows

Ben

@nikitonsky wow, that is also an extremely fascinating evolutionary pressure.

Andy

@nikitonsky Great post!

I've been wondering about something in regards to ad/tracking scripts on some of the example pages, as some basically cover entire sections of your DevTools screencaps.

and in the case of GitLab, if I browse it using an adblocker, I get about 10 MB of assets, without an adblocker it goes up to 17 MB.

Almost double.

Charlesflorian

@nikitonsky A webapp we develop for internal users is sitting at around 8MBs of javascript at the moment. So... middle of the pack, I guess?

David Foster

@nikitonsky Agreed that the average website in 2024 is trending toward JS bloat. Even GitHub is moving in this direction.

To counter this effect I think there needs to be better documentation/tutorials for using modern frontend reactive JS frameworks (like Vue or React) with traditional backend frameworks (like Django, Rails, even PHP).

#Vue 2 did a good job here. But Vue 3 docs mainly focus on SFCs and Vite, which don’t play nice with other frameworks.

Daniel

@nikitonsky Is it bloat if the Slack app cold cache download is 55 MB if

- the user experience is smooth
- users get magnitudes more value using it
- they include code for debugging and observability
- they can develop new features quickly and cost-effectively

In that 55 MB there's an audio/video client for huddles, real-time notifications, integrations for those memes, single-sign ons; analytics, error tracking. And much more.

Those apps are not comparable to static sites.

@nikitonsky Is it bloat if the Slack app cold cache download is 55 MB if

- the user experience is smooth
- users get magnitudes more value using it
- they include code for debugging and observability
- they can develop new features quickly and cost-effectively

In that 55 MB there's an audio/video client for huddles, real-time notifications, integrations for those memes, single-sign ons; analytics, error tracking. And much more.

James J Malcolm

@nikitonsky really good post - I wonder what photopea.com ads up to - it being effectively photoshop in the browser.

Kushal Das :python: :tor:

@nikitonsky This is such a good post, thank you. The first thing I did after reading this is to check my own blog first for the JS size :)

Tim :dotnet: :csharp: :blazor:

@nikitonsky I think it would be interesting to include the "other" files as well, as many actually complex web apps are moving to web assembly code for computation.

Scott Martin

@nikitonsky Another thing to add to the list of reasons why I like Fastmail. Great post, thanks

Iron

@nikitonsky Relatedly, I was clearing cached data out of Chrome yesterday night and discovered that the Ace Hardware website, which I’m pretty sure I visited ONCE almost two years ago to buy some dowels, was consuming 699 MEGABYTES of site storage. Just gonna let that hang in the air.

Go Up