Files
route-commerce/LAUNCH_CHECKLIST.md
T
tyler 6ab52a2499 Production upgrade: Clerk auth, Stripe billing, analytics, PWA support
Backend & Auth:
- Add @clerk/nextjs for production authentication
- Create src/proxy.ts with clerkMiddleware() for route protection
- Implement multi-tenant auth with role-based access control
- Add Clerk components (Show, UserButton, SignInButton, SignUpButton)

Billing & Payments:
- Full Stripe integration (subscriptions, add-ons, customer portal)
- Plan tiers: Starter 9/mo, Farm 49/mo, Enterprise 99/mo
- Webhook handling for subscription events
- createSubscription(), createAddonSubscription(), createCustomerPortalSession()

API & Security:
- Rate limiting with @upstash/ratelimit (100 req/min API, 20 req/min checkout)
- Zod validation schemas for all endpoints (orders, products, campaigns, etc.)
- Security headers (CSP, HSTS, X-Frame-Options)
- API routes: /api/v1/ with validated, rate-limited endpoints

Monitoring:
- Sentry error tracking with performance monitoring
- PostHog analytics for feature usage, funnels, cohorts
- User activity logging and breadcrumb tracking

Admin Features:
- Analytics dashboard with revenue charts, customer growth, conversion funnel
- Onboarding flow with 6-step interactive tour
- Referral system with share tracking and reward redemption
- Changelog feed with in-app notifications

PWA & SEO:
- Web app manifest with icons and shortcuts
- Service worker for offline support and caching
- Full SEO metadata, OpenGraph, Twitter cards
- Structured data (JSON-LD) for organization and products

Database:
- Add referral_codes, changelogs, onboarding_progress tables
- Add user_activity_logs, api_keys, notification_preferences
- Comprehensive RLS policies for all new tables
- Seed data for demo brands and products
2026-06-02 05:33:42 +00:00

5.0 KiB

LAUNCH CHECKLIST - Route Commerce

Pre-Launch Verification

Environment Setup

  • Copy .env.example to .env.local
  • Add all required API keys:
    • Clerk publishable key
    • Stripe secret key and price IDs
    • Supabase URL and keys
    • Sentry DSN (for error monitoring)
    • PostHog API key (for analytics)

Database Setup

  • Run all migrations: npm run migrate
  • Verify RLS policies are enforced
  • Seed demo data if needed: supabase db seed

Clerk Authentication

  1. Create account at dashboard.clerk.com
  2. Create new application (choose "Application" type)
  3. Copy Publishable Key to NEXT_PUBLIC_CLERK_PUBLISHABLE_KEY
  4. Copy Secret Key to CLERK_SECRET_KEY
  5. Set up webhooks for user sync
  6. Configure redirect URLs:
    • http://localhost:3000/login (or your domain in production)
    • http://localhost:3000/register
    • http://localhost:3000/sso-callback

Stripe Configuration

  1. Create account at dashboard.stripe.com
  2. Create products and prices for each plan:
    • Starter (Monthly/Annual)
    • Farm (Monthly/Annual)
    • Enterprise
  3. Configure webhooks:
    • Add endpoint: https://yourdomain.com/api/stripe/webhook
    • Events: checkout.session.completed, customer.subscription., invoice.
  4. Copy webhook signing secret to STRIPE_WEBHOOK_SECRET

Feature Flags

  • Verify all feature flags in brand_features table
  • Test feature toggling in admin settings

Production Deployment

Vercel / Hosting Setup

  • Connect repository to hosting
  • Configure environment variables
  • Set NEXT_PUBLIC_USE_MOCK_DATA=false
  • Enable Edge Functions if needed

Domain & SSL

  • Configure custom domain
  • Enable HTTPS (automatic with Vercel)
  • Set NEXT_PUBLIC_SITE_URL to production URL

Email (Resend)

  • Create Resend account
  • Add domain for sending
  • Create API key
  • Test email delivery

PWA Setup

  • Generate app icons (see /public/icons/)
  • Test service worker registration
  • Test "Add to Home Screen" prompt
  • Test push notifications (if configured)

Post-Launch Verification

Authentication

  • Test sign up flow
  • Test sign in flow
  • Test password reset
  • Test sign out
  • Verify role-based access

Core Features

  • Test product CRUD operations
  • Test stop/route creation
  • Test order creation
  • Test checkout flow
  • Test email campaigns

Billing

  • Test subscription creation
  • Test plan upgrades
  • Test plan cancellations
  • Verify webhook handling
  • Test customer portal access

Monitoring

  • Verify Sentry is receiving errors
  • Verify PostHog is tracking events
  • Check error logs for any issues

Launch Day

Final Checks

  • Run TypeScript check: npx tsc --noEmit
  • Run lint: npm run lint
  • Test on mobile devices
  • Test on different browsers
  • Verify all API routes work

Documentation

  • Update support email addresses
  • Prepare onboarding documentation
  • Prepare FAQ for customers

Environment Variables Reference

# ===========================================
# CLERK AUTHENTICATION
# ===========================================
NEXT_PUBLIC_CLERK_PUBLISHABLE_KEY=pk_test_xxx
CLERK_SECRET_KEY=sk_test_xxx

# ===========================================
# STRIPE PAYMENTS
# ===========================================
STRIPE_SECRET_KEY=sk_live_xxx
NEXT_PUBLIC_STRIPE_PUBLISHABLE_KEY=pk_live_xxx
STRIPE_WEBHOOK_SECRET=whsec_xxx

# Price IDs
STRIPE_PRICE_STARTER_MONTHLY=price_xxx
STRIPE_PRICE_STARTER_ANNUAL=price_xxx
STRIPE_PRICE_FARM_MONTHLY=price_xxx
STRIPE_PRICE_FARM_ANNUAL=price_xxx
STRIPE_PRICE_ENTERPRISE_MONTHLY=price_xxx

# ===========================================
# SUPABASE
# ===========================================
NEXT_PUBLIC_SUPABASE_URL=https://xxx.supabase.co
NEXT_PUBLIC_SUPABASE_ANON_KEY=eyJxxx
SUPABASE_SERVICE_ROLE_KEY=eyJxxx

# ===========================================
# OPTIONAL: SENTRY
# ===========================================
SENTRY_DSN=https://xxx@sentry.io/xxx

# ===========================================
# OPTIONAL: POSTHOG
# ===========================================
NEXT_PUBLIC_POSTHOG_API_KEY=phc_xxx
NEXT_PUBLIC_POSTHOG_HOST=https://app.posthog.com

Troubleshooting

Auth Issues

  • Check Clerk dashboard for sign-in logs
  • Verify redirect URLs are configured
  • Check browser console for errors

Payment Issues

  • Check Stripe dashboard for failed payments
  • Verify webhook is receiving events
  • Check server logs for webhook errors

Database Issues

  • Check Supabase dashboard for connection issues
  • Verify RLS policies allow required operations
  • Check for migration errors

Resources