3000; the web app runs on port 5173.
Prerequisites
- Node.js 20 or newer
- pnpm 10
- Docker for Postgres
vp, the repo’s task runner wrapper
First run
vp run dev starts Docker services before launching the API and web processes.
Common commands
| Command | Purpose |
|---|---|
vp run dev | Start API and web. |
vp run dev:api | API only. |
vp run dev:web | Web only. |
vp run test | Run tests. |
vp run typecheck | Type-check all packages. |
vp run db:migrate | Apply SQL migrations. |
vp run db:check | Detect schema drift against the migrated dev DB. |
vp run db:seed | Seed default account, user, workspace, and domains. |
vp run db:seed-dev | Populate realistic development data. |
vp run services:down | Stop Postgres. |
Migrations
Migrations are hand-authored SQL files in:- Update
packages/api/src/db/schema.ts. - Add the next numbered SQL migration.
- Run
vp run db:migrate. - Run
vp run db:check.
Scenario seeds
Focused scenario seeds live in:db:seed-dev: empty states, long diffs, plan-limit cases, or deeply nested relationships. Scenario seeds should be idempotent.
Browser testing
Use the configured browser testing flow after UI changes. Start the dev server first:localhost:5173. The browser session persists login state in the configured Playwright cache.