Gatherly← Back to home
Setup required

Wire up Supabase to use the app.

The marketing pages work without a backend, but the app side (Circles, events, RSVPs, chat, album) needs a Supabase project. It's free and takes about 3 minutes.

  1. Create a Supabase project

    Go to supabase.com/dashboard/new and create a project. The free tier is plenty for testing.
  2. Grab your keys

    In your project, open Settings → API. Copy the Project URL, the anon public key, and the service_role secret key.
  3. Drop them in .env.local

    In the project root, create .env.local (copy from .env.local.example) and paste:
    NEXT_PUBLIC_SITE_URL=http://localhost:3004
    NEXT_PUBLIC_SUPABASE_URL=https://YOUR_PROJECT.supabase.co
    NEXT_PUBLIC_SUPABASE_ANON_KEY=eyJ...
    SUPABASE_SERVICE_ROLE_KEY=eyJ...
  4. Run the SQL migrations

    Open the SQL Editor in Supabase and run, in order:
    • 0001_initial_schema.sql — tables + RLS + auto-profile trigger
    • 0002_phase2.sql — recurrence, sub-event polish, waitlist auto-promote
    • 0003_realtime_chat.sql — real-time chat publication
    • 0004_booking_hub.sql — booking links
    • 0005_reclub_parity.sql — kind, duration, +1
    • 0006_cost_split.sql — payment / cost-split

    Then in Storage create two public buckets: media and covers.

  5. Restart the dev server

    Stop the dev server (Ctrl-C in the terminal) and run npm run dev again so Next.js picks up the new env vars.