Setting Up a Monorepo with Turborepo

Why a full-stack TypeScript SaaS wants a monorepo, and how to set one up with Turborepo: the workspace layout, shared types that can't drift, the turbo.json pipeline, and caching.