Prerequisites
Make sure you have the following installed before starting:Step 1 — Clone the Repositories
Step 2 — Frontend Setup
apps/full-suite/.env:
apps/a11y/.env with the same values.
The
VITE_ prefix is required — Vite only exposes env vars with this prefix to the browser. Never put secrets in these files.Step 3 — Backend Setup
.env with your local values:
Step 4 — Database & Migrations
Step 5 — Generate RSA Keys (JWT)
The backend uses RS256 JWT. You need to generate a key pair once:Step 6 — Start the Dev Servers
You can use Claude’s built-in server launcher (configured in.claude/launch.json):
Step 7 — Verify Everything Works
Git Workflow
This project uses Conventional Commits enforced bycommitlint:
feat, fix, docs, style, refactor, test, chore, perf
Pre-commit hooks (Husky) will automatically run eslint --fix and prettier on staged files.
Common Issues
pnpm install fails with peer dependency errors
pnpm install fails with peer dependency errors
Make sure your Node.js version is ≥ 20.14.0. Run
node --version to check.Backend fails to start — cannot connect to DB
Backend fails to start — cannot connect to DB
Ensure PostgreSQL is running (
pg_isready) and the database exists (createdb auditor_dev). Check AUDITOR_APP_DB_* values in .env.Backend fails — JWT key not found
Backend fails — JWT key not found
Run the RSA key generation step (Step 5). The paths in
.env must point to the generated files.Frontend shows CORS errors
Frontend shows CORS errors
Make sure
VITE_API_URL ends with a trailing slash and points to your running backend. Also ensure the backend has your localhost origin in its CORS config.Route tree not updating after adding a new route file
Route tree not updating after adding a new route file
The route tree is auto-generated by Vite. Just save any file in
src/routes/ and the Vite plugin will regenerate routeTree.gen.ts.