Skip to content

Work / Trunk / Wiki / Decisions

2026-07-23-turborepo

Decisioncanonicalverified 2026-10-04

DECISION.2026-07-23.TURBOREPO

Turborepo + pnpm workspaces

Decision

Single monorepo. apps/* + packages/*. pnpm for install, Turborepo for task pipelines.

Why

Why one repo, not two. Website and workspace share @trunk/schemas, and workspace + CLI share the six domain cores. Splitting means either duplicating schemas (drift → runtime bugs) or npm-publishing a two-consumer package (release overhead). Turborepo already gives per-app independence via --filter.

Impact

Cost of the choice.

  • One pnpm-lock.yaml — chunky but manageable.
  • Turbo cache is the main win: repeated typecheck/build in CI hit cache and finish in seconds.

Split later only when website team ships on a wildly different cadence.

Related: 2026-07-23-nextjs.

Status

Accepted 2026-07-23. The implementation this chose was removed from the repository on 2026-08-12, when it became design-only. The decision has not been revisited since.

Sources

  • The memory note decision-turborepo, written 2026-07-23 and moved here on 2026-10-04. The text is the note's own; only the headings changed.