From eee87d4ec8463a750076c5eff58c93a8e053f10c Mon Sep 17 00:00:00 2001 From: Danijel Martinek Date: Sat, 9 May 2026 14:27:57 +0200 Subject: [PATCH] docs: template-tiers reference (must-have + optional + generator commands) --- docs/architecture/template-tiers.md | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) create mode 100644 docs/architecture/template-tiers.md diff --git a/docs/architecture/template-tiers.md b/docs/architecture/template-tiers.md new file mode 100644 index 0000000..1ce9a8a --- /dev/null +++ b/docs/architecture/template-tiers.md @@ -0,0 +1,27 @@ +# Template tiers + +This template ships in three tiers: + +## Must-have (always present) + +- `@repo/core-shared` — protocol types, `BindContext`, instrumentation interfaces, jobs interface, tRPC primitives, payload helpers +- `@repo/core-eslint` — flat-config preset + repo-rules ESLint plugin + boundaries +- `@repo/core-typescript` — tsconfig presets (base, react-library, nextjs) +- `@repo/core-testing` — vitest helpers, factories, mocks, contracts +- `@repo/core-cms` — Payload config base +- `@repo/core-api` — top-level tRPC router root (mounts feature routers) + +Plus all 5 feature packages: auth, blog, marketing-pages, navigation, media. + +## Optional (scaffolded on demand) + +| Package | Generator | ADR | Guide | +|---|---|---|---| +| core-realtime | `pnpm turbo gen core-package realtime` | ADR-016 | docs/guides/realtime.md | +| core-events | `pnpm turbo gen core-package events` | ADR-015 | docs/guides/events-and-jobs.md | +| core-trpc | `pnpm turbo gen core-package trpc` | (none) | (none) | +| core-ui | `pnpm turbo gen core-package ui` | (none) | (none) | + +## Why optional + +Each optional package addresses a specific need (realtime delivery, cross-feature events, tRPC, design system). Projects that don't need them get a slimmer template. The generator emits byte-identical copies of the packages as they shipped — see `turbo/generators/__snapshots__/core-package/.snapshot.json` for the canonical content hashes.