How Turbopack works
Turbopack builds one module graph for all environments, client and server, instead of stitching together separate compilers. It runs work in parallel across CPU cores and caches results down to individual functions, so finished work is not repeated. In development, Turbopack bundles only what the dev server requests, which cuts initial compile time and memory. Runtime speed is a separate topic, covered in the Next.js performance optimization guide.
Turbopack compiles TypeScript with SWC but does not type-check it; type checks come from tsc --watch or the IDE. Starting in Next.js 16, Turbopack applies Babel automatically when it finds a Babel config file, while SWC still handles Next.js's internal transforms.
Configuration sits under the top-level turbopack key in next.config. From Next.js 13.0 to 15.2 the key was experimental.turbo, which still works as an alias. The turbopack.rules option lists the webpack loaders Turbopack should apply to matching files. The Turbopack API reference lists the other options.
Versions, speed and limits
Versions. Turbopack for next dev became stable in Next.js 15.0. Turbopack for next build was experimental in Next.js 15.3 and beta in 15.5. Since Next.js 16, webpack is opt-in through the --webpack flag on next dev or next build; --turbopack (alias --turbo) still exists but is on by default.
Speed. The figures come from the Next.js team. The Next.js 16 release post claims 2 to 5 times faster production builds and up to 10 times faster Fast Refresh with Turbopack. The team's Next.js 16.3 Turbopack post reports that evicting in-memory cache to the filesystem cache cut dev server memory for the vercel.com dashboard from 21.5 GB to 2 GB after compiling 50 routes.
Limits. Turbopack does not run webpack plugins, though it supports many webpack loaders; apps that depend on webpack plugins have to find alternatives or stay on webpack. Turbopack needs native bindings. On platforms that fall back to WASM bindings, such as FreeBSD and OpenBSD, Turbopack is unavailable and --webpack is required.
How Pagepro uses Turbopack
Nexity, Pagepro's starter and migration system for Next.js and Sanity, runs Next.js on the App Router with Turbopack. Builds use Turbopack together with TurboRepo, in one monorepo that holds the web app, the Sanity Studio and a shared UI package. For a Next.js build on this stack, see Next.js development.
Sources
- Turbopack (App Router API reference)Next.js · nextjs.org
- turbopack (next.config.js option)Next.js · nextjs.org
- next CLI (App Router API reference)Next.js · nextjs.org
- Next.js 16 (release blog post)Next.js · nextjs.org
- Turbopack in Next.js 16.3 (blog post)Next.js · nextjs.org