Work / Trunk / Wiki / Decisions
2026-07-23-turborepo
Decisioncanonicalverified 2026-10-04
DECISION.2026-07-23.TURBOREPOTurborepo + 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/buildin 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.