Setup
Everything Curb needs to be fully live. Set up in any order. The app runs in demo mode for anything not yet configured.
Database (Neon Postgres)
PendingEvery session, lease, validation, and payment record. Without this, the app runs entirely in demo mode.
DATABASE_URL not set
Stripe (live keys)
LiveReal card capture, real Subscriptions, real charges, Apple Pay sheet on the apply flow.
live · API reachable · USD account
Stripe webhook signing
LiveLets the platform receive invoice.paid / payment_failed / subscription.deleted events so the database stays in sync with Stripe.
configured
Twilio + A2P 10DLC
PendingWelcome SMS, grace warnings, receipts, tow alerts. Filing typically takes 3-7 business days.
TWILIO_ACCOUNT_SID not set
Better Auth secret
LivePhone OTP sign-in for operators and tenants. Gates /admin and /account.
configured
Cron secret
LiveProtects the cron endpoints (sweep-sessions, purge-dmv-lookups, purge-alpr-photos) from unauthorized triggers.
CRON_SECRET set; sweep + purge jobs protected
App URL
LiveUsed in SMS templates, Stripe redirect URLs, and the OG image base.
https://curb-ten.vercel.app
Plate Recognizer (Phase 3)
PendingLPR camera webhooks for automatic plate reads at entry. Optional in pilot — you can run QR-only first.
PLATE_RECOGNIZER_TOKEN not set (Phase 3)
The biggest unlock. Sign up at neon.tech, create a project called curb-prod, copy the pooled connection string, then run from your terminal:
cd ~/brcg/curb export VERCEL_TOKEN=vcp_... bin/setup-neon.sh "postgresql://user:pass@ep-xxx.neon.tech/curb?sslmode=require"
The script applies the schema, runs the Black Cow seed, sets DATABASE_URL in Vercel (encrypted), and triggers a production redeploy. About 90 seconds end to end.