Layout
apps/web/ Next.js dashboard and API
apps/site/ Astro public site
packages/domain/ pure cron, plan, state machines
packages/db/ Drizzle schema, migrations, repositories
packages/connectors/ platform APIs and publishers
packages/ai/ provider transport, SSRF guard, limits
packages/core/ crypto, logger, result URLs
packages/ui/ design system
Boundaries
Only packages/db imports Drizzle. Only packages/connectors knows a platform API shape. Pages never query the database directly; repositories require a tenant context. Worker-only unscoped readers live outside the page import path.
Commands
pnpm lint
pnpm typecheck
pnpm test
pnpm test:integration
pnpm build
pnpm bundle:budget
pnpm db:check