Ship it · 3 min
Going live
The list to walk before you take real money. Twenty minutes, and it catches the failures that are expensive later.
Money
- Stripe is out of test mode and the live keys are in production
- The webhook endpoint points at the real domain, with its own signing secret, not the test one
-
checkout.session.completedandcharge.refundedare both enabled - A real card has bought a real plan and the order landed in the database
- That payment has been refunded, and the refund unwound what the sale created
- Stripe Tax has a registration for your own country
Access
-
SUPABASE_SECRET_KEYappears in noNEXT_PUBLIC_variable and no client component - Reading each table with the publishable key alone returns nothing
- Signed-in pages carry
robots: { index: false } -
ADMIN_EMAILScontains only people who should see everyone's data - Any key that was ever pasted into a chat has been rotated
- The domain is verified in Resend and mail reaches an address you do not own
- Supabase SMTP points at Resend, port sent as a string
- All three auth templates use
?token_hash=, not the default{{ .ConfirmationURL }} - A magic link opened on a phone signs you in on that phone
The app
- Every page renders at 360px with no horizontal scroll
- Both themes render every page, including the code blocks
- Every link in the nav and the footer goes somewhere that exists
- Sign out, then open a bookmarked signed-in URL: it redirects, not 500s
- Nothing in the copy describes a feature you have not built
Content
- Terms, privacy and refund policy exist and are linked from checkout
- The refund promise in your copy matches what your webhook does
- No invented testimonials, no invented customer counts
-
NEXT_PUBLIC_SITE_URLis the canonical domain, and the sitemap agrees
After
Watch the Stripe event log for the first day, not your own logs. It tells you whether your webhook returned 200, and Stripe retries a failure for three days, which is usually long enough to fix it before anyone notices.
Something wrong or missing on this page? Tell us.