HACKER Q&A
📣 jesiu

Is server-side rendering approach going to take over?


I remember back in the old days stacks like: php/ror+jquery, asp.net+contexts, asp.net core+knockoutjs. The speed of delivering new features was astonishing, because those stacks didn't cause much issues. One of the problems was that many didn't care much, or didn't have a good solution about how to structure JavaScript code in such setup, so it often turned into a mess after some months/years. This and some other reasons made this model of creating apps to go a bit out of control, giving space for JS frameworks like angular or later react, vue.

I don't know how to explain it, but when I first tried things like knockout or vue i was blown away. I loved the flexibility and operating straight on the DOM. JSON felt cool. Somehow I ignored the fact how many packages I had to install to make it working. People said it has to be like that, so I listened. And it was clearly a mistake.

The idea of server-side HTML generation was not fancy anymore. Modern software had to be on react or vue. And this stereotype slowed down development of all the server-side solutions that were great, they just missed something that dynamically can change the content of the page.

I don't exactly know what happened in 2021+, but clearly something has changed. People started to complain about react more and more. I started too. Writing code with react wasn't fun anymore, probably because of hooks.

Then frameworks like Turbo, HTMX, Livewire emerged and it seems they're gettting the attention now. I've made myself a framework (https://usehydro.dev) that allows creating server-side components that on the client side become interactive and stateful.

To me working with such model is wonderful, I'm focusing more on the back-end side and my views are tied to the way how back-end works. No more data synchronization. Just HTML partials exchange.

But what do you think, is server-side rendering approach with partial HTML synchronization the future or at least something that will stay for longer?


  👤 bob1029 Accepted Answer ✓
One view I have is that the frameworks are a necessary learning phase for many developers.

Does anyone remember AngularJS v1? That was my first web framework. I reached for that when I saw a demo of a UI that was close to what we wanted for a product. I had no clue how to do web layouts in 2015. I made it through Angular V2, RiotJS and then Blazor for a few years before going totally vanilla with basic SSR and form posting.

The analogy of comparing these frameworks to training wheels is still the most apt one in my mind. For many developers, having a little bit of a shim to keep the bike upright while you are learning how the pedals and steering work can do wonders for the learning experience. But, after a while you may find the training wheels start to cause frustration and get in your way. The hardest part of all of this is deciding when to do away with them.

Vanilla web (as rendered on the server) has always been the most rational path for open web development, but it only recently got to a point where it may be the best place for a novice to start. Raw HTML/CSS/JS in 2024 is not like it was in 2016. We may be entering a phase where frameworks arent even necessary as a learning tool. Flexbox and friends do a lot of fucking damage compared to what we used to have not even a decade ago.