The Web Went Back to the Server, and It Was the Right Call
For a decade the frontend industry kept moving work toward the browser. We shipped bigger bundles, hydrated everything, and asked the user's phone to reassemble an app that the server had already rendered once and then thrown away. It worked, but it never felt great — and in 2026 the pendulum has clearly swung back toward the server. The shift has a name now: server-first. The default in modern meta-frameworks is to render UI on the server and send only the JavaScript that a given piece of the page actually needs to be interactive. React Server Components are the clearest example. A component that just reads data and prints it never ships to the client at all. The bytes you save are not micro-optimizations; they are entire libraries that simply never reach the browser. What makes this more than a fad is that it lines up with how the web is actually used. Most pages are mostly static. A product page has one "add to cart" button surrounded by text and images that never change after render. The old model paid the hydration tax on all of it. The new model pays only for the button. On the client side, the other half of the story is fine-grained reactivity. Signals — in SolidJS, in Svelte 5's runes, in Angular — track dependencies at the level of individual expressions instead of whole components. When a value changes, only the exact DOM node that reads it updates. No virtual DOM diff, no re-running a component function, no guessing. After years of "re-render the world and let the diff sort it out," tracking dependencies precisely feels almost obvious in hindsight. There is a cost to all of this, and it is worth naming. Server-first blurs the line between server and client in ways that are genuinely confusing at first. "Can I use this hook here?" becomes a real question with a non-obvious answer. The mental model of where code runs is now something you have to hold in your head deliberately, where before you could pretend everything ran in the browser. But the trade is a good one. We are moving boring, repetitive work — fetching, templating, formatting — back to a place that is fast, controlled, and close to the data. And we are reserving the browser for what it is uniquely good at: responding to the person in front of it. After years of asking phones to do the server's job, that feels like the right correction.