Skip to content
Launch Kit logo

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 build

postbuild 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 sitemap
  • NEXT_PUBLIC_SUPABASE_URL
  • NEXT_PUBLIC_SUPABASE_ANON_KEY
  • SUPABASE_SERVICE_ROLE_KEY
  • STRIPE_SECRET_KEY
  • STRIPE_WEBHOOK_SECRET — from the production webhook endpoint
  • NEXT_PUBLIC_STRIPE_PRICE_ID
  • RESEND_API_KEY

STRIPE_PUBLIC_KEY is unused. Skip it.

config.domainName must match the host you deploy to.

After the first deploy

  1. Supabase — add https://your-domain.com/api/auth/callback to redirect URLs. Add the site URL under Auth → URL configuration.
  2. Stripe — webhook endpoint https://your-domain.com/api/webhook/stripe with the events listed in Stripe. Paste the new whsec_ into the host. Test mode and live mode are separate endpoints.
  3. Resend — verify the domain, then set resend.fromAdmin in config.ts to that domain.
  4. 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.