Why I Switched from Express to H3: A Performance Story
I’ve been an Express.js fan for years.
It’s like the Swiss Army knife of Node.js—reliable, familiar, and everywhere.
I built all my APIs with it, especially the ones I published on RapidAPI.
With 144 million downloads per month (as of Nov 2024), Express is the undisputed heavyweight of Node.js frameworks.
But recently, I found myself looking for something faster, leaner, and more modern.
That’s when I stumbled upon H3, the new kid on the block with just 1.4 million monthly downloads but some serious performance chops.
Bonus: it’s part of Nuxt’s Nitro engine, one of my all-time favorite frameworks.
Let me break down why.
The Numbers That Blew My Mind
First, let’s get nerdy with some benchmarks. Here’s how H3 stacks up against Express when running on ES2019:
Requests Per Second (RPS)
Framework | RPS (64 connections) | RPS (256 connections) | RPS (512 connections) |
---|---|---|---|
H3 (v1.13) | 232,017 | 245,160 | 242,804 |
Express (v4.21) | 88,060 | 87,501 | 85,293 |
H3 is pulling almost 3x more requests per second. That’s a huge deal when you care about performance under load.
P90 Latency (Lower = Faster)
Framework | P90 Latency (64) | P90 Latency (256) | P90 Latency (512) |
---|---|---|---|
H3 (v1.13) | 0.94 ms | 3.75 ms | 5.94 ms |
Express (v4.21) | 2.13 ms | 6.57 ms | 12.66 ms |
H3 is not just faster—it’s smoother. Lower latency means snappier apps and happier users.
Why H3? (Other Than the Sexy Benchmarks)
H3 isn’t just about raw speed—it’s a framework built for modern JavaScript. Unlike Express, which is starting to show its age, H3 fully embraces ES modules, making it feel cleaner and more future-proof.
And if you’re already in love with Nuxt (like I am), H3 is a perfect fit since it powers Nuxt’s Nitro engine. It’s lightweight, fast, and doesn’t come with unnecessary bloat, giving you the freedom to build exactly what you need without dragging along features you don’t.
In short, it’s the upgrade you didn’t know you needed.
My Final Take
Switching to H3 felt like upgrading from a family minivan to a sports car. Sure, the minivan (Express) is dependable, but the sports car (H3) is just fun and way faster.
So, yeah, I’ve got a new favorite framework. Sorry, Express, it’s not you—it’s me (and my obsession with speed).
If you’re on the fence about trying H3, do it. You’ll thank me later. Or curse me if you hate it—either way, let’s chat about it.
Should You Switch?
Here’s the deal: if you’re working on a side project or a small app, Express is still solid. But if you’re building something where speed matters, like an API or a high-traffic app, H3 is a no-brainer.