home / blog / podcasts / videos / notes / photos / about / more

Lemmy and my Switch to PieFed

Threadyverse software alternatives

Posted by Jeena

Last year, during the Reddit 2023 API controversy I finally deleted my account and moved on to Lemmy. Here’s a look at my experiences and why I eventually decided to switch to PieFed.

Starting with Lemmy

Lemmy logo

Lemmy was great as a Reddit alternative, especially because it's part of the Fediverse like Mastodon and PeerTube and utilizing the same ActivityPub protocol.

It’s also written in Rust, a compiled language known for efficiency and low resource usage. However, setting it up was quite a challenge due to the poorly written docker documentation. After some effort, I got it running and was very happy with it.

Early Impressions and Challenges

At first, Lemmy seemed lightweight, using PostgreSQL as the database and pict-rs for picture storage. The initial version didn't put much load on the server, and even the first update, though clunky because it's bad documentation, worked fine.

The second update was still difficult because of lack of documentation, but on top of it, it increased the load on the server significantly. But I was able to optimize things like getting rid of NextCloud and replacing it with Radicale for CalDav and CardDav, moving to a bigger server and fixing problems with the PostgreSQL configuration for the Postgres Lemmy container, so it would again work for all those months.

Most of the time I was using the app Sync on my Android phone and the web frontend on the computer. The UX was OK but the loading time got worse and worse with every upgrade, so that at the end I had to wait several seconds after clicking something in the UI like notifications, or opening a community, etc.

In pure numbers the load in the beginning was around 1; after the second update of Lemmy, it was around 4, and after the last one, it starts at 8 and then slowly climbs to 12. This is where the server runs out of resources and my other services which run on the same server suffer like Matrix, PeerTube, Mastodon, Syncthing, my Ruby on Rails website and so on, started going down.

I took a whole day to try to optimize it further, I reached out to the Lemmy Matrix room and there were some good souls who tried to help me, but nothing I tried helped, the load would always go up to 12 and create problems for all the other services.

Exploring Alternatives

That is when I decided to check out the other Threadyverse alternatives. There is /kbin which seems down all the time and its fork MBin which seems to have a good community but is written in PHP which I try to avoid. There is Sublink but it's written in Java, I don't think I want to deal with Java's runtime environment. But I also remembered PieFed.

Switching to PieFed

PieFed logo

I remembered that PieFed and that it was written in Python with the goal not to be too complicated. It has very few dependencies and uses Flask as the web framework base to build the software, which values simplicity.

I know Python pretty well and PieFed's promiss of using fewer resources were very appealing to me, after my problems with the resource-hogging Lemmy. I installed PieFed by following the README of the project and within half an hour I had it up and running and federating with other Threadyverse instances.

I manually subscribed to all the same communities as I already had in Lemmy, only to realize that there is an import possibility, but yeah it's OK, there were only 146 communities I imported ^^.

Because it was written in Python I could just look around in the code on my installation and realized that there is a nice themes implementation. I created my own theme and fixed some small things I didn't like how the default one works. Especially as a PWA (Pregressive Webb Application for the phone); I wanted to have it as a standalone one without the whole browser UI, because I can use gestures on my phone.

Rough edges in PieFed

There are still many rough edges though, like:

But the guys who work on it are very active and happy that someone is trying their software and very eager to figure out how to help you with your problem. Sometimes it's too complicated so it goes into the issue backlog and will be worked on later.

Comparison and Resources

But man the best part is the resources it consumes. Let me remind you that Lemmy puts a load of 12 on the server, when I turn off Lemmy the load with the other 13 web services running on the server is 0.5 and when I turn on PieFed the load is 1. It's so amazing I really can't believe it, what an amazing difference!

There are two blog posts where they compare Lemmy, /kbin and PieFed resource usage:

Final Thoughts

For now I'm very happy with PieFed. I'm sad that all my content is locked in the Lemmy database which is down at the moment, but at least theoretically with some work I could export and import it.

I also changed the URL from jemmy.jeena.net to piefed.jeena.net because I don't want the other instances to be confused when suddenly a different software with different contents is available under the same domain. But I'm thinking to start up Lemmy and unsubscribe from all communities and to delete the one community I have on my Lemmy instance which has only very few subscribers.

That at least would be a somewhat clean way to dispose of this lemmy instance. Oh and I should return a 410 Gone to indicate that it's permanently gone.

Conclusion

If you’re looking for an easy-to-set-up, resource-efficient Threadyverse-compatible software with different values than Lemmy - which has also controversial developers - I’d recommend giving PieFed a try. The developers are responsive, and while it’s still in beta, the experience has been largely positive for me.

4 Mentions

Lemmy and my Switch to PieFed

TLDR: The main reason was Lemmy hogging server resources. Last year, during the Reddit 2023 API controversy I finally deleted my account...