Creator

Deployment

How to deploy Creator to Vercel with all required environment variables.

Deploying to Vercel

  1. Push your code to a GitHub repository
  2. Go to vercel.com and import the repository
  3. Add all required environment variables (see below)
  4. Deploy

The build command is npm run build and the framework is automatically detected as Next.js.

Required environment variables

Core (always required)

NEXT_PUBLIC_APP_URL="https://yourdomain.com"
DATABASE_URL="postgresql://..."  # Use transaction pooler URL
AUTH_SECRET="your-random-secret"
AUTH_URL="https://yourdomain.com"

Email (pick one)

Resend:

NEXT_PUBLIC_EMAIL_SERVICE="resend"
NEXT_RESEND_API_KEY="re_..."
NEXT_RESEND_FROM_EMAIL="noreply@yourdomain.com"

Mailgun:

NEXT_PUBLIC_EMAIL_SERVICE="mailgun"
NEXT_MAILGUN_API_KEY=""
NEXT_MAILGUN_DOMAIN="mg.yourdomain.com"
NEXT_MAILGUN_FROM_EMAIL="noreply@yourdomain.com"

Payment (pick one)

Stripe:

NEXT_PUBLIC_PAYMENT_GATEWAY="stripe"
NEXT_PUBLIC_STRIPE_PUBLISHABLE_KEY="pk_live_..."
NEXT_STRIPE_SECRET_KEY="sk_live_..."
NEXT_STRIPE_WEBHOOK_SECRET="whsec_..."

Lemon Squeezy:

NEXT_PUBLIC_PAYMENT_GATEWAY="lemonsqueezy"
LEMONSQUEEZY_API_KEY=""
LEMONSQUEEZY_STORE_ID=""
LEMONSQUEEZY_WEBHOOK_SECRET=""

Storage (pick one, optional)

Cloudflare R2:

NEXT_PUBLIC_STORAGE_SERVICE="r2"
R2_ACCESS_KEY_ID=""
R2_SECRET_ACCESS_KEY=""
R2_ENDPOINT=""
R2_BUCKET=""
R2_PUBLIC_URL=""

Supabase Storage:

NEXT_PUBLIC_STORAGE_SERVICE="supabase"
NEXT_PUBLIC_SUPABASE_URL=""
SUPABASE_SERVICE_ROLE_KEY=""
SUPABASE_STORAGE_BUCKET=""

OAuth (optional)

NEXT_PUBLIC_AUTH_GOOGLE="true"
AUTH_GOOGLE_ID=""
AUTH_GOOGLE_SECRET=""

NEXT_PUBLIC_AUTH_GITHUB="true"
AUTH_GITHUB_ID=""
AUTH_GITHUB_SECRET=""

Monitoring (optional)

NEXT_PUBLIC_SENTRY_DSN=""
SENTRY_DSN=""
SENTRY_AUTH_TOKEN=""
SENTRY_ORG=""
SENTRY_PROJECT=""

Rate limiting (optional)

UPSTASH_REDIS_REST_URL=""
UPSTASH_REDIS_REST_TOKEN=""

Post-deployment checklist

  1. Push schema — Run npm run db:generate then npm run db:push against your production database
  2. Seed admin user — Run npm run db:seed against the production database
  3. Set up webhooks — Configure Stripe or Lemon Squeezy webhook URLs to point to your production domain
  4. Update OAuth redirect URIs — Add your production domain to Google and GitHub OAuth app settings
  5. Verify email sending — Switch from test/sandbox email credentials to production ones
  6. Update NEXT_RESEND_FROM_EMAIL — Change from onboarding@resend.dev to your verified domain email
  7. Test the full flow — Register, log in, make a test payment, verify emails are sent

Database hosting

Creator works with any PostgreSQL provider. Popular options:

  • Neon — Serverless PostgreSQL with generous free tier
  • Supabase — Managed PostgreSQL with additional features
  • Railway — Simple managed PostgreSQL
  • Vercel Postgres — Integrated with Vercel deployments

Use the transaction pooler connection string for DATABASE_URL. The database client is already configured with prepare: false for compatibility.

On this page

We use cookies to ensure you get the best experience on our website. For more information on how we use cookies, please see our cookie policy.