people sitting down near table with assorted laptop computers

Next.js 16 and Vite 8: Two Bundler Rewrites Go Stable

·

This blog already has an explainer on why Turbopack is fast. What it doesn’t have is the bigger 2026 story: Turbopack going stable and becoming Next.js’s default bundler in the same year that Vite quietly replaced its own engine entirely. Two different bundler rewrites, both shipping in 2026, both claiming order-of-magnitude speedups – worth putting side by side.

Next.js 16: Turbopack graduates

Turbopack moves from experimental to stable in Next.js 16 and is now the default for both next dev and next build, with Vercel citing build-time improvements of roughly 2-5x over the previous Webpack-based pipeline. Next.js 16 also ships a Build Adapters API, aimed at hosting providers with their own deployment requirements, and 16.3 layers on “Instant Navigations” plus tooling improvements specifically aimed at AI coding agents working in a Next.js codebase.

# upgrading an existing app
npx @next/codemod@latest upgrade latest

# Turbopack is now the default - no flag needed
next dev
next build

Vite 8: a different engine under the hood

Vite 8.0 landed with a genuinely bigger internal change: Rolldown, a Rust-based bundler built by Evan You’s tooling company VoidZero, replaces the previous esbuild-for-dev/Rollup-for-build combination entirely. The headline claim is 10-30x faster production builds while keeping full compatibility with the existing Vite plugin ecosystem – which matters, because a bundler swap that broke plugins would be a much harder sell.

npm install vite@latest

# most existing vite.config.js files need no changes -
# Rolldown is used automatically as of Vite 8

Why both moved to Rust

  • JavaScript-based bundlers (Webpack, the old esbuild/Rollup split) hit real ceilings on very large codebases, largely down to single-threaded parsing and transform work
  • Rust-based tooling (Turbopack, Rolldown, and to a lesser extent esbuild before them) parallelises that work properly and avoids a lot of JS-runtime overhead
  • Both Next.js and Vite chose to rewrite rather than patch, which is itself a signal about how much headroom was left in the old approach

Which one actually matters for your project

If the project already sits inside Next.js, the Turbopack change requires no decision at all – upgrading to Next.js 16 turns it on by default, and the only real work is running the codemod and checking custom Webpack config (loaders, aliases) still has a Turbopack equivalent. If the project uses Vite directly – a standalone Vue/React SPA, a library, or a framework like Astro or SvelteKit that sits on top of Vite – upgrading to Vite 8 is close to a drop-in change for most configs, with the biggest build-time wins showing up on larger codebases where the old single-threaded transform step was the actual bottleneck.

The honest caveat

Both sets of numbers come from the teams that built the tools, on their own benchmark projects – real-world gains vary a lot with how much a given codebase leans on custom loaders, complex CSS pipelines, or third-party plugins that haven’t been re-optimised for the new engine yet. Worth timing an actual build on the actual project before and after upgrading, rather than assuming the headline multiplier transfers directly.

Where this leaves the framework choice

Neither change moves the underlying framework decision – Next.js is still the pick for server-first, SEO-aware React apps, and Vite-based setups still make sense for anything that doesn’t need a meta-framework’s routing and data-fetching opinions. What’s changed is that the tooling underneath both got meaningfully faster in the same twelve months, which is reason enough to actually upgrade rather than just read about it.


Leave a Reply