Recommended Production Stack
- Vercel for app hosting
- Supabase for authentication
- PostgreSQL for database
- Upstash Redis for OTP and cache flows
- Resend for transactional email
Step 1: Add Environment Variables
Copy every required variable into your hosting provider before the first production build.
Do not forget provider-specific webhook secrets, NEXT_PUBLIC_JAMPACK_APP_URL, and monitoring variables if you are enabling them at launch.
Step 2: Run Prisma Migrations
This is especially important because organization-level billing depends on the OrganizationSubscription schema added by later migrations.
npx prisma migrate deploy
Step 3: Verify Auth and Redirects
- Set production redirect URLs in Supabase.
- Confirm / redirects to /landing.
- Confirm protected routes still redirect unauthenticated users to /auth/login/simple?next=....
Step 4: Configure Billing and Webhooks
- Replace payment IDs in config/pricing.ts.
- Configure one provider first.
- Add the production webhook URL.
- Test one complete success flow.
- Verify Prisma billing records before enabling other providers.
Step 5: Enable Optional Infrastructure
Redis should be enabled before exposing destructive delete flows in production.
- Resend
- Redis
- PostHog
- Sentry
Step 6: Run Post-Deploy QA
- Landing page load
- Signup
- Login
- Organization creation
- Invite send and accept
- Pricing checkout
- Webhook sync
- Delete verification flows
- Language switcher
- Dark and light mode