Lemmy and my Switch to PieFed
Threadyverse software alternatives
Posted by
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 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
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:
- It just crashes if you upload a too big picture
- The upload of an instance icon had only the UI code but not the saving it and putting it in place code (which the maintainers now added already)
- Because it's a public beta and has no version numbers or releases yet, things might break when you upgrade like it did for me where the federation would stop after 4-8 minutes and you had to restart it again
- From what I see there are only two guys very actively working on it, so there is the bus factor also
- There is a lack of an API for 3rd party clients, I thought that we could just write one which is compatible with Lemmy, but it turns out that the features of both are quite different so that that would not really work well. The guys already tried something, there is a good description of the problems in this issue on Codeberg: Issue on Codeberg
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:
- Comparing Network Utilization of Lemmy, /kbin, and PieFed
- Technical Performance of Each Fediverse Platform
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...
Lemmy and my Switch to PieFed - Feddit.cl
publicado de forma cruzada desde: https://piefed.jeena.net/post/7038 [https://piefed.jeena.net/post/7038] > TLDR: The main reason was...
Lemmy and my Switch to PieFed; Threadyverse software alternatives | Hacker News
莱米和我的Switch切换到PieFed;Threadyverse软件替代方案
在当今数字化时代,我们对于网络平台的选择变得越来越重要。最近,我偶然发现了一个引人注目的转变:莱米和我将我们的Switch从传统社交媒体转移到了PieFed和Threadyverse软件替代方案。...