Email me

Dev · · 6 min read · Matt Busel

By , who built the apps, crates and game he writes about · every number links to its source and every dataset is downloadable (methods) · corrections · featured in Kirino, gamebiz, This Week in Rust, New Mobile Life, By-Press

Filed under App development Growth

Next.js bundle size: 86 homepages weighed, Next ships 3.6x the JS

Next.js bundle size: 86 homepages weighed, Next ships 3.6x the JS
On this page · 10 sections
  1. Key numbers
  2. The blogger was right: Next.js was the weight
  3. How we weighed 89 homepages
  4. Every framework, ranked by what it ships
  5. The Next.js tax shows up even on Vercel's own sites
  6. Where the extra weight actually comes from
  7. Who wins and who loses
  8. Our bet
  9. What this means for you
  10. Sources

Short answer: Yes, Next.js sites are heavy. On October 26 2026 we crawled 89 big homepages and fully weighed 86 of them: the median Next.js homepage references 3,665 KB of JavaScript, the median site on anything else references 1,022 KB. That is 3.6x, and the lightest Next.js site we found (react.dev, 1,309 KB) is still heavier than the median non-Next site.

TL;DR: All 31 Next.js homepages we weighed shipped more than 1.3 MB of JavaScript, while 33 of the 55 non-Next sites came in under that line. The median Next.js page loads 39 script files and inlines 224 KB of JavaScript straight into the HTML, against 10 files and 21 KB everywhere else. A blogger just hit 100 on every Lighthouse score by ripping Next.js out, and our numbers say the framework, not the blogger, was the problem.

Key numbers

WhatNumberSource, checked Oct 26 2026
Median JavaScript, Next.js homepage (31 sites)3,665 KBTensorust crawl
Median JavaScript, every other homepage (55 sites)1,022 KBTensorust crawl
Lightest Next.js homepage (react.dev)1,309 KBTensorust crawl
Non-Next homepages lighter than the lightest Next.js one33 of 55Tensorust crawl
Median script files per homepage, Next.js vs others39 vs 10Tensorust crawl
Median inline JavaScript in the HTML, Next.js vs others224 KB vs 21 KBTensorust crawl
nextjs.org, the framework's own homepage3,497 KBTensorust crawl
Median Astro homepage (6 sites)223 KBTensorust crawl
Animated bars: median JavaScript per homepage is 3,665 KB on Next.js, 1,212 KB with no framework found, 228 KB on SvelteKit and 223 KB on Astro
Median JavaScript per homepage by framework, Tensorust crawl, Oct 26 2026

The blogger was right: Next.js was the weight

The post that kicked this off hit the Hacker News front page on October 26: a developer called korindiehacker wrote "Removing Next.js Got My Blog to 100 on Every Lighthouse Category". Lighthouse is Google's built-in speed and quality audit, the score most SEO people obsess over.

We fetched that post page ourselves. It references zero script files. The landing page of the same product, bloffy.co, still runs on Next.js and references 1,531 KB of JavaScript. Same author, same company, two stacks, and the gap is the whole story.

One blog is an anecdote. So we weighed the internet's biggest homepages to see if the pattern holds. It does, and it's not close.

How we weighed 89 homepages

We fetched each homepage with a normal browser user agent, detected the framework from its fingerprints (Next.js leaves /_next/ paths and a self.__next_f payload, Astro leaves /_astro/, SvelteKit leaves /_app/immutable, and so on), then downloaded every JavaScript file the HTML points at: script tags, module preloads and dynamic imports, up to 80 files per site. Inline script blocks count too.

Sizes are uncompressed bytes, which is roughly what your phone has to parse and run after it unzips the download. Three sites (openai.com, hashicorp.com, midjourney.com) blocked most of the file fetches, so we left them out of every median; six more (Netflix, Best Buy, Zara, Wayfair, NYT, Washington Post) blocked or timed out on the homepage itself. That leaves 86 sites fully weighed: 31 on Next.js, 55 on everything else.

This measures what the homepage HTML asks for, not what loads after you scroll or click. Tag managers that inject more scripts later are not counted, which flatters the ad-heavy media sites, not Next.js. Every row is in the CSV below the article.

Bar chart of median JavaScript by framework: Next.js 3,665 KB (31 sites), Nuxt 2,034, no framework found 1,212, Angular 1,103, Remix/React Router 1,075, SvelteKit 228, Astro 223
Median uncompressed JavaScript per homepage by framework, 86 sites, Tensorust crawl, Oct 26 2026

Every framework, ranked by what it ships

Next.js medians 3,665 KB. Nuxt, the Vue twin of Next, sits at 2,034 KB on its one site. Sites where we found no framework fingerprint median 1,212 KB. The Remix/React Router group lands at 1,075 KB. SvelteKit medians 228 KB and Astro 223 KB.

That's a 16x spread between Next.js and Astro on the median. Astro's whole pitch is "ship HTML, add JavaScript only where you need it", and cloudflare.com (195 KB), sentry.io (204 KB) and ikea.com (242 KB) all prove it works at real company scale.

The worst offenders are not all Next.js, to be fair to nobody: atlassian.com (10,981 KB) and wired.com (10,134 KB) top the list with no Next.js fingerprint at all. Bloat is a culture, not only a framework. But Next.js is the only stack where bloat is the median, not the outlier.

The 16 heaviest homepages: atlassian.com 10,981 KB, wired.com 10,134 KB, doordash.com 8,492 KB (Next.js), uber.com 7,413 KB, down to figma.com 4,808 KB; 9 of the 16 are Next.js
Heaviest homepages by JavaScript, Next.js in orange, Tensorust crawl, Oct 26 2026

The Next.js tax shows up even on Vercel's own sites

Here's the part that should sting @rauchg and the Vercel team. nextjs.org, the framework's own homepage, ships 3,497 KB of JavaScript. vercel.com ships 2,202 KB. react.dev ships 1,309 KB.

Compare the neighbors. astro.build: 17 KB. rust-lang.org: 26 KB. deno.com: 133 KB. svelte.dev: 275 KB. bun.sh: 385 KB. The people who build the most popular React framework on earth can't get their own marketing page under 3 MB, and the people building the alternatives do it in a rounding error.

Our read: this is not an accident, it's the business model. Next.js is free; the hosting, the edge functions, the image optimization and the bandwidth are where Vercel bills. A framework that pushes more work through more requests is a framework that sells more platform. Nobody at Vercel will ever say that out loud, but follow the money and the incentives point one way.

Framework project homepages by JavaScript: nextjs.org 3,497 KB, vercel.com 2,202 KB, react.dev 1,309 KB versus bun.sh 385, svelte.dev 275, deno.com 133, rust-lang.org 26 and astro.build 17 KB
Framework homepages weighed by their own JavaScript, Tensorust crawl, Oct 26 2026

Where the extra weight actually comes from

Two numbers explain most of it. First, file count: the median Next.js homepage references 39 script files against 10 for everyone else. App Router splits code into many small chunks, and the browser still has to request, parse and run all of them.

Second, inline payload: the median Next.js page stuffs 224 KB of JavaScript directly into the HTML, 11x the 21 KB everyone else inlines. That's mostly the React Server Components payload (the serialized component tree Next.js streams so React can "hydrate", meaning re-attach JavaScript to HTML the server already rendered). You pay for the page twice: once as HTML, once as data describing that HTML.

The figma.com homepage inlines 1,465 KB on its own. doordash.com inlines 1,592 KB and references 247 script files, which is so many we hit our 80-file cap and its real total is higher than the 8,492 KB we counted.

Median script files: 39 on Next.js homepages vs 10 elsewhere; median inline JavaScript 224 KB vs 21 KB
Script files and inline JavaScript per homepage, Next.js vs everyone else, Tensorust crawl, Oct 26 2026

Who wins and who loses

Winners: Vercel, which bills on usage. CDN and monitoring vendors, who sell you tools to find out why the page is slow. Agencies, who bill for "performance optimization" sprints on sites that were slow by default.

Losers: anyone on a mid-range Android phone or a bad connection, which is most of the planet. And every small business whose landing page got built on Next.js because a template said so, then wonders why Google ranks it under a competitor's plain WordPress page. Lowkey the most expensive default in web dev right now.

The counter-argument from the Next.js crowd (@t3dotgg has made a career of it) is that apps need interactivity and the bytes buy you that. Fine for a dashboard. But these are homepages: text, a hero image, a signup button. A marketing page does not need 39 script files. notion.com proves you can be on Next.js and keep it tighter at 1,688 KB; most teams don't bother.

Our bet

We think the pendulum is already swinging. Static-first stacks like Astro and plain server-rendered HTML are winning the content side of the web, and within a year we expect Vercel to ship a "zero-JS by default" mode for static routes and market it as a breakthrough. It'll be the thing korindiehacker did by hand this week.

Disagree? The CSV is right there. Point the crawler at your own homepage and tell us we're wrong.

What this means for you

If your marketing site, blog or docs run on Next.js, open your homepage in Chrome DevTools, Network tab, filter JS, and add it up. If it's over 1 MB for a page that is mostly text, you're paying the tax. Move the content pages to static HTML or Astro and keep Next.js for the logged-in app where the JavaScript actually does something.

Not sure where your page stands? Run it through our free landing page teardown: 26 checks and an instant score. It's free, and if a check gets your page wrong we keep fixing the tool at no extra cost until it does what it promises.

More from us: today's tech + money news, app dev deep dives, growth, and our opinion pieces.

Sources

First published here on tensorust.com on Oct 26, 2026. Related: .

Up next

More on App developmentSelling on Gumroad with AI: 130 products, 0 sales. Greg is wrong130 AI-built products on Gumroad for 36 days: 87 free, 0 downloads, $0. Fresh API numbers, the Discover $100 gate, and what to do before product two.Read it next →

Cite this

Free to cite and reuse under CC BY 4.0 with a link back. How it was collected: methods. Spotted an error? Corrections.

Did this answer your question?

Get the next one by email.

What my AI agents tried this week, with the real numbers: what worked, what flopped, what made money. One email when there is something worth reading.

No spam, never sold. Every email has a one-click unsubscribe.

What are people saying about this? Read and post on The Floor →

More: the author, related reading, share this, a free game

Try it yourself · Building an app?

Get an honest budget for it

Pick your app type and features, get a range from real build costs. Free, no sign-up.

In The Manual: on this topic

Explainers answer one question, short answer first. Guides walk you through it step by step.

Open The Manual →

Read next

Free tool: iPhone app cost calculator → Pick an app type and features, get an honest budget range.

All articles →

1M+ X impressions in 4 days, run by AI agents · 8,000+ crates.io downloads across our 70 Rust crates, all time · 529 GitHub stars · 8 iPhone apps live on the App Store · O'BLOCK out now, free on Steam

Built by Matthew Busel · code on github.com/Mattbusel · numbers as of Oct 25, 2026, click any to check

Popular in the shop

All 124 tools →

Browse: Bundles and kitsHome, family and schoolMoney and businessAI toolsSports and fitnessMaking and hobbiesFood and drinkIndie dev and launchTrading and quant

Free: Landing page teardown iPhone app cost calculator LLM API cost calculator Paid online: $49 Launch Check App builds Articles FAQ