Enforced
Turnkey checklist
This is not a wiki. The API refuses production money if these are red. Demo ignores them on purpose.
Live process
Investor demo · us-west
database
memory
cache
memory
broker
memory
payments
simulated
auth
memory
uploads
memory
- ●
Investor demo runs with zero vendor accountsdemo
Memory adapters + simulated Stripe/IoT/Twilio. npm run dev is enough.
- ○
Durable Postgres (DATABASE_URL)production
Unset on purpose. Set DATABASE_URL to Neon or Supabase to persist (PITR backups included by those hosts).
- ○
Non-default JWT_SECRETproduction
Using the built-in demo secret. Set JWT_SECRET before GO_LIVE.
- ○
Stripe Connect for real moneyproduction
Holds post to the in-process ledger only. No card network fees.
- ●
Compliance jurisdiction ()production
US-CA is the first live state. Other states stay dark until counsel enables them.
- ○
California counsel reviewed program formsproduction
On-site contracts are templates. Set LEGAL_COUNSEL_REVIEWED=true after a CA attorney signs off.
- ○
1099 + local tax collection switchesproduction
TAX_FORM_1099_ENABLED and TAX_COLLECTION_ENABLED must be true before live payouts.
- ○
Point-in-time backupsproduction
Memory mode has nothing to back up. Persistence and backups arrive with DATABASE_URL.
Backups: none · memory · n/a — process restart wipes demo state. Upgrade knobs: DATABASE_URL, REDIS_URL.
Recommended sequence
- Keep pitching on demo (no env). $0.
- Create a Neon or Supabase project. Set DATABASE_URL. Run npx prisma migrate deploy. You now have persistence and backups. Still no GO_LIVE.
- Set JWT_SECRET to a long random value.
- California attorney reviews /legal. Surplus-lines / MGA partner can bind PVSP trips. Then LEGAL_COUNSEL_REVIEWED=true.
- Turn on Stripe Connect. Set STRIPE_SECRET_KEY.
- Set TAX_FORM_1099_ENABLED=true and load TAX_CITY_BPS_JSON when counsel provides rates. TAX_COLLECTION_ENABLED=true.
- COMPLIANCE_JURISDICTION=US-CA. GO_LIVE=true.
- REDIS_URL when you add the realtime process or a second instance.
DATABASE_URL=postgresql://... # knob 1 — durable DB + PITR
JWT_SECRET=replace-the-demo-secret
GO_LIVE=true
COMPLIANCE_JURISDICTION=US-CA
LEGAL_COUNSEL_REVIEWED=true
TAX_FORM_1099_ENABLED=true
TAX_COLLECTION_ENABLED=true
STRIPE_SECRET_KEY=sk_live_...
REDIS_URL=rediss://... # knob 2 — multi-process presence