Environment Variables
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.
Server variables
AUTH_SECRETDATABASE_URLNODE_ENVRESEND_API_KEYGOOGLE_CLIENT_IDGOOGLE_CLIENT_SECRETSTRIPE_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 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.