Let's be honest—building performant web apps in 2025 still feels harder than it should.
We've got blazing-fast frameworks, clever bundlers, tree-shaking, lazy loading, and a whole arsenal of performance tools. Yet somehow, a simple landing page still ends up shipping hundreds of kilobytes of JavaScript, most of which the user never even interacts with.
After spending over two decades building for the web — watching it evolve from static pages to dynamic SPAs — I've come to one conclusion: performance is no longer a luxury; it's a hard requirement. Today, it affects everything from SEO to user engagement to conversion rates. Google's Core Web Vitals didn't just change the game; they raised the bar entirely.
Over the years, I've worked with CSR, SSR, hydration — you name it. Each has served a purpose, and I've relied on them at various points. But as apps got bigger and more complex, the performance cost of these strategies became harder to ignore. That's when I stumbled into a new world — zero-bundle-size frameworks — and honestly, it's been a game-changer.
Let me walk you through the good, the bad, and the ugly of what I believe is the next big shift in frontend development.
Let's rewind a bit. SPAs took over the frontend world, thanks to frameworks like React, Vue, and Angular. I loved the interactivity they brought. But as we scaled up, I saw the cost — giant JS bundles, hydration delays, slow mobile performance, and lots of wasted CPU cycles.
Hydration always felt like a clever trick: render HTML on the server, then re-activate it with JS in the browser. But in practice, it's messy. A React SSR page, for instance, still needs to:
On fast networks, that's manageable. But on low-end devices or flaky mobile connections? It's painful. I've seen users bounce simply because the page looked ready but didn't feel ready. That's the hydration trap.
Here's something I've learned the hard way: no matter how much you optimise JavaScript — tree-shaking, lazy loading, code splitting — it's still JavaScript. And too much of it kills performance.
As bundle sizes grow, you get:
That's when I started asking myself: why are we still sending all this JavaScript upfront when most users barely interact with half of it? And I felt that the same problem was being thought over by many other smart minds.
I realised we're hitting the ceiling of what current frontend frameworks can do, don't tell me that you're don't think about it. The issue isn't just optimisation; it's the fundamental design — hydration and JS-heavy architectures are showing their age. We need a paradigm shift.
And that's where I found about zero-bundle-size frameworks.
Let's break it down simply. A zero-bundle-size framework aims to send almost no JavaScript to the browser on initial load. Instead, it pre-renders everything on the server and defers JavaScript execution until it's absolutely necessary.
So what does that look like in practice?
This is resumability. It means we're not rehydrating the page — we're resuming where the server left off. The result? Lightning-fast loads and instant interactivity.
I've worked on hydration-heavy apps for years. And I've come to this: hydration is trying to do too much. Just because the user might click a button doesn't mean we need to hydrate the entire page.
Here's what I've seen go wrong with hydration:
In short, we're spending precious cycles preparing things that might never be used.
Here's what changed my mindset:
It's such a simple idea, but the performance gains are incredible.
Let me share why this approach feels like the future:
Here are the tools — and I recommend every performance-minded dev give them a spin:
Let me highlight a few:
Three things make this magic happen:
It's not all roses. Transitioning to this model comes with hurdles:
But the momentum is real, and every month the tooling improves.
So, Are React and Vue Doomed?
No. I don't think they're going anywhere — but they will need to evolve.
React Server Components (RSC) are a clear response to this new trend. Same with Vue's experiments with partial hydration and Islands architecture. These frameworks are adapting. But the newcomers? They're already there.
After 20+ years of building for the web, I'm more excited than ever. We're entering an era where we can build apps that feel native, load instantly, and run smoothly on every device. Zero-bundle-size frameworks aren't just a trend. They're a sign of where the web is heading.
If performance is even remotely on your radar, it's worth looking into Qwik, Marko, SolidJS, or Svelte. You don't have to go all-in right away. Try a hybrid approach. Play around. Rethink how and when your code runs.
Because one thing is clear: the future of frontend is resumable, edge-optimised, and performance-first. And honestly? It's about time.