Prepare the accounts for your current stage. Each service name links to a guide showing where to get its key and where to save it. You can build and launch on the free plans; the costs column shows where a paid plan or credits come in.
Before Kickstart
The default setup needs Supabase, Stripe test and Resend credentials. OpenRouter is optional.
| Service | API key variable | What it's used for | Cost |
|---|---|---|---|
| Supabase | SUPABASE_ACCESS_TOKEN |
| Free plan |
| Stripe | STRIPE_TEST_SECRET_KEY |
| Free; test mode moves no real money |
| Resend | RESEND_API_KEY |
| Free plan |
| OpenRouter (optional) | OPENROUTER_API_KEY |
| Paid credits for AI requests |
Stripe gives every account a test environment and a live one. Test keys start with sk_test_ and use test card numbers, so you can try checkout without charging anyone. You only need the live key when you deploy.
For AI, add the OpenRouter key and set AI_ENABLED=true. Otherwise, leave AI_ENABLED=false: your app works, but AI chat is unavailable.
Before deployment
Keep your existing .env, Supabase project and optional OpenRouter setup. Prepare these when your local app is ready to go online:
| Service | API key variable | What it's used for | Cost |
|---|---|---|---|
| GitHub | GITHUB_TOKEN |
| Free |
| Vercel | VERCEL_TOKEN |
| Free Hobby plan; Pro for commercial use |
| Stripe | STRIPE_LIVE_SECRET_KEY |
| Free; Stripe's fees apply to real payments |
| Resend | RESEND_API_KEY (keep existing) |
| Free plan; you need a domain |
| Google sign-in (optional) | Client ID and secret in Supabase; no .env variable |
| Free |
Vercel's Hobby plan is limited to personal, non-commercial projects. Upgrade to Pro before your app takes payments. Every provider has its own usage limits, and live Stripe payments charge real money.
Where to save your keys
All keys go in one file named .env, in the project folder beside package.json. Create it from the example file if it doesn't exist yet:
cp .env.example .envRun the command from the project folder, or keep your existing .env if you already have one. Open .env in your editor, paste each key after the = on its existing line and save. Use .env, not .env.local or .env.txt. Files starting with a dot are hidden in Finder by default; your editor's file list shows them.
If you use an AI agent, give it this prompt to prepare the file, then paste the keys yourself:
Keep your keys private
These keys can create resources, send email and manage billing on your accounts. Keep them only in .env. Don't paste them into chat, screenshots, Git commits or any NEXT_PUBLIC_ field, because those values are visible in the browser. If a key leaks, revoke it in the provider's dashboard and create a new one.
You're ready when
.envexists besidepackage.json.SUPABASE_ACCESS_TOKEN,STRIPE_TEST_SECRET_KEYandRESEND_API_KEYeach have one saved value.- If you want AI chat,
OPENROUTER_API_KEYis saved andAI_ENABLED=true.
Template 0.0.1 · September 2026 source snapshot