Next stages
Environment locked
Supabase migrations applied
Stripe webhook verified
Test order completed
Live smoke order signed
production apply guide
A practical bridge from the latest zip to real launch: archive, Vercel env, Supabase migrations, Stripe webhook, test order, live smoke, email, privacy, rollback, and owner go/no-go.
production apply console
Mark real evidence before enabling payments: archive, env, Supabase, Stripe webhook, test order, live smoke, email, privacy, and rollback.
readiness
0%
blocked · local
evidence locks
live blockers
Environment locked
Supabase migrations applied
Stripe webhook verified
Test order completed
Live smoke order signed
Missing or mixed env
Migration order unknown
Webhook is not source of truth
Private data in logs
No recovery or rollback
live Stripe keys before webhook proof · success redirect treated as payment proof · missing Supabase migration · question_text in public artifact or email preview · answer_text in analytics or logs
Go/no-gocode
Latest archive, clean install, checks, and report hash.
env
Vercel env matrix without live/test fog.
data
Migrations, RLS, service-role-only writes, and deletion path.
money
Webhook truth, idempotency, purchase unlock, and refund/recreate.
owner
Go/no-go, live smoke, first 24h watch, and growth review.
stages
The working project uses the latest master-completion archive, not an older zip from a neighboring pass.
Local and Vercel use Node 20.x, dependencies install without manual alchemy.
All live/test env is separated: Supabase, Stripe, Resend, OpenAI, Upstash, and site URLs are not mixed.
Migrations 0010-0015 are applied in order and the owner knows which project ref they were applied to.
The webhook, not the redirect page, creates purchase unlock, delivery job, and audit event.
A test purchase completed product → checkout → webhook → unlock → artifact → email → archive.
A minimal live purchase is completed by the owner after env lock and before ads.
Resend domain, from address, support address, receipt, recovery, and safe preview are checked.
Public artifact, analytics, logs, support macros, and email preview contain no private payload.
There is incident log, owner runbook, rollback note, and first 24h watch after deploy.
blocker risks
Check archive name, SHA256, and report file before replacing the project.
Verify env matrix: test, preview, production, live keys, callback URLs, and webhook secret.
Apply migrations in order and record project ref and date.
Unlock only through verified Stripe webhook, idempotency key, and ledger event.
Success page must read purchase status, not act as proof.
Enable live only after test order, live smoke order, and owner signoff.
Forbid question_text, answer_text, email, birth_date, payment id, and private_payload in public layers.
Prepare recovery macros, incident log, rollback note, and recreate/refund decision tree.
rooms