Architecture
apps/
web/ # Next.js 16 — CRM dashboard (3000)
portal/ # Next.js 16 — customer portal (3001)
services/
api/ # Hono + tRPC API (4000)
workflows/ # Temporal worker (Google sync, automations)
packages/
db/ # Drizzle ORM, PostgreSQL 16 (pgvector), migrations, seed
domain-model/ # Zod schemas + TS types for all entities
auth/ # JWT auth, scrypt hashing, session config
permissions/ # RBAC — 8 roles: admin, field_supervisor, sales_rep, technician, accounting, customer_service, tech_support, viewer
events/ # Domain event outbox — publish in tx, poll-dispatch
search/ # PostgreSQL full-text search
ai/ # Provider-agnostic model factory (Anthropic, OpenAI, Google)
analytics/ # Metric registry + snapshot service
audit/ # Compliance audit trail
config/ # Zod-validated env vars + tenant config
knowledge/ # PDF extraction, document chunking for embeddings
observability/ # OpenTelemetry + Pino
storage/ # S3-compatible (MinIO dev, AWS/R2 prod)
ui/ # React lib (Radix + Tailwind + CVA)
tooling/
typescript/ # Shared tsconfig (ES2024, strict, bundler resolution)
vitest/ # Shared vitest config (v8 coverage)