Use separate Supabase projects for development and production.
| Environment | How vars are loaded | Where to set |
|--------------------|------------------------------------------------|---------------------------------------------------|
| Local dev | npm run dev loads .env | .env with dev Supabase URL/key |
| Netlify prod | Build env vars from Netlify UI | Site settings β Environment variables |
| Local prod preview | npm run preview:prod | .env.production with prod Supabase URL/key |
Netlify does not load .env.production; set NUXT_PUBLIC_SUPABASE_URL and NUXT_PUBLIC_SUPABASE_KEY in Netlifyβs environment variables for production builds.
Supabase project settings (per project):
- Auth β Providers: Enable Google OAuth
- Auth β URL configuration: Dev β
http://localhost:3000, http://localhost:3000/confirm; Prod β your Netlify URL and /confirm
Database migrations (Supabase CLI):
```bash
# One-time: link and push (prompts for DB password, or set SUPABASE_DB_PASSWORD)
npm run db:push:dev # push to dev project
npm run db:push:prod # push to prod project
```
For existing projects that already have the schema applied manually, mark the initial migration as applied before pushing:
```bash
supabase link --project-ref
supabase migration repair 20250101000000_initial_schema --status applied
```