Documentation

Guides and references

Getting Started

Environment Variables (NEXT_PUBLIC_SUPABASE_PUBLISHABLE_KEY)

NextBento env var reference, including NEXT_PUBLIC_SUPABASE_PUBLISHABLE_KEY, Stripe keys, Resend, and optional Search Console and IndexNow values.

Copy these into .env.local. The value people search for most is NEXT_PUBLIC_SUPABASE_PUBLISHABLE_KEY — that is the Supabase anon/publishable key from Project Settings. Missing required vars fail validation at build or runtime.

Required Variables

Supabase

VariableDescription
NEXT_PUBLIC_SUPABASE_URLYour Supabase project URL
NEXT_PUBLIC_SUPABASE_PUBLISHABLE_KEYSupabase anon/public key
SUPABASE_SECRET_KEYSupabase service role key (server-side only)

Stripe

VariableDescription
NEXT_PUBLIC_STRIPE_PUBLISHABLE_KEYStripe publishable key (pk_)
STRIPE_SECRET_KEYStripe secret key (sk_)
STRIPE_WEBHOOK_SECRETStripe webhook signing secret (whsec_)
STRIPE_PRICE_STANDARD_MONTHLYPrice ID for Standard monthly
STRIPE_PRICE_STANDARD_ANNUALPrice ID for Standard annual
STRIPE_PRICE_PRO_MONTHLYPrice ID for Pro monthly
STRIPE_PRICE_PRO_ANNUALPrice ID for Pro annual
STRIPE_PRICE_ULTRA_MONTHLYPrice ID for Ultra monthly
STRIPE_PRICE_ULTRA_ANNUALPrice ID for Ultra annual

App

VariableDescription
NEXT_PUBLIC_APP_URLCanonical app URL (e.g. https://yourapp.com)

Resend

VariableDescription
RESEND_API_KEYResend API key (re_)

Optional Variables

VariableDescription
NODE_ENVdevelopment or production
GOOGLE_VERIFICATION_CODEFor Google Search Console
INDEXNOW_KEYFor IndexNow indexing
NEXT_EVENTDASH_API_KEYFor analytics (if used)

Validation

NextBento validates environment variables at build/runtime using Zod in lib/config/env.ts and lib/config/validate-env.ts. Missing required vars will cause clear error messages.

Security Notes

  • Never commit .env.local to git (it's in .gitignore)
  • Use different keys for development and production
  • SUPABASE_SECRET_KEY and STRIPE_SECRET_KEY must never be exposed to the client
  • Rotate keys if they are ever exposed
  • Use Vercel (or your host) environment variables for production — never hardcode

Example .env.local

# Supabase
NEXT_PUBLIC_SUPABASE_URL=https://xxx.supabase.co
NEXT_PUBLIC_SUPABASE_PUBLISHABLE_KEY=eyJ...
SUPABASE_SECRET_KEY=eyJ...

# Stripe
NEXT_PUBLIC_STRIPE_PUBLISHABLE_KEY=pk_test_xxx
STRIPE_SECRET_KEY=sk_test_xxx
STRIPE_WEBHOOK_SECRET=whsec_xxx
STRIPE_PRICE_STANDARD_MONTHLY=price_xxx
STRIPE_PRICE_STANDARD_ANNUAL=price_xxx
STRIPE_PRICE_PRO_MONTHLY=price_xxx
STRIPE_PRICE_PRO_ANNUAL=price_xxx
STRIPE_PRICE_ULTRA_MONTHLY=price_xxx
STRIPE_PRICE_ULTRA_ANNUAL=price_xxx

# App
NEXT_PUBLIC_APP_URL=http://localhost:3000

# Resend
RESEND_API_KEY=re_xxx

Next Steps