Environment Variables

ReferenceValidated variablesRuntime contract

This page mirrors the validated schema in src/env.js.

Use it as the quick reference for which variables the template expects after local setup and before deployment.

Reference vs setup guide

For the user-facing setup workflow, see Environment. This page exists as the maintenance reference that should stay aligned with src/env.js.

Server variables

Infrastructure and integration settings used by auth, database access, Stripe, and email delivery.

Client variables

Public values exposed to the browser that must use the `NEXT_PUBLIC_` prefix.

Maintenance rule

Environment references, examples, and docs should evolve together whenever the schema changes.

Validated variables

Server variables

  • AUTH_SECRET
  • DATABASE_URL
  • NODE_ENV
  • RESEND_API_KEY
  • GOOGLE_CLIENT_ID
  • GOOGLE_CLIENT_SECRET
  • STRIPE_SECRET_KEY (optional)
  • STRIPE_PUBLISHABLE_KEY (optional)
  • STRIPE_WEBHOOK_SECRET (optional)
  • STRIPE_PRICE_BASIC_ID (optional)
  • STRIPE_PRICE_PRO_ID (optional)
  • STRIPE_PRICE_ENTERPRISE_ID (optional)
  • STRIPE_PRICE_ONE_TIME_ID (optional)

Stripe is optional

All Stripe-related environment variables are optional. The template works without Stripe configured — billing features are simply disabled until the variables are set.

Client variables

  • NEXT_PUBLIC_APP_URL
Maintenance

Maintenance rule

Whenever you add, remove, or rename an environment variable:

  • update src/env.js
  • update .env.example
  • update this page
  • verify any guides that reference the changed integration

Keep the contract in sync

If src/env.js, .env.example, and the docs drift apart, teams can end up with builds that fail late or environments that look valid but behave incorrectly.