A mobile-first PWA for connecting people through local groups and events.
- Frontend: SvelteKit + TypeScript (strict mode) + Tailwind CSS
- Backend: Supabase (PostgreSQL, Auth, Realtime, Storage)
- Testing: Vitest (unit), Playwright (E2E)
- Hosting: Netlify
- Install dependencies:
pnpm install- Configure environment variables:
cp .env.example .env
# Edit .env with your Supabase credentials from https://supabase.com/dashboard- Generate database types (after Supabase is configured):
pnpm db:typesStart the development server:
pnpm devThis project uses TypeScript types generated from your Supabase database schema for type safety.
-
Ensure you have valid Supabase credentials in
.env:PUBLIC_SUPABASE_URLSUPABASE_SERVICE_ROLE_KEY
-
Install Supabase CLI globally (one-time setup):
npm install -g supabaseAfter making changes to your Supabase database schema, regenerate types:
pnpm db:typesThis will:
- Connect to your Supabase project
- Fetch the latest schema
- Generate TypeScript types in
src/lib/types/database.ts
import type { Tables, TablesInsert, TablesUpdate } from '$lib/types/database';
// Get the type for a table row
type User = Tables<'users'>;
// Get the type for inserting a new row
type UserInsert = TablesInsert<'users'>;
// Get the type for updating a row
type UserUpdate = TablesUpdate<'users'>;All 9 quality gates must pass before committing:
pnpm check # TypeScript + Svelte diagnostics
pnpm lint # ESLint (0 errors, 0 warnings)
pnpm test:coverage # Vitest with 80% coverage
pnpm build # Production build
pnpm knip # Dead code detection
pnpm depcheck # Unused dependenciesFull validation:
pnpm check && pnpm lint && pnpm test:coverage && pnpm build && pnpm knip && pnpm depcheckProduction build:
pnpm buildPreview production build:
pnpm previewCLAUDE.md- Project instructions for AI assistantsAGENTS.md- Operational guide with quality gatesspecs/- Feature specificationsIMPLEMENTATION_PLAN.md- Task tracking