Lemmy is an open-source, federated link aggregator and discussion platform similar to Reddit, Lobste.rs, or Hacker News. The software stack used in Lemmy includes Rust with Actix and Diesel for the backend, and TypeScript with Inferno for the frontend.
The developers chose Rust for its performance, safety, and concurrency features, which help in building a reliable and efficient backend. Actix is a popular Rust web framework that provides a lightweight and fast foundation for the server-side application. Diesel is a Rust ORM (Object-Relational Mapping) and query builder that simplifies database interactions. On the frontend, TypeScript offers better type safety and tooling compared to plain JavaScript, while Inferno is a fast and lightweight React-like library for building user interfaces. These technologies were chosen to create a performant, reliable, and easily deployable platform.
I read someone saying that the lack of contributors was due to the software stack being unconventional and takes people a while to get used to it. So I was curious to know what other people would have used.
I don’t think the software stack does matter that much. I’ve downloaded the Lemmy source and ran it from source, and my main caveat with it is the structure. I would have liked to see a much more modular design, with an add-on kind of system. Now, when an instance owner wants to add a feature, their only two options are either to: Try to get their specific feature into Lemmy main, or create a specific Lemmy fork with their own feature(s).
The entry level to just create your own Lemmy add-on would be much smaller than to try to get something new into the main repo. Plus it’d give you a sense of ownership when you’d see something like “50 instances have added your add-on” - over “I made a cool feature, it got PRed into main, and pretty much no one knows who build it”
For example, a great system is something like Home Assistant - Where this is a structure of “Addon-Repo” and “Addons” - with a Main Repo and you can add your own custom repo, or just install from .zip if you want that for some reason. Kind of similar as something like Nuget
If people could “contribute” with their own standalone things instead of having to PR stuff into a repo, you’d get much more contributions and user created add-ons
Do we want to end up with a WordPress situation however? Gate-keeping does not only have drawbacks