DevOps / Build Landscape
The bundler layer got rewritten in Rust while you were shipping
2026 is the year the JavaScript build stack finished its port to native code. Vite 8 shipped a single Rust bundler, Turbopack became the Next.js default for production as well as dev, and the old advice - esbuild for speed, Rollup for output quality, webpack for everything hard - stopped being true. Here is the landscape, with one recommendation per job.
Reviewed August 2026. Back to DevOps guides.
What actually changed
For years every serious toolchain ran two bundlers. Vite used esbuild to transform modules in development and Rollup to produce the production build, which was fast and pleasant right up until output differed between the two and you spent an afternoon finding out why. Next.js ran webpack for both and paid for it in build times.
Vite 8 shipped on 03-12-2026 and collapsed that split: Rolldown, a Rust bundler with a Rollup-compatible API, now handles dev and build, with Oxc doing TypeScript and JSX transforms. One bundler, one pipeline, one behaviour. The opt-in rolldown-vite package that existed through 2025 is finished - there is nothing extra to install.
The numbers are not marketing. On the Vite team's 19,000-module benchmark a production build fell from 40.1 seconds under Rollup to 1.61 seconds. Linear reported builds going from 46 seconds to 6, beehiiv cut 64 percent, Ramp 57 percent, Mercedes-Benz.io 38 percent. Small projects see 2 to 5x rather than 10 to 30x, because at a hundred modules there was never much time to reclaim.
Practical consequence: build speed has stopped being a differentiator between the top tools and has become a reason to upgrade the one you already have.
Bundlers for applications
Vite 8
Stable 03-12-2026 - the default everywhere
The one tool that is correct for React, Vue, Svelte, Solid, Astro, SvelteKit, Nuxt, and plain TypeScript alike. Rolldown replaced both esbuild and Rollup with no opt-in, so dev and production finally agree with each other, and the Rollup-compatible plugin API means the ecosystem carried over rather than restarting. Config is still a short file that a new hire can read. Upgrading from Vite 7 is mostly a version bump; the exceptions are plugins that reached into Rollup internals. vite.dev
Verdict: The default for anything that is not a Next.js app.
Turbopack
Next.js 16 default, dev and build
Next.js 16 made Turbopack stable and the default for both next dev and next build - production builds included, which is the part people still get wrong. Vercel reports 2 to 5x faster production builds and Fast Refresh up to 10x quicker, with one published comparison landing at 5.7 seconds against webpack's 24.5. The catch is portability: webpack() config in next.config.js is not recognized any more, so you either port it to the turbopack key or opt back out with the --webpack flag on next dev and next build. Turbopack is not a general-purpose bundler you would adopt outside Next.js. nextjs.org
Verdict: Not a choice - it is what you get on Next.js 16, and it is good.
Rspack
The webpack escape hatch
A Rust bundler that deliberately speaks webpack's API, loaders, and plugin interface, which makes it the only realistic migration path for a large legacy webpack config you cannot afford to rewrite. Around it sits the Rstack toolchain - Rsbuild for apps, Rslib for libraries, Rspress for docs, Rsdoctor for build analysis. Rspack and Rolldown are complements rather than rivals: one targets webpack migrations, the other is the future Vite is built on. Choosing Rspack for a greenfield project means opting into webpack's configuration model on purpose. rspack.dev
Verdict: Best answer for an existing webpack codebase. Rarely the right answer for a new one.
esbuild
Still the fastest primitive
Written in Go, still absurdly fast, and still the thing you reach for when you need to transform or bundle something inside a script rather than build an application. It lost its headline role when Vite 8 dropped it, but it did not lose relevance: test runners, serverless bundling steps, and one-off build tasks lean on it constantly. As a whole-application bundler it asks you to hand-roll the parts Vite gives you - CSS handling, HTML entry points, dev server, plugin ecosystem. esbuild.github.io
Verdict: Excellent library and script bundler, wrong level of abstraction for an app.
Publishing a package is a different job
Application bundlers optimize for a browser downloading your code. Library bundlers optimize for someone else's bundler consuming it, which means clean ESM and CJS outputs, accurate type declarations, correct exports maps, and no accidentally inlined dependencies.
tsdown is the current answer: a Rolldown-powered library bundler that generates declarations, handles dual formats, and reads as the natural successor to tsup for anyone already moving to the Rolldown ecosystem. Rslib fills the same slot on the Rspack side. Plain Rollup remains perfectly viable and is what a large share of published packages still ship with - the difference is minutes of build time, and a library builds once per release rather than once per save.
The layer above: monorepo task runners
Roughly 63 percent of companies with 50 or more developers now keep their code in a single repository, which adds a second tool on top of the bundler: something that decides what needs rebuilding and caches the rest.
Turborepo
The default under about 100 packages
A task graph, content-addressed local caching, and an optional remote cache so CI and your teammates reuse each other's work. Configuration is one turbo.json describing which tasks depend on which, and adopting it into an existing pnpm or npm workspace is an afternoon. It does not generate code, does not manage plugins, and does not try to understand non-JavaScript languages - which is precisely why it stays out of the way. turborepo.dev
Verdict: Start here for any JavaScript or TypeScript monorepo.
Nx
Polyglot and enterprise scale
A full build system rather than a task runner: project graph analysis, affected-command detection, code generators, module boundary rules, plugins for Angular, React, Node, Go, Rust, and .NET, and Nx Agents to distribute a single CI run across many machines. That distribution is the capability Turborepo has no equivalent for, and it is the reason Nx wins above roughly a hundred packages or a hundred engineers. Below that the generators and configuration surface are overhead you feel every week. nx.dev
Verdict: Worth the setup cost when the repo is polyglot or CI time is the bottleneck.
Our pick
Vite 8 unless the framework already chose for you
Start every new application on Vite 8. It is the only bundler in this list that is simultaneously the fastest option, the most portable across frameworks, and the one with the deepest plugin ecosystem, and Rolldown removed the last real complaint about it - dev and production behaving differently. If you are on Vite 5, 6, or 7, upgrading is the highest-value build change available to you this year.
On Next.js 16 the decision is already made: Turbopack is the default for dev and build, it is genuinely faster, and fighting it means maintaining a webpack config that Next.js now actively rejects. Reach for Rspack only to rescue an existing webpack setup, and for tsdown when the artifact is a published package rather than an app.
For the monorepo layer: Turborepo until the repo is polyglot or CI is the constraint, then Nx. Migrating between them later is real work but not a rewrite, and picking Nx early for a ten-package TypeScript repo is a tax you pay every day for a problem you do not have.
Settle the close calls
Vite vs Turbopack
Cold starts, HMR, and plugin ecosystems compared head to head.
Read the verdictTurborepo vs Nx
Simple caching against a full build system, and where the line sits.
Read the verdictFrontend frameworks
The layer that usually decides which bundler you end up with.
Browse the layerCI/CD pipeline
Cache these builds properly and keep the whole run under five minutes.
Follow the guideBuild outputs eventually become container images or static uploads. Container tools covers what to package them with, and the npm and pnpm cheatsheet covers the workspace commands the monorepo tools sit on top of.