So this week I had the chance to work on a web interface to a tiny utility, and decided to use this chance to inspect the current state of frontend development in 2024. Turns out, things are very different from what I was used to.
First thing: the very term "frontend development" might not be appropriate anymore — that, or my understanding of what frontend development is needs to change. Frameworks like Next.js are much more comprehensive. Sure, it's still a framework mainly concerned with building a web-accessible user interface, but achieving that involves a lot of server-side code; in fact, Next.js uses server-side rendering by default. I guess that frontend is not synonym with client-side anymore.
I'm not entirely sure how I feel about it. Frontend development became incredibly complex, where HTML/CSS/DOM are compilation targets, not something the developer is primarily dealing with. At this point I should think this is a good thing, it's always better to work with higher level tools. Thing is, I'm not sure React components feel properly high-level. The old HTML+CSS world used to bring a common if somewhat small vocabulary of components you can use to build your interface. With React, you need to pick a UI library, state management library, and so much more.
Maybe — probably — I'm just going through an end of childhood moment, forced to deal with the reality that things are just not so simple as I thought it was. Or maybe I'm reaching for the wrong tools; HTML+CSS is still out there, and I'm sure we can still build nice websites using those tools alone. Next.js definitely solves an important problem, but I'm thinking that not many sites/applications have the problem it solves to begin with.