Skip to content
Documentation

Accounts overview

See which accounts and keys you need for Kickstart and deployment.

View Markdown

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.

ServiceAPI key variableWhat it's used forCost
SupabaseSUPABASE_ACCESS_TOKEN
  • Create your hosted project
  • Set up database, sign-in and storage
Free plan
StripeSTRIPE_TEST_SECRET_KEY
  • Create test products and prices
  • Configure the billing portal and webhook
Free; test mode moves no real money
ResendRESEND_API_KEY
  • Publish email templates
  • Send authentication emails and invitations
Free plan
OpenRouter (optional)OPENROUTER_API_KEY
  • Check model access during setup
  • Generate AI chat responses in your app
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:

ServiceAPI key variableWhat it's used forCost
GitHubGITHUB_TOKEN
  • Create your private repository
  • Push your app's source code
Free
VercelVERCEL_TOKEN
  • Connect hosting to GitHub
  • Save production settings and deploy
Free Hobby plan; Pro for commercial use
StripeSTRIPE_LIVE_SECRET_KEY
  • Create live products and prices
  • Configure the live portal and webhook
Free; Stripe's fees apply to real payments
ResendRESEND_API_KEY (keep existing)
  • Check your verified sender
  • Send emails to customers
Free plan; you need a domain
Google sign-in (optional)Client ID and secret in Supabase; no .env variable
  • Let customers sign in with Google
  • Configure manually in Google and Supabase
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 .env

Run 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

  • .env exists beside package.json.
  • SUPABASE_ACCESS_TOKEN, STRIPE_TEST_SECRET_KEY and RESEND_API_KEY each have one saved value.
  • If you want AI chat, OPENROUTER_API_KEY is saved and AI_ENABLED=true.

Template 0.0.1 · September 2026 source snapshot