Skip to content
Launch Kit logo

Get started

Environment variables

Every credential Launch Kit reads, where it goes, and whether you need it to run locally or to take a payment.

Copy .env.example to .env.local. Restart npm run dev after you change a NEXT_PUBLIC_* value.

The file

VariableServiceRequired toWhat Launch Kit does with it
NEXT_PUBLIC_SITE_URLAppProduction URLsPublic site URL. Falls back to localhost in dev, then config.domainName
NEXT_PUBLIC_SUPABASE_URLSupabaseSign inProject URL for browser, server, and middleware
NEXT_PUBLIC_SUPABASE_ANON_KEYSupabaseSign inPublic anon key. RLS still applies
SUPABASE_SERVICE_ROLE_KEYSupabaseGrant access after payStripe webhook writes profiles and can create a user
STRIPE_SECRET_KEYStripeCheckoutCreates Checkout and portal sessions, verifies webhooks
STRIPE_WEBHOOK_SECRETStripeGrant access after paySignature check on /api/webhook/stripe
NEXT_PUBLIC_STRIPE_PRICE_IDStripeShow a working Buy buttonPlan priceId in config.ts, sent to Checkout
RESEND_API_KEYResendWelcome emailsendEmail() in libs/resend.ts
SITE_URLSitemapProduction SEOnext-sitemap site URL. Falls back to https://launch-kit.co
STRIPE_PUBLIC_KEY—NoListed in .env.example. Not read by the app

Use Stripe test keys and the Resend test sender. Set:

bash
NEXT_PUBLIC_SITE_URL=http://localhost:3000

Leave SITE_URL unset until you deploy. Forward webhooks with the Stripe CLI. See Stripe.

Where to get each key

Full setup for each dashboard: