Skip to main content


Comparing network utilization of Lemmy, Kbin and PieFed


Us sitting here with our fiber internet and recent model phones have it pretty good. But the “i” in iPhone stands for “inequality”. Most people in the world still have pretty bad internet and old/slow phones. For a platform to be widely adopted and to serve the needs of those who often miss out, it needs to be frugal in network and cpu usage.

LemmyKbinPieFed
Home page4.5 MB1.65 MB700 KB – 930 KB
Viewing a post360 KB826 KB (varies)29 KB

Home pages


Due to Lemmy’s javascript-heavy software architecture, visiting a Lemmy home page involves downloading a lot of JavaScript – about 4.0 MB of it. And this only gets you 20 posts! Also community thumbnails, even if displayed as a 22px by 22px icon are served directly from their home instances, unresized, which can often be multiple megabytes in size. The home page of lemmy.nz is currently weighing over 9 MB.

Kbin’s home page comes in at a respectable 1.65 MB due to relying less on JavaScript. However it is let down by not using loading=”lazy” on images so they all need to be loaded immediately and by generating post thumbnails that are twice as big as they need to be.

The PieFed home page, showing 5x more posts than Lemmy, weighs between 700 and 930 KB, depending on which posts are shown. In low bandwidth mode, the home page is only 220 KB due to not having any thumbnails.

Viewing posts


When viewing a post, we can assume various assets (CSS, JS and some images) are cached due to loading the home page first.

The picture looks similar when viewing a post, which is a bit surprising. One of the usual benefits of the JS-heavy SPA architecture used by Lemmy is that once all the ‘app’ is loaded into the browser, subsequent pages only involve a small API call. However, going to a page in Lemmy involves two API calls (one for the page and one for the comments) both of which return quite a bit of data. If you look at the ‘get the comments on this post’ JSON response you can see the developers have fallen into the classic SPA pitfall of “over-fetching“. They’re retrieving a whole haystack from the backend and then using JavaScript to find the needle they want, which involves transferring the haystack over the internet. Ideally the backend would find the needle and just send that to the frontend.

Kbin sends more data than it needs to when viewing a post, again because of not using loading=”lazy” which causes every profile picture of the commenters to be loaded at once. Making this simple fix would bring the weight down, from ~800 KB to around 50 KB.

PieFed only sends 10 KB – 30 KB to show a post, but it varies depending on the number and length of comments. This could be reduced even more by minifying the HTML response but with PieFed under active development I prefer the source to be as readable as possible to aid in debugging.

This is no accident. It is the result of choices made very early on in the development process, well before any code was written. These choices were made based on certain priorities and values which will continue to shape PieFed in the future as it grows. In a world where digital access remains unequal, prioritizing accessible and fast-loading websites isn’t just about technology; it’s a step towards a more inclusive and equitable society.

#Kbin #Lemmy #piefed #threadverse #webPerformance


Low bandwidth mode


New feature: with that checkbox ticked, nearly all images are removed and most of the Javascript.

This is quite personal for me.

Despite making a living coding websites I have spent the majority of the last 10 years on the wrong side of the "digital divide" - living in places with unreliable and slow internet, where I was glad to have a 3G connection with 2 signal bars. For the last 3 years my electricity came from solar panels so on cloudy winter days there was only enough energy to do a couple of hours work and that's it for the rest of the day, unless I just browsed text-only websites or gemini which merely sip the battery.

I know how exclusionary the 'modern' web can be, for billions of people who don't have fiber optic connections, reliable electricity or the latest smartphone. I really know.

While things are now much more comfortable for me, I'm still committed to making this platform more accessible for people facing challenges in internet connectivity, etc. Let's build a more inclusive online space together.


This entry was edited (9 months ago)