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.

  • foo@withachanceof.com
    link
    fedilink
    arrow-up
    6
    ·
    1 year ago

    To each their own. I don’t fanboy frameworks, they all have their pros and cons. What you specialize in for a personal professional career is different from what you may choose for a free software project though. Plus, I’d argue there’s definitely downsides to the JS ecosystem as well but also frameworks you know should not dictate your career prospects. I get this all the time in interviews and career development talks. If you consider yourself a web developer getting up to speed with a new stack or framework shouldn’t be an insurmountable task. The nature of web development is that it’s constantly changing. Feeling stuck with Rails vs. Django vs. React or whatever else means your skills are not keeping up with the market; it’s not a fault of the framework. The only constant in this line of work is change.

    That said, Rails isn’t going anywhere. JS frameworks are the hot thing (for whatever reason, I despise them for all sorts of reasons, but that’s not the point) for many new companies/projects, but there are very large companies whose products are built on Rails: Shopify, GitHub, GitLab, Zendesk, etc.

    There’s too much radical changes. First from sprockets to webpacker and then import-maps and propshaft. And then the in-built Hotwire is so hard to grasp.

    Would this not be viewed as adapting and keeping up with the trends? Webpack is terrible, but that’s what the JS world went with so Rails adopted it. Now there’s ESbuild, import-maps, and Hotwire. Rails supports all of them (import-maps, by the way, is a web standard, not a Rails specific thing… and I love using it). You don’t need to use them and can pick which works best for your product/project. That’s a benefit in my opinion.

    I also used my Rails knowledge to contribute to GitLab because I was misinformed that open source contribution would increase my prospective of getting hired. I contributed for around six months, got rejected multiple times, and then stopped all contributions to GitLab.

    GitLab certainly has that reputation. I don’t see how that’s a knock against Rails though. Shitty companies will be shitty companies regardless of what stack they use. Personally, I never contribute any code to projects that have a commercial organization behind them. If it’s not GPL licensed (or similar) you’re probably getting screwed by spending your time working on it.

    • AureumTempus@lemmy.world
      link
      fedilink
      arrow-up
      1
      ·
      edit-2
      1 year ago

      Yes, you’re right about that. Personally, I prefer esbuild with Propshaft over importmaps (as I try to avoid CDNs personally), as it has improved a lot, especially if we are talking about assets management, but again, I think if I were to make a project in the future, I would create a monorepo with Rails API-only and Svelte, because of how hard Hotwire is to understand. Especially Stimulus.

      Webpacker in Rails was a nightmare to configure and the stuff before also not the best to play around with. Setting up Bootstrap and PopplerJS was so hard back them, I can’t imaging how hard the Tailwind setup can be.

      Currently, I’ve made the switch to React + Express and SvelteKit. React + Express became it is quite popular in the market. SvelteKit because I love this framework. But I would love to choose Golang as a back-end. Maybe in the coming future.

      And about open-source licenses, valid point. I should have been careful there.

      • foo@withachanceof.com
        link
        fedilink
        arrow-up
        2
        ·
        1 year ago

        Yeah I’m not sold on Hotwire either. I started a new Rails project last year with Rails 7 and removed all of the Turbo/Hotwire stuff and did it all with import-maps and vanilla JS. Import-maps don’t require a third party CDN though. I absolutely love that I can use them to write ES6 JS and have it served directly to the frontend without any Webpack/ESbuild compilation step in between. After a decade of working with the nightmare that was Webpack & Webpacker in Rails I’m totally with you on how that whole asset management system needed a big overhaul and I think with importmaps or esbuild we might finally have something tolerable.