Personal finance dashboard — Turborepo monorepo deployed as Vercel Multi-Zones.
apps/home— apex zone, summary/landing (port 3000)apps/budget— Budget app at/budget(port 3001)apps/api-*— convention for non-Convex backend experiments (none scaffolded)
@repo/convex— shared Convex schema/functions@repo/tokens— design tokens (Tailwind v4)@repo/shell— shared React sidebar + AppFrame + AuthGate@repo/ui— shared React primitives
pnpm dev # Start all apps (turbo)
pnpm build # Build all apps
pnpm lint # Lint everywhere
pnpm check-types # TypeScript across the workspace
pnpm format # Prettier
pnpm convex # Convex dev (regenerates packages/convex/convex/_generated)pnpm --filter home dev # Home on :3000
pnpm --filter budget dev # Budget on :3001
pnpm --filter budget test # VitestRun pnpm format, pnpm lint, pnpm check-types, pnpm test.
- Architecture — monorepo layout, multi-zones, PWA scope
- Auth — Clerk setup
- Deployment — Vercel Multi-Zones step-by-step
- Convex backend — data model, derivation pattern
- Frontend — TanStack Start, routing, styling
- Offline strategy — what the PWA shell does and doesn't cover
- Testing & CI — test setup, CI stages