Commands

The scripts in the root and app package.json files, grouped by what you use them for.

Last updated

Run these from the repository root. --filter <name> runs a script in one workspace.

Every day

CommandWhat it does
pnpm devStarts the web app (port 3000) and the developer tool (port 3010)
pnpm typecheckTypeScript check of the workspaces affected by your changes
pnpm lint / pnpm lint:fixLint with oxlint, or lint and fix
pnpm format / pnpm format:fixCheck formatting with oxfmt, or format
pnpm healthcheckLint fix, format, typecheck and workspace dependency fix in one go
pnpm buildProduction build of every workspace

The root AGENTS.md tells coding agents to run pnpm typecheck, pnpm lint:fix and pnpm format:fix after every change.

Database

CommandWhat it does
pnpm supabase:web:startStarts the local Supabase stack (Docker)
pnpm supabase:web:stopStops it
pnpm supabase:web:resetRebuilds the local database from migrations and seed.sql. Wipes local data.
pnpm supabase:web:typegenRegenerates the TypeScript types in packages/supabase/src/database.types.ts and apps/web/lib/database.types.ts
pnpm supabase:web:testRuns the pgTAP database tests
pnpm --filter web supabase:db:diff -f <name>Writes a migration from the difference between schemas/ and the local database
pnpm --filter web supabase:db:lintLints the database with the Supabase CLI
pnpm --filter web supabase:demo:testRuns the live demo tests inside a transaction that is rolled back
pnpm --filter web supabase:deployLinks the project in SUPABASE_PROJECT_REF and pushes the migrations

Tests

CommandWhat it does
pnpm --filter web-e2e testPlaywright end-to-end tests against http://localhost:3000
pnpm --filter web-e2e test:uiThe same in Playwright's UI, with billing tests on
pnpm --filter web-e2e responsiveRenders a page at widths from 320 to 1920 pixels and fails on horizontal overflow

The end-to-end tests skip billing specs unless ENABLE_BILLING_TESTS=true, and skip the live demo spec unless E2E_DEMO_MODE=true (see apps/e2e/playwright.config.ts).

Billing

CommandWhat it does
pnpm stripe:listenForwards Stripe test events to your local webhook route (runs the Stripe CLI in Docker)

Coding agents

CommandWhat it does
pnpm skills:checkFails if the three skill folders differ, a skill is malformed or unlicensed, or the skill count drifts
pnpm skills:sync <name>Copies a skill from its upstream repository into all three skill folders
pnpm ui-skills startStarts the UI Skills router (through npx). AGENTS.md requires it before UI work

Phone app

CommandWhat it does
pnpm start:nativeStarts the Expo dev server
pnpm ios:native / pnpm android:nativeBuilds and runs the app on iOS or Android
pnpm doctor:nativeRuns the Expo doctor checks
pnpm i18n:nativeMerges the web app's messages with the phone app's own and writes apps/native/lib/i18n/messages.generated.ts

CI (.github/workflows/workflow.yml) runs typecheck, lint and pnpm skills:check on pushes and pull requests to main. The end-to-end and database test job runs only when the repository variable ENABLE_E2E_JOB is true.

Live demo

Resets hourly

Get the kit