stacks / turborepo pnpm shared ui

Turborepo + pnpm + shared UI package

For teams running several apps that must look and behave like one product.

Sources verified Sep 2026

Circumstances — when to use it

  • You have a marketing site, an app, and maybe a docs site drifting apart visually
  • Multiple teams need to change shared components without a publish-and-wait cycle
  • CI time is climbing because every push rebuilds everything

Synergy — how the pieces fit

pnpm workspaces link packages from disk, so editing the shared UI package is instantly reflected in every app — no versioning ceremony. Turborepo builds a task graph and caches by content hash, so untouched packages are skipped and CI only rebuilds what changed. Remote caching means a teammate's build result becomes your cache hit. Shared ESLint, TypeScript, and Tailwind config packages keep the rules identical everywhere.

The tech and its role

pnpm workspacesDependency linking and disk-efficient installs
TurborepoTask orchestration and build caching
packages/uiShared component library
packages/configShared ESLint / TS / Tailwind presets
ChangesetsVersioning if packages are published externally

Architectural examples

Each example links to a public source — no claims about private internals.

Vercel's design-system template

Turborepo's maintainer publishes a reference monorepo with a shared component package consumed by apps. A vendor example, not an independent one.

source

OpenStatus

Open-source uptime monitoring whose Turborepo + pnpm monorepo shares one @openstatus/ui package across its marketing site, dashboard, and public status pages — the exact drift problem this stack solves.

source

Skip if

Skip if you have one app and one team — a monorepo adds tooling overhead that only pays off across multiple consumers.

Other playbooks

WWADD — Moves. Stacks. Judgment calls.

FREE REFERENCE · NO LOGIN · NO TRACKING