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.

  • asyncrosaurus@programming.dev
    link
    fedilink
    arrow-up
    11
    ·
    edit-2
    1 year ago

    I’d use what I’ve been experimenting with exclusively on personal projects: htmx, AlpineJs and Razor Pages on PostgreSQL AKA the HARP stack. Obviously, a hilarious acronym was needed.

    Which might sound esoteric and hipster, but I’d contend it’s pretty close to how we were building websites for decades before the cult of the SPA took over. For those not in the know, HARP is built with no fe frameworks, everything is rendered server side and html is swapped in the DOM on the fly. Htmx is a very tiny js library that makes backend requests to the server, and renders the returned htmx within the current page. AlpineJs is a client-side js library that acts like a modernized and simplified jQuery. Razor Pages is part of the ASP.NET web framework that runs on .Net, and produces html from Razor templates coded with C#. My professional work is on SQL Server, but I like PostgreSQL as the runner up because I’m not paying mssql out of my own pocket.

    I’m wouldn’t be concerned with hiring since I’d mostly just need C# developers with some designers. .Net developers are a dime a dozen, and many are seasoned vets with 15+ years experience building with .Net. It’s easy to build a career with just C#/.net/asp.net so few of these devs are running around flipping frameworks every few hype cycles.

    But I might have just shown my age and bias.

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

      The behaviour you described is very similar to what Blazor is. No frontend framework, and the DOM updates are rendered on the fly. I’m using it a lot and it’s very good.

      • asyncrosaurus@programming.dev
        link
        fedilink
        arrow-up
        2
        ·
        1 year ago

        I like Blazor and use it exclusively at my work (usually to build the same type of stuff I’d use a HARP approach in a personal prj).

        Blazor is awesome, but really is attractive to backend .Net developers more than anyone else. However, Blazor has a bunch of downsides: Blazor Server is too chatty to build scalable public facing webapps. Blazor WASM has a massive initial payload, which makes it slow and heavy.

        Also, it just really falls into being overkill for so much stuff on the web. Half the shit I’m paid to build with Blazor would be faster and cheaper with just some htmx. Most SPAs are attempting to build a sand castle with an excavator.

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

          That’s my case, i’m a backend developer, more specialized in databases than websites, so i choose blazor because it was easy for me to become proficient fast and build nice and fast apps.

          Also i usually build Enterprise apps, not public facing ones, so my target is still good for blazor. I know there are methods to scale better with blazor server (like using signalr on a separate service, outside the webapp).

          Also we use DevExpress components, so basically all UI controls are done for me, so my dev time is even lower.

          I’ll look at htmx, i’m curious at the tecnical differences and why it may be lighter than blazor.

        • RonSijm@programming.dev
          link
          fedilink
          arrow-up
          1
          ·
          1 year ago

          […] Blazor WASM has a massive initial payload, which makes it slow and heavy.

          Blazor WASM doesn’t need to have a massive initial payload, that’s only if you’re making your projects too big, and aren’t really structuring them correctly. To be fair, Microsoft hasn’t really done anything to make this easier, or address this

          (Shameless self promotion) - I however, have fixed that: https://github.com/RonSijm/RonSijm.Blazyload Your “landing page” should basically ideally be pretty much the only thing that’s initially loaded, so that the initial load is fast. Once that is done, you can quietly lazy load the rest of the dlls you need