Monorepos help with consistency, but easily bloat. For small teams, limit shared packages to what is truly shared: UI tokens, API types, and small utilities.
Separate frontend and backend apps with clear boundaries. Avoid cross-imports that make builds wait on each other. Shared code should be stable and rarely change.
Choose tooling appropriate for the scale. pnpm workspace + TypeScript project references is often enough. Turborepo or Nx is only worthwhile when CI pipelines start slowing down.
Document folder conventions and dependency rules. Without agreements, a monorepo quickly becomes a place where everyone dumps 'temporary' files.
