Ship
Go-live checklist
A last pass before you take a real card. Config, credentials, legal, and the access flag.
Work top to bottom. Local test mode can stay green while production is missing one URL.
Product
-
config.appName,appDescription, anddomainNameare yours - Plan name, price, and bullets match the Stripe price
- Logo and share images replaced
-
--color-primaryandconfig.colors.mainmatch - Homepage sections are the ones you want (
/showcaseis not linked) - Header and footer nav match the page
-
/tosand/privacy-policyare rewritten -
resend.supportEmailis a real inbox, or intentionally empty
Credentials
- Production env vars set, including
NEXT_PUBLIC_SITE_URLandSITE_URL -
profilestable, trigger, and RLS exist - Google and Email enabled in Supabase
- Production callback URL allowlisted
- Live Stripe webhook on
/api/webhook/stripe - Customer portal on
- Resend domain verified and
fromAdminupdated
Access
- Test checkout in live mode with a real small charge, or a 100% off coupon
-
has_accessflips totrue - Welcome email arrives
- Dashboard (or your paid route) reads
has_access - Billing portal opens from
ButtonAccount
SEO
-
app/opengraph-image.pngandicon.pngare yours - Sitemap lists the public routes after a production build
-
/showcasestays unlinked if you do not want it public
When this list is done, spend the week on the product — not the plumbing.