Combat sports interclub matchmaking platform. Organizers create events, share a link with coaches, coaches submit their fighters, and SquaredUp matches everyone into fair bouts.
- Frontend: Next.js (App Router, React 19)
- Backend/DB: Supabase (PostgreSQL, Auth, RLS)
- Auth: Supabase Auth (email/password for organizers, magic link for coaches)
- Styling: Tailwind CSS v4, shadcn/ui
- Language: TypeScript
- Deployment: Vercel
- Node.js 20+
- Supabase project (create at supabase.com)
# 1. Install dependencies
npm install
# 2. Copy env and fill in your Supabase credentials
cp .env.example .env
# 3. Run the schema against your Supabase project
# (paste schema.sql into the Supabase SQL editor)
# 4. Generate TypeScript types from your schema
npx supabase gen types typescript --project-id your-project-id > src/types/database.ts
# 5. Start the dev server
npm run devOpen http://localhost:3000.