Ship
Deploy
Push a Next.js app, set the env vars, then point Supabase, Stripe, and Resend at the live URL.
Launch Kit is a standard Next.js 15 app. Vercel is the default. Any Node host that runs next build and next start works.
bash
npm run buildpostbuild runs next-sitemap. Fix type and env errors here before you go live.
Environment variables
Set the same keys as .env.local on the host. Use live Stripe keys in production.
Required:
NEXT_PUBLIC_SITE_URL—https://your-domain.com(no trailing slash)SITE_URL— same value, for the sitemapNEXT_PUBLIC_SUPABASE_URLNEXT_PUBLIC_SUPABASE_ANON_KEYSUPABASE_SERVICE_ROLE_KEYSTRIPE_SECRET_KEYSTRIPE_WEBHOOK_SECRET— from the production webhook endpointNEXT_PUBLIC_STRIPE_PRICE_IDRESEND_API_KEY
STRIPE_PUBLIC_KEY is unused. Skip it.
config.domainName must match the host you deploy to.
After the first deploy
- Supabase — add
https://your-domain.com/api/auth/callbackto redirect URLs. Add the site URL under Auth → URL configuration. - Stripe — webhook endpoint
https://your-domain.com/api/webhook/stripewith the events listed in Stripe. Paste the newwhsec_into the host. Test mode and live mode are separate endpoints. - Resend — verify the domain, then set
resend.fromAdmininconfig.tsto that domain. - Customer portal — enabled in the Stripe dashboard.
Custom domain
Point DNS at the host, then set config.domainName, NEXT_PUBLIC_SITE_URL, and SITE_URL to that host. Rebuild so metadata and the sitemap match.