← Docs

Developer guide

Layers, commands, and boundaries.

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