LogoDocs
Docs/Supabase setup

Supabase setup

The platform and your generated app both use Supabase for auth and database. This guide walks you through creating a project, grabbing your keys, and enabling everything you need before running your first migration.

Create a Supabase project

1
Sign up or log in

Go to supabase.com and sign in. Create a new organisation if this is your first project.

2
Create a new project

Click New project. Choose a name, set a strong database password (save it somewhere — you'll need it later), and pick a region closest to your users.

⚠️
Save your database passwordSupabase only shows it once during setup. Store it in your password manager now.
3
Get your API keys

Once the project is ready, go to Settings → API. You need two values:

  • Project URL — looks like https://xxxx.supabase.co
  • Anon / public key — safe to use client-side
  • Service role key — server-only, never expose client-side

Copy these into your .env.local:

bash
NEXT_PUBLIC_SUPABASE_URL=https://xxxx.supabase.co
NEXT_PUBLIC_SUPABASE_ANON_KEY=eyJ...
SUPABASE_SERVICE_ROLE_KEY=eyJ...

Enable authentication providers

Email auth (always on)

Email/password auth is enabled by default. Go to Authentication → Providers → Emailand make sure it's turned on. You can optionally enable Confirm email — if you do, users get a confirmation email before they can sign in.

Google OAuth

To enable "Continue with Google":

  1. Go to Google Cloud Console → APIs & Services → Credentials
  2. Create an OAuth 2.0 client ID (Web application type)
  3. Add your Supabase callback URL as an authorised redirect URI:
    https://xxxx.supabase.co/auth/v1/callback
  4. Copy the Client ID and Client Secret into Supabase → Authentication → Providers → Google
💡
For local development, also add http://localhost:3000/auth/callback as an authorised redirect URI in Google Cloud Console.

Set up redirect URLs

Go to Authentication → URL Configuration and set:

  • Site URL: your production URL (e.g. https://my-app.com)
  • Redirect URLs: add both production and local:
    http://localhost:3000/**
    https://my-app.com/**

Create the Storage bucket

If your app generates downloadable files (like the Claude Code package), you need a private storage bucket:

  1. Go to Storage → New bucket
  2. Name it skill-packages
  3. Leave it as Private (not public)
  4. Click Save
ℹ️
Files in this bucket are accessed via signed URLs (time-limited). The app generates them automatically when a user downloads their package.

Next: run your migrations

With your project set up and keys in .env.local, the next step is running the SQL migrations to create all the tables your app needs.