Quick Start
pnpm install
pnpm supabase:start
pnpm dev
What pnpm dev actually does
pnpm dev runs process-compose up, a 7-process stack with a real dependency chain — not
parallel processes that happen to share a terminal:
supabase → db-migrate → db-post → seed → seed-auth → { api, web }
↗
pdf-service (independent, starts immediately)
If db-migrate fails, api and web never start — process-compose blocks on
process_completed_successfully, not a timer. db-post is a documented no-op today
(packages/db/sql/README.md); seed and seed-auth create the local test data and auth user
before either server boots.
Ports: web :3022, api :4022, pdf-service :4020, local Supabase :5552x (direct
Postgres :55522).
pnpm supabase:start is not a bare supabase start — it pipes through a secret-redaction
filter so keys/tokens/JWTs never hit your terminal scrollback.
If the stack won't come up
pnpm supabase:reset stops Supabase, removes the three supabase_*_offerly Docker volumes,
and restarts — the standard recovery for a stale volume set after an interrupted prior attempt.
Logging in
A seeded test account exists after seed-auth completes; create additional users via the local
Supabase dashboard → Authentication → Users.