Local setup
Install, run the database, seed demo data and start the app.
For: Developers
Prerequisites
- Node 24 (see
.nvmrc) and pnpm (version pinned inpackage.json). - The Supabase CLI and Docker for the local stack.
- Rust (stable) with the
wasm32-unknown-unknowntarget only if you change the engines. - Mailpit for local email (the Supabase stack provides it on port 57324 in the CI setup).
Steps
pnpm install
cp .env.example .env.local
supabase start
pnpm db:reset
pnpm devFill .env.local with the values printed by supabase start. See Environment variables.
Demo data
pnpm db:seedCreates or reuses the demo host and replaces the event folake-demola-2026 with 60 guests, 7 banquet tables and 6 vendors. Sign in as demo@owambe.ng (password in the README), open /events, and the public page is /e/folake-demola-2026. Run it only against a disposable local database.
Everyday commands
| Command | What it does |
|---|---|
pnpm dev | Start the app |
pnpm build | Production build |
pnpm lint | ESLint across the source |
pnpm typecheck | tsc --noEmit |
pnpm test | Vitest unit and integration tests |
pnpm test:db | pgTAP database, RLS and privilege tests |
pnpm test:e2e | Playwright end-to-end suite with axe accessibility checks |
pnpm check:bundle | Fail if Three.js or GSAP appear in app client chunks |
pnpm format:check | Prettier check |
pnpm analyze | Bundle analyzer |
pnpm db:types | Regenerate Supabase TypeScript types |