the boring pre-launch checklist

not the feature list. the ops stuff that bit me the first three times i shipped something to real users

01
error monitoring hooked up (sentry, or w/e)
shipped v1 with console.log as my error tracking. found a payment bug two weeks late, from a user email not from anything i built
02
automated db backups + a tested restore
having backups and having tested a restore are different claims, ymmv but i learned that one at 2am
03
health check endpoint
04
uptime monitoring on the actual prod url
first outage i heard about from twitter before my own monitor said a word. never again
05
custom 404 and 500 pages
06
rate limiting on signup + login
got hit with a bot signup wave on day 3. should've done this before launch, not after, tbh
07
secrets out of the repo, into env vars
08
staging env that mirrors prod
09
SPF/DKIM on the sending domain
half my welcome emails were landing in spam and nobody checks this until it's too late
10
unsubscribe link in every email
11
a terms of service + privacy page, even boilerplate
12
cookie banner if you're tracking eu visitors
13
idempotent webhook handling for payments
stripe retried a webhook and i double charged someone. the fix is one line: if already processed, return
14
account deletion that actually deletes data
15
load test the first endpoint people will actually hit
for me it was the signup form. hn traffic does not care about your free tier limits
16
a support inbox someone actually reads