finds.dev← search

// the find

vercel/turborepo

★ 30,524 · Rust · MIT · updated Jun 2026

Build system optimized for JavaScript and TypeScript, written in Rust

Turborepo is a monorepo build orchestration tool that caches task outputs (locally and remotely) and runs tasks in parallel based on a dependency graph. It targets JS/TS monorepos where you want to avoid re-running builds, tests, and lints for code that hasn't changed. The Rust rewrite (from the original Go) has been largely complete since v2.

- Content-addressable local and remote caching is genuinely fast and the cache hit logic is sound — it hashes inputs (source files, env vars, lock files) and skips tasks when outputs are already cached, which works well in CI.

- Task graph execution with `dependsOn` lets you express real build ordering constraints without writing shell glue, and parallel execution of independent tasks is automatic.

- The Rust core means the graph traversal and file hashing are fast even in large repos with hundreds of packages — noticeably faster than the old Go binary on cold runs.

- Active release cadence (multiple releases per month based on the blog history) and the remote cache protocol is open/documented, so you're not fully locked into Vercel's hosted cache.

- Remote caching outside of Vercel requires either self-hosting a compatible server or using a third-party (Actionforge, ducktape, etc.) — the open protocol is good, but the official self-hosted option is not first-class and configuration is underdocumented.

- Cache invalidation for environment variables requires you to manually declare every env var in `globalEnv` or `env` per task; miss one and you'll get stale cache hits in production, and there's no tooling to detect gaps.

- It's fundamentally a task runner with caching, not a full build system — it has no understanding of what files a task actually reads or writes beyond what you declare, so correctness of the cache depends entirely on accurate `inputs`/`outputs` configuration by the user.

- The Vercel ownership means product decisions are influenced by what works well with Vercel's platform; features like `--affected` (only run tasks for changed packages) only recently matured, and things like fine-grained artifact sharing between PRs still pushes you toward their paid remote cache tier.

View on GitHub → Homepage ↗

// want more like this?

We dig through GitHub every week and send a few repos picked for what you actually care about — each with an honest take like this one.

Get finds in your inbox → Search again →