Core Features
Incremental Builds
Turborepo fingerprints every package by its inputs (source code, dependencies, env vars). If nothing changed, it replays the cached output:
$ turbo build
• Packages in scope: web, api, ui, utils
• Running build in 4 packages
✓ @repo/utils — cache hit, replaying output
✓ @repo/ui — cache hit, replaying output
✓ @repo/api — cache hit, replaying output
✓ @repo/web — building... done (3.2s)
Total: 3.2s (3 cached, 1 built)Remote Caching
Share build caches across your entire team and CI:
npx turbo login
npx turbo link
# Now CI builds reuse your local cached outputs and vice versaParallel Execution
Tasks run in parallel respecting the dependency graph:
utils ─────► ui ──────► web
├────► api
└────► docs
# utils builds first, then ui/api/docs in parallel, then webTask Pipelines
{
"tasks": {
"build": {
"dependsOn": ["^build"],
"outputs": ["dist/**", ".next/**"]
},
"test": {
"dependsOn": ["build"],
"inputs": ["src/**", "test/**"]
},
"deploy": {
"dependsOn": ["build", "test"],
"cache": false
}
}
}Environment Variable Handling
{
"globalEnv": ["CI", "NODE_ENV"],
"tasks": {
"build": {
"env": ["DATABASE_URL", "API_KEY"]
}
}
}Key Stats
- 28,000+ GitHub stars
- By Vercel (acquired from Jared Palmer)
- 10x faster builds with caching
- Remote cache sharing across team
- Works with npm, yarn, pnpm
FAQ
Q: What is Turborepo? A: Turborepo is an incremental build system that caches build outputs and runs tasks in parallel across JavaScript/TypeScript monorepo packages.
Q: Is Turborepo free? A: Yes, open-source under MIT. Remote caching is free on Vercel, self-hostable.
Q: Do I need to restructure my project? A: No, Turborepo works with any existing monorepo structure using npm/yarn/pnpm workspaces.