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’d honestly choose a similar stack for the back-end. I have limited experience with Rust, but my impressions so far is that it’s a language that allows you to make changes with confidence that they’ll work. I feel like starting something in Rust is somewhat difficult, but contributing is relatively simple.
For the front-end, I don’t think the choice is as important, since I think that by virtue of being federated and being able to have multiple front-ends, it would almost be better for the front-end to be managed by other parts of the community. And I say that as a primarily front-end/developer-experience dev.
I would probably default to React since I’m familiar with it and it’s very popular, but would probably be tempted to experiment with something better.