Turborepo Documentation

Incremental builds
Content-aware hashing
Cloud caching
Parallel execution
Task pipelines
Zero runtime overhead
Pruned subsets
JSON configuration
Profile in your browser

Turborepo is a blazing fast build system for JavaScript/TypeScript monorepos: codebases containing multiple projects, often using multiple frameworks, in a single unified code repository.

Monorepos have many advantages, but they require appropriate tooling in order to scale. Turborepo provides this tooling and more. It leverages advanced build system ideas and techniques to speed up development, but with a fraction of the configuration and complexity. Instead of wasting countless days worrying about how you're shipping, Turborepo lets you focus on what you're shipping by abstracting all the annoying configuration, scripts, and tooling on your behalf.

Last but not least, unlike other build systems, Turborepo is designed to be incrementally adopted, so you can gradually and partially add it to most codebases in a few minutes.

Why Turborepo?

  • Faster, incremental builds: Building once is painful enough, Turborepo will remember what you've built and skip the stuff that's already been computed.
  • Content-aware hashing: Turborepo looks at the contents of your files, not timestamps to figure out what needs to be built.
  • Cloud caching: Share a cloud build cache with your teammates and CI/CD for even faster builds.
  • Parallel execution: Execute builds using every core at maximum parallelism without wasting idle CPUs.
  • Zero runtime overhead: Turborepo doesn't interfere with your runtime code or touch your sourcemaps. It does what it does and then gets out of your way.
  • Task pipelines: Define the relationships between your tasks and then let Turborepo optimize what to build and when.
  • Pruned subsets: Speed up PaaS deploys by generating a subset of your monorepo with only what's needed to build a specific target.
  • Convention-based config: Reduce complexity through convention. Fan out configuration with just a few lines of JSON.
  • Profile in your browser: Generate build profiles and import them in Chrome or Edge to understand which tasks are taking the longest.