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?

  • Mister Neon@lemmy.world
    link
    fedilink
    arrow-up
    5
    ·
    4 days ago

    It’s up front cost of time is an absolute pain, but it REALLY makes your JavaScript code more stable. Plus you can do things like path aliasing to make development more convenient.

    • panda_abyss@lemmy.ca
      link
      fedilink
      arrow-up
      3
      ·
      3 days ago

      I just find it’s so many schema files that it feels wrong.

      It makes it difficult to actually reason about the code, but I’m an outsider.

      • Mister Neon@lemmy.world
        link
        fedilink
        arrow-up
        1
        ·
        edit-2
        3 days ago

        I used to feel the same. I apply ATOMIC design principles in my folder architecture. I start by defining the most basic reusable type that I can export. I then create more complex and specific types by extending and combining those base level types. Breaking everything up makes it manageable. Plus it leaves a trail to follow to figure out what parts of code do. It also will throw an error if a variable or import isn’t being used.