I’m an experienced backend developer. To me, the backend world seems super simple compared to the frontend world.

It seems like there are a million options and I don’t have the experience to say what’s good and what’s not. I’m hit with major choice paralysis, basically.

I don’t have any special requirements - I “just” want to build a pretty standard, responsive, modern-looking UI. Ideally without too much boilerplate, in a framework that “feels good”, in a way that might at some point attract other contributors as well, if I get to the point of open sourcing.

Of course I could just reach for the most popular thing i.e. React, but that doesn’t seem to be the “hip” thing to use nowadays (or maybe I’m wrong? What do I know, I’m a backend dev).

But even if I choose a framework, there’s a million other libraries out there to choose as well. For instance, which UI library to choose? What about observability and state management and authentication and so on?

Sorry if this is a bit ranty. I am honestly just looking for an experienced frontend developer to point me in some direction (i.e. some set of frameworks/libraries; a “stack” if you will), so I can get out of this choice paralysis.

What would be your go-to stack for a new frontend project today?

  • tyler@programming.dev
    link
    fedilink
    arrow-up
    8
    ·
    2 个月前

    I’m also a backend dev that hates how many frameworks there are. At my last company i built a small tool and chose svelte. I’m glad i did. It is so easy for a backend dev to learn in comparison to react or angular or vue. I wouldn’t touch those three with a 50 ft poll in this day and age. There’s several good articles on why in the !webdev@programming.dev community a few days ago.

    https://programming.dev/post/39156162

    https://programming.dev/post/39374784

    I would choose HTMX, Astro, Quik, or Sveltekit. I really like svelte, and it’s been at the top of stack overflow’s “beloved” chart for several years now. It really is a joy to use compared to react or angular (at least for a backend dev like me). I know they’re not nearly as popular, but using react is like using J2EE, you don’t need it, like 99.99% of the time.

    • dejected_warp_core@lemmy.world
      link
      fedilink
      arrow-up
      5
      ·
      2 个月前

      I’ll jump on the bandwagon and say that while I haven’t used Svelte or Quik, I have used React, NextJS, and a lot of older tech like AngularJS, ASP, PHP, JSP, JQuery, YUI, vanilla JS, …

      I agree. React is over-engineered, and tries to solve the same thing Angular does: optimize for the most efficient DOM updates possible. As a result, your code is compressed into hard-to-debug pretzel shapes. Its cousin, NextJS, confuses front and backend in such a way that you’d need to be experienced with the separation before being able to navigate it. Neither is starter tech by any stretch of the imagination.

      I’ve dabbled a bit with HTMX. I really like this one since it more closely resembles the dynamic web we had before JS and heavy-clients took over. You wind up with a lot more chatter between the browser and server, but each of those conversations can be engineered (more or less) in isolation from the rest of the app. Meanwhile, you avoid round-trips that update the entire page - the very thing that these other stacks try so hard to avoid. You can build an HTMX application one component at a time, instead of all-or-nothing. This makes troubleshooting a lot easier, so it’s likely an easier place to start.

    • SorteKanin@feddit.dkOP
      link
      fedilink
      arrow-up
      2
      ·
      2 个月前

      Svelte(Kit?) does look pretty nice. I guess I’ll try it out, but even then there are many UI libraries and other libraries that need decisions. It seems like in the frontend world, I never run out of choices 😅.

      • tyler@programming.dev
        link
        fedilink
        arrow-up
        2
        ·
        2 个月前

        With svelte I’ve only found like two “component” libraries and I’m not sure I’m going to continue to use them. Essentially they just are drop in components so you don’t have to write them yourself. But svelte really seems to like it when you just write the css yourself. I’ve been using tailwind with it and I honestly think I’m going to stop, because it’s harder than just writing normal css that covers either a specific component or the whole app.

        • SorteKanin@feddit.dkOP
          link
          fedilink
          arrow-up
          0
          arrow-down
          1
          ·
          2 个月前

          Interesting, my impression is very much that the days of writing “pure CSS” is at an end, and that UI libraries and CSS frameworks like Tailwind is the way forward. But that is just my impression.

          • Kissaki@programming.dev
            link
            fedilink
            English
            arrow-up
            8
            ·
            2 个月前

            Tailwind is an example of those frameworks fighting against/crossing the native web technologies referenced further up with the links to webdev posts.

            The idea of shifting CSS declaration into the DOM element class attribute seems flawed to me. You lose what CSS provides natively.

          • matsdis@piefed.social
            link
            fedilink
            English
            arrow-up
            4
            arrow-down
            1
            ·
            2 个月前

            My impression is that writing “pure CSS” has been replaced by writing !important selectors that undo all of your component library’s auto-generated CSS, and then write your own CSS selectors on top, after trying to figure out the theming system for half a day… /rant

          • tyler@programming.dev
            link
            fedilink
            arrow-up
            2
            ·
            2 个月前

            Those articles I linked have a good discussion of it, but pure css has come a very very long way and a lot of these frameworks aren’t even necessary anymore. You just bloat the browser, and for little good reason. Tailwind is nice to use if you don’t know much CSS, but still know some, since you can just look at a giant list of “what does this do” and choose one that looks good. But yeah, I think I’m going to cut back on my usage of Tailwind massively, it’s just annoying a lot of the time.

    • Cyno@programming.dev
      link
      fedilink
      arrow-up
      1
      ·
      2 个月前

      I haven’t used them much recently but aren’t vue and svelte very similar in terms of difficulty and philosophy?

      • tyler@programming.dev
        link
        fedilink
        arrow-up
        1
        ·
        2 个月前

        I’ve heard that the original Vue was like Svelte, but I’ve heard that later Vue versions drastically switched to something like the React model. I’ve never used Vue though, so don’t listen to me about that. Really anything going in the React direction is bad in my mind.