We Benchmarked Our SSR Framework Against Next.js — Here's What We Found
<p>We built <a href="https://github.com/childrentime/pareto" rel="noopener noreferrer">Pareto</a>, a lightweight streaming-first React SSR framework on Vite. Claims are cheap — so we built an automated benchmark suite that runs in CI on every PR, comparing Pareto against <strong>Next.js</strong>, <strong>React Router (Remix)</strong>, and <strong>TanStack Start</strong> on identical hardware.</p> <h2> What We Tested </h2> <p>Four scenarios covering the most common SSR workloads:</p> <ul> <li> <strong>Static SSR</strong> — Page with inline data, no async loader. Pure SSR throughput.</li> <li> <strong>Data Loading</strong> — Loader with simulated 10ms DB query. SSR + data fetching overhead.</li> <li> <strong>Streaming SSR</strong> — <code>defer()</code> + Suspense with 200ms delayed data. St
We built Pareto, a lightweight streaming-first React SSR framework on Vite. Claims are cheap — so we built an automated benchmark suite that runs in CI on every PR, comparing Pareto against Next.js, React Router (Remix), and TanStack Start on identical hardware.
What We Tested
Four scenarios covering the most common SSR workloads:
-
Static SSR — Page with inline data, no async loader. Pure SSR throughput.
-
Data Loading — Loader with simulated 10ms DB query. SSR + data fetching overhead.
-
Streaming SSR — defer() + Suspense with 200ms delayed data. Streaming pipeline efficiency.
-
API / JSON — Pure JSON endpoint. Routing + serialization overhead.
All benchmarks on GitHub Actions (Ubuntu, Node 22, 4 CPUs), using autocannon with 100 connections for 30 seconds.
Throughput: Requests Per Second
Scenario Pareto Next.js React Router TanStack Start
Static SSR 2,224/s 3,328/s 997/s 2,009/s
Data Loading 2,733/s 293/s 955/s 1,386/s
Streaming SSR 247/s 236/s 247/s 247/s
API / JSON 3,675/s 2,212/s 1,950/s —
Next.js wins on static SSR. But the moment a loader is involved, Pareto handles 9.3x more requests than Next.js and 2.9x more than React Router.
Load Capacity: Max Sustainable QPS
We ran a ramp-up test from 1 to 1,000 concurrent connections, measuring the max QPS each framework sustains while keeping p99 latency under 500ms.
Scenario Pareto Next.js React Router TanStack Start
Static SSR 2,281/s 2,203/s 1,098/s 1,515/s
Data Loading 2,735/s 331/s 1,044/s 1,458/s
Streaming SSR 2,022/s 310/s 807/s 960/s
API / JSON 3,556/s 1,419/s 1,912/s —
Under streaming SSR load, Pareto sustains 2,022 req/s — that's 6.5x Next.js and 2.5x React Router.
What this looks like in practice: Say your product page needs to serve 2,000 req/s at peak. With Pareto, that's a single server. With Next.js at 331/s, you'd need 6 servers behind a load balancer. For streaming SSR dashboards, it's 1 Pareto instance vs 7 Next.js instances.
Latency
Scenario Pareto p50/p99 Next.js p50/p99 React Router p50/p99
Static SSR 431ms / 1.35s 244ms / 326ms 704ms / 7.16s
Data Loading 350ms / 702ms 1.42s / 7.82s 760ms / 7.41s
API / JSON 266ms / 320ms 283ms / 321ms 486ms / 2.12s
Under 100 concurrent connections, Pareto's data loading p99 is 702ms while Next.js spikes to 7.82s. 99% of users get their page in under 700ms with Pareto. With Next.js, 1 in 100 users waits nearly 8 seconds.
Bundle Size
Framework Client JS (gzip) Total (gzip)
Pareto 62 KB 72 KB
Next.js 233 KB 409 KB
React Router 100 KB 102 KB
TanStack Start 101 KB 272 KB
62 KB of client JavaScript — roughly 1/4 of Next.js. On 4G mobile (~5 Mbps), that's 100ms to download vs 370ms. On 3G, it's 330ms vs 1.2 seconds before any rendering begins.
The Cost Difference
Here's a concrete scenario — a SaaS dashboard at 10,000 data-loading req/s peak:
Framework Servers needed (4 CPU) Monthly cost (est.)
Pareto 4 ~$160
TanStack Start 7 ~$280
React Router 10 ~$400
Next.js 31 ~$1,240
How We Keep Benchmarks Honest
-
CI automated — runs on every PR touching core code
-
System tuning — ASLR disabled, CPU governor performance
-
Median aggregation — eliminates outlier noise, CV% for stability
-
Sequential isolation — one framework at a time, cooldown between runs
-
Same hardware — all frameworks on the same GitHub Actions runner
The full suite is open source: github.com/childrentime/pareto/tree/main/benchmarks
npx create-pareto my-app cd my-app && npm install && npm run devnpx create-pareto my-app cd my-app && npm install && npm run devEnter fullscreen mode
Exit fullscreen mode
Pareto is a lightweight, streaming-first React SSR framework built on Vite. GitHub · Docs
DEV Community
https://dev.to/childrentime/we-benchmarked-our-ssr-framework-against-nextjs-heres-what-we-found-57l6Sign in to highlight and annotate this article

Conversation starters
Daily AI Digest
Get the top 5 AI stories delivered to your inbox every morning.
More about
benchmarkopen sourceproductThe Silicon Protocol: The Identity Crisis — When Machine Accounts Become Your Real Super-Users
Machine accounts now outnumber humans — and one forgotten OAuth token can see more than your entire sales team. This is how you put them on a leash. On August 9, 2025, at 11:51 UTC, someone accessed Cloudflare’s Salesforce tenant. Not with a password. Not through a phishing email. Not by exploiting a zero-day. They used an OAuth token — a credential belonging to Drift, Salesloft’s AI chat agent, which had been granted access to Salesforce instances across hundreds of companies. The attacker, tracked as UNC6395 by Mandiant and GRUB1 by Cloudflare, had gained access to Salesloft’s GitHub account sometime between March and June 2025. From there, they downloaded code repositories, added a guest user, and established workflows to maintain persistence. Then they moved laterally into Drift’s AWS
March 2026 Links
Why We Have Prison Gangs : Q&A whose ultimate answer is that gangs are a form of governance in a place that has little. Skarbek also talks about what being in a gang is like, rules they have in place (bedtime, taxes, no affiliating with sex offenders or former LEOs), similarities. Plane Crash : Delian gives a play-by-play of his plane engine cutting off mid-flight, culminating in him crash landing on a golf course. The lessons learned extended elsewhere, namely where else did he simply say "I'll do it later", when later wasn't guaranteed? Sirat is not about the end of the world : A great perspective on Sirat that contains spoilers. Everything you ever wanted to know about Roblox, but were afraid to ask a 12-year-old Maybe there's a pattern here? : Technology, no matter what its original pu
Beyond the Hype: A Practical Guide to Integrating AI into Your Development Workflow
<h2> The AI Tidal Wave: Are You Building Boats or Waiting for the Tsunami? </h2> <p>Another week, another flood of "Will AI Replace Developers?" articles. While that existential debate rages, a quiet revolution is already underway in the trenches. The real question isn't about replacement; it's about <strong>augmentation</strong>. How can you, as a developer, harness AI tools today to write better code, solve complex problems faster, and free up your mental bandwidth for truly creative engineering?</p> <p>This guide moves past the hype. We'll explore practical, actionable strategies for integrating AI into your daily development workflow, complete with code examples and real-world use cases. Let's stop speculating about the future and start building it.</p> <h2> The AI Toolbox: More Than J
Knowledge Map
Connected Articles — Knowledge Graph
This article is connected to other articles through shared AI topics and tags.
More in Releases
Meta launches new AI glasses aimed at prescription wearers - seattletimes.com
<a href="https://news.google.com/rss/articles/CBMingFBVV95cUxOTlJkOXRUYVV6UFBzVUJlS01VcVY2V2RxVUl2WVN5ckIyTzJhY2c5S21ZWFhiUTdTeFpXS2gydi1oVS1aVFUtUDR4emlwM2RLZDRtWmpJaTBiWVhEWG5XbFY0eWZYZWluUGJScDF3R19kVHpZdlRPX2h1MUVVZUdodWZqdTF4VjlxVXFwZWtBcUQwRkVHTGRKdk1NaERmdw?oc=5" target="_blank">Meta launches new AI glasses aimed at prescription wearers</a> <font color="#6f6f6f">seattletimes.com</font>
Subgen AI announces preliminary outcome of the voluntary public offer to the shareholders of its controlled Spanish subsidiary Substrate AI and declares the condition for completion of the offer fulfilled - TradingView
<a href="https://news.google.com/rss/articles/CBMihANBVV95cUxQYkk2dVJJdDdJLXZ3SV9UOExzTTJOSEtoN3FwUXFMaUxBakhFNlhmOUNYZER6ek9GdVZsMzhDY2Jobk9XZk5EY1ZybHVLXzJXX3NCY2ZueFNla1ZzSWRlZGlQSnVzbUdrTjRuajdBMmdtNWZiVTR5TEEtRzdLdFUtSEc3R0N1TXJ6OEdMeHE0b1ZwZHBxZkVKNXpWSkt1c1g3ZnFpMUpCcXhvZWY3ZXNxNTZFbk5XUmNBQWJtSUUxUlNrd19fLWl2c3EzeThfMEtiV0hKQUhfemZVeG95MjRjMFlaR3Z4WEMwSnRyM2k3Y3l6bzNiYU1WWEV1VWFRTVp0ZTU4Rm84d0UyNEtNdDJTTmt3RnMxWDlpQ2M5TGlhTC1ZU2NRSGlkQnE0cWdqWmdXQmJDMnJiQlNtMG9oUkxFRk9NU0hITnQ1X3pVdm5GWlBZb09UWXFaSzlUWm8zNnl2cUo1bl93OHp1Tmc2MHFjMHNVanN3eERyU3NmQ0otTmpHaURS?oc=5" target="_blank">Subgen AI announces preliminary outcome of the voluntary public offer to the shareholders of its controlled Spanish subsidiary Substrate AI and declares the condition for completion of the offer fulfilled</a
Work Perfect Announces Strategic Partnership with Google Cloud to Integrate Workflow, Data and AI - AiThority
<a href="https://news.google.com/rss/articles/CBMi1gFBVV95cUxOYTJVNGdCQ2UyaXlIYTdXblo4SzJ5bVNiTFhFTUlxdzdYRlYwZUlHOU1NWnV2SUYwZnRKVkMwblJiZUNhT1RxWnRSTVFyVGRoNGRDbnpvZ1NxX2ZrUXNmRnp6aXhDallPT3MtUXJCRFRCdjUxSVRHeDBlRnRpYmxBc3JlaUl4czduVEQtZHBJbzFNWHdDZjRqTllrNHhfb0hTcmQtNmdWS0htZ04zZkJ3RlQtVWdCVlY5ZVhLRDh4QkVuSk55UmVoMWtxUHRBYmlCVkVfcDVn?oc=5" target="_blank">Work Perfect Announces Strategic Partnership with Google Cloud to Integrate Workflow, Data and AI</a> <font color="#6f6f6f">AiThority</font>
Durable Launches Discoverability: A Built-In Visibility Tool That Helps Small Businesses Get Found on Google and AI Search - Yahoo Finance Singapore
<a href="https://news.google.com/rss/articles/CBMinwFBVV95cUxPcFQ0LWN2QTlNckN2X2pfNU5BTGx5M0tKeU1Cd0hvNHVaUzdwTWlkYVlvZXRTbmZyS1ExOTFoQlI1Tm1BWXphb3Mzdm5Sc1hXQUxqOE9ObWp3a3Ryb0tjb1dCUmRxcDJKUnctWGhMb1BLUnAwdFpRTjJndzQ5MWVFZ29UZUktSVAwNVhHdDVwa0NxUEVocFp6MzMtVmpKakk?oc=5" target="_blank">Durable Launches Discoverability: A Built-In Visibility Tool That Helps Small Businesses Get Found on Google and AI Search</a> <font color="#6f6f6f">Yahoo Finance Singapore</font>

Discussion
Sign in to join the discussion
No comments yet — be the first to share your thoughts!