Configuration
Env keys the server expects, plus the config files people touch first when rebranding.
Environment variables
Copy the template:
cp .env.local.example .env.local
Required (local dev)
NEXT_PUBLIC_SUPABASE_URL=...
NEXT_PUBLIC_SUPABASE_ANON_KEY=...
SUPABASE_SERVICE_ROLE_KEY=...
NEXT_PUBLIC_APP_URL=http://localhost:3000
Optional (but recommended in production)
Stripe
STRIPE_SECRET_KEY=sk_...
STRIPE_WEBHOOK_SECRET=whsec_...
NEXT_PUBLIC_STRIPE_PUBLISHABLE_KEY=pk_...
NEXT_PUBLIC_STRIPE_PRO_MONTHLY_PRICE_ID=price_...
NEXT_PUBLIC_STRIPE_PRO_YEARLY_PRICE_ID=price_...
NEXT_PUBLIC_STRIPE_ENTERPRISE_MONTHLY_PRICE_ID=price_...
NEXT_PUBLIC_STRIPE_ENTERPRISE_YEARLY_PRICE_ID=price_...
See Stripe Setup.
Resend (invitations)
RESEND_API_KEY=re_...
EMAIL_FROM="YourApp <noreply@yourdomain.com>"
See Resend Setup.
Supabase Auth URL configuration
In Supabase → Authentication → URL Configuration:
- Site URL: your app URL (e.g.
http://localhost:3000orhttps://yourapp.com) - Redirect URLs: add
https://yourapp.com/auth/callback(and localhttp://localhost:3000/auth/callback)
If these are wrong, you’ll usually see OAuth redirect errors or sign-in loops.
Where to customize
- Brand:
src/config/brand.ts - UI content:
src/config/ui/* - Routes:
src/config/routes.ts - Pricing:
src/config/pricing.ts - Docs navigation:
src/config/docs.ts