Core Concepts

Turborepo in Monorepos

The problem

Monorepos have many advantages - but they struggle to scale. Each workspace has its own test suite, its own linting and its own build process. A single monorepo might have hundreds of tasks to execute.

The solution

Turborepo solves your monorepo's scaling problem. Our remote cache stores the result of all your tasks, meaning that your CI never needs to do the same work twice.

Task scheduling can be difficult in a monorepo. Imagine yarn build needs to run before yarn test, across all your workspaces. Turborepo can schedule your tasks for maximum speed, across all available cores.

Turborepo can be adopted incrementally. It uses the package.json scripts you've already written, the dependencies you've already declared, and a single turbo.json file. You can use it with any package manager, like npm, yarn or pnpm. You can add it to any monorepo in just a few minutes.

What turborepo is not

Turborepo doesn't handle package installation. Tools like npm, pnpm or yarn already do that brilliantly. But they run tasks inefficiently, meaning slow CI builds.

We recommend that Turborepo runs your tasks, and your favorite package manager installs your packages.