English for Turborepo Monorepos

Learn the vocabulary and phrases for discussing Turborepo pipelines, caching strategies, and workspace management in English.

Turborepo has made monorepos more approachable for JavaScript teams, but it introduces a layer of terminology that can trip up non-native English speakers. Words like “pipeline”, “scope”, and “prune” have everyday meanings that differ from their Turborepo meanings. If you work on a team that uses a monorepo with Turborepo, this guide will help you follow technical discussions, write accurate PR descriptions, and read the official documentation with confidence.

Key Vocabulary

Pipeline In Turborepo, a pipeline defines which tasks exist, how they depend on each other, and which outputs to cache. It is declared in turbo.json under the "pipeline" key. Unlike a CI pipeline, this is a graph of build tasks across your packages. Example: “The pipeline defines that build must run before test in every package.”

Task Graph The directed acyclic graph (DAG) Turborepo constructs from your pipeline definition and workspace dependency tree. Turborepo uses this graph to schedule tasks in the correct order and maximise parallelism. Example: “Turborepo walks the task graph and runs independent packages in parallel.”

Remote Caching Turborepo can store task outputs — compiled files, test results, lint reports — on a remote server so that any team member or CI runner can reuse them without rerunning the task. This is one of Turborepo’s flagship features. Example: “With remote caching enabled, the build step was a cache hit in CI — it finished in under two seconds.”

Workspace An individual package inside the monorepo. Each workspace has its own package.json and is linked together by the root package manager configuration (npm workspaces, yarn workspaces, or pnpm workspaces). Example: “We have three workspaces: apps/web, apps/docs, and packages/ui.”

Scope A filter that limits which workspaces a Turbo command targets. You can scope by package name, by files changed, or by dependency relationship. Example: “Run turbo build --filter=@acme/web to scope the build to the web app and its local dependencies.”

Pruning The turbo prune command generates a minimal subset of your monorepo — only the workspace you specify and its transitive dependencies — useful for building lean Docker images. Example: “We prune the monorepo to just the API package before building the Docker image so the context is smaller.”

Incremental Build A build that only processes the files or packages that have changed since the last run, skipping everything that is already up to date. Turborepo achieves this through its caching layer. Example: “Because of incremental builds, editing only the UI library triggers a rebuild of the web app but not the API.”

turbo.json The root configuration file for Turborepo. It declares the pipeline, global environment variables that affect caching, and remote cache settings. Example: “Add the new environment variable to globalEnv in turbo.json, otherwise cache hits will ignore changes to it.”

Common Phrases

In code reviews:

  • “This package is missing a build script — Turborepo will skip it in the pipeline. Can you add one?”
  • “The outputs array in turbo.json for this task is empty — Turborepo won’t cache anything. We should point it at the dist/ folder.”
  • “You can scope this CI job to only the affected workspaces using --filter=[HEAD^1] instead of building everything.”

In standups:

  • “Remote caching is saving us about eight minutes per CI run — cache hit rate is around 70% after the first few builds.”
  • “I’m adding packages/analytics as a new workspace and wiring it into the pipeline so build and lint run automatically.”
  • “The task graph shows that docs depends on ui, so we can’t parallelize those two — ui has to build first.”

In documentation:

  • “Add any environment variables that affect build output to globalEnv in turbo.json so they are included in the cache key.”
  • “Use turbo prune --scope=<package> to generate a minimal monorepo snapshot before building a production Docker image.”
  • “Turborepo replays cached task output verbatim, including log lines, so CI logs look identical on a cache hit.”

Phrases to Avoid

Saying “Turborepo’s CI pipeline” — Turborepo has a task pipeline, not a CI pipeline. Your CI platform (GitHub Actions, CircleCI) runs the CI pipeline; Turborepo orchestrates the tasks within it. Keeping these terms separate avoids confusion in cross-team discussions.

Saying “the cache is broken” — When a task unexpectedly reruns despite no apparent changes, the correct phrase is “the cache is being invalidated” or “we have a cache miss.” Saying it is broken implies a bug; a cache miss is often intentional (an env variable changed, an output path is misconfigured, etc.).

Saying “build all packages” — On a large monorepo, this phrase is usually imprecise. The preferred phrasing is “run the build pipeline from the root” or “build all affected workspaces.” It signals that you understand Turborepo will only run what is necessary.

Quick Reference

TermHow to use it
pipeline”The pipeline is defined in turbo.json and describes task dependencies.”
remote caching”Enable remote caching to share build artifacts across your team and CI.”
workspace”Each workspace is an independent package with its own package.json.”
scope / filter”Use --filter to limit which workspaces Turborepo targets.”
pruning”Prune the monorepo before building the Docker image to reduce image size.”