Overview
aSaaSin uses several external services that require configuration via environment variables. These variables are stored in a .env.local
file at the root of your project.
Environment variables are not committed to Git. Each developer must set them individually.
Create .env
# Create a copy of the example file
cp .env.example .env
The .env.example
file contains all required variables as empty keys. After copying, replace them with your own project-specific values.
# General
NEXT_PUBLIC_APP_URL=http://localhost:3000
NEXT_PUBLIC_MAINTENANCE_MODE=false
# Google Analytics
NEXT_PUBLIC_GA_ID=
# Supabase
NEXT_PUBLIC_SUPABASE_URL=
NEXT_PUBLIC_SUPABASE_ANON_KEY=
SUPABASE_SERVICE_ROLE_KEY=
# Tina CMS
NEXT_PUBLIC_TINA_CLIENT_ID=
TINA_TOKEN=
TINA_SEARCH_TOKEN=
# Resend
RESEND_API_KEY=
RESEND_AUDIENCE_ID=
RESEND_NOTIFICATION_EMAIL=
# Lemon Squeezy
LEMON_SQUEEZY_API_KEY=
LEMON_SQUEEZY_STORE_ID=
LEMON_SQUEEZY_WEBHOOK_SECRET=
LEMON_SQUEEZY_VARIANT_ID_STARTER=
LEMON_SQUEEZY_VARIANT_ID_ULTIMATE=
# OpenAI
OPENAI_API_KEY=
Variable reference
General
NEXT_PUBLIC_APP_URL
→ Base URL of your app (local or production).NEXT_PUBLIC_MAINTENANCE_MODE
→ Toggle maintenance mode (true
/false
).
Google Analytics
NEXT_PUBLIC_GA_ID
→ Google Analytics measurement ID (optional).
Supabase
NEXT_PUBLIC_SUPABASE_URL
→ Project API URL from Supabase dashboard.NEXT_PUBLIC_SUPABASE_ANON_KEY
→ Public anon key from Supabase project settings.SUPABASE_SERVICE_ROLE_KEY
→ Service role key (server-side only).
TinaCMS
NEXT_PUBLIC_TINA_CLIENT_ID
→ Client ID from Tina Cloud project.TINA_TOKEN
→ API token for content editing.TINA_SEARCH_TOKEN
→ Token for Tina search.
Resend
RESEND_API_KEY
→ API key from Resend dashboard.RESEND_AUDIENCE_ID
→ Audience list ID for newsletters.RESEND_NOTIFICATION_EMAIL
→ Default sender email for notifications.
Lemon Squeezy
LEMON_SQUEEZY_API_KEY
→ API key from Lemon Squeezy dashboard.LEMON_SQUEEZY_STORE_ID
→ Store ID from your account.LEMON_SQUEEZY_WEBHOOK_SECRET
→ Secret for validating webhooks.LEMON_SQUEEZY_VARIANT_ID_STARTER
→ Variant ID for the Starter plan.LEMON_SQUEEZY_VARIANT_ID_ULTIMATE
→ Variant ID for the Ultimate plan.
OpenAI
OPENAI_API_KEY
→ API key for AI features (branding, color palettes, etc.).