Aurea — Monorepo Overview
A bird's-eye view of the Aurea premium immigration & relocation concierge platform and the Bun + Turborepo monorepo that powers it.
Aurea is a full-stack, TypeScript-first monorepo for a premium immigration & relocation concierge service. It combines a public marketing site, a client dashboard, a GraphQL/MCP API, and this documentation site — all managed as a single Bun workspace with Turborepo orchestration.
Workspace topology
aurea/
├── apps/
│ ├── web/ # Next.js 15 + Payload CMS (port 3000)
│ ├── dashboard/ # Vite + React Router SPA (port 3001)
│ ├── api/ # NestJS + GraphQL + MCP (port 4000)
│ └── docs/ # Fumadocs (this site) (port 3002)
└── packages/
├── ui/ # @repo/ui — shared component library (shadcn/ui, atomic design)
├── shared/ # @repo/shared — cross-app utilities & types
└── tooling/
├── eslint-config/ # @repo/eslint-config
└── typescript-config/ # @repo/typescript-configTechnology stack at a glance
| Layer | Technology |
|---|---|
| Runtime | Bun ≥ 1.2, Node ≥ 22 |
| Orchestration | Turborepo 2 |
| Public site | Next.js 15 + Payload CMS 3 |
| Dashboard SPA | Vite 6 + React Router 7 |
| API | NestJS 11 + Apollo GraphQL + MCP SDK |
| Database | PostgreSQL via Drizzle ORM |
| UI primitives | shadcn/ui, Radix UI, Tailwind CSS 4 |
| Type safety | TypeScript 5.9 strict mode, no any |
| Testing | Vitest |
| CI | GitHub Actions |
Key relationships
apps/dashboardtalks toapps/apiover GraphQL (http://localhost:4000/graphql).apps/webuses Payload CMS as its headless content backend.apps/apiexposes an MCP server atPOST /mcpfor AI-agent integration.- All apps share
@repo/uicomponents and@repo/sharedutilities.