Turborepo
By Vercel
Turborepo is a high-performance build system for JavaScript and TypeScript monorepos, developed by Vercel, that speeds up task execution through intelligent caching and parallelized task pipelines.
Definition
Turborepo is a high-performance build system for JavaScript and TypeScript monorepos, developed by Vercel, that speeds up task execution through intelligent caching and parallelized task pipelines.
Overview
Monorepos — single repositories containing many packages or applications — can suffer from slow builds and test runs as they grow, since naive tooling re-runs every task from scratch on every change. Turborepo addresses this by understanding the dependency graph between packages and caching the output of tasks like builds, linting, and tests, so unchanged packages can reuse previous results instead of being rebuilt. Its caching isn't limited to a single machine: Turborepo supports remote caching, so a build performed on one developer's machine or in CI can be reused by teammates or subsequent CI runs, often turning a full rebuild into a near-instant cache hit. Task pipelines are defined declaratively, specifying which tasks depend on which — for example, ensuring a package's build finishes before dependent packages start their own build — so work runs in parallel wherever the dependency graph allows. Turborepo was created independently before being acquired by Vercel, and is commonly used in monorepos built around Next.js or other JavaScript/TypeScript projects, often replacing or complementing older monorepo tools like Lerna and package manager workspaces from Yarn or npm.
Key Features
- Local and remote task caching that skips re-running unchanged work
- Dependency-graph-aware task pipelines for correct build ordering
- Parallel task execution across packages wherever dependencies allow
- Incremental builds that can turn full CI rebuilds into cache hits
- Works alongside existing package manager workspaces (npm, Yarn, pnpm)
- Simple configuration file describing task pipelines and caching behavior
- Designed specifically for JavaScript/TypeScript monorepos