Preview mode should reject writes and say so, not silently simulate success — a template that fakes a customer journey teaches the wrong lesson to everyone who clones it.
The gap to production is a checklist, not a leap of faith: database reachable, sign-in callbacks registered, a test payment replayed through the webhook, consent-gated analytics confirmed on a fresh pageview, then the same paths re-checked on the deployed domain.
Run the doctor script before you deploy, and verify the first real customer path on the live domain the way a customer would: without insider knowledge of which pieces are wired.