Quick matrix
Toggle-by-toggle detail
NEXT_PUBLIC_ENABLE_AUTH
NEXT_PUBLIC_ENABLE_AUTH
The biggest effects:
/auth/confirmredirects into an error flow if auth is not considered available,POST /api/profile/avataralso checks auth availability,- dashboard areas and other session-based routes should be treated as off at the product level.
- do not send users into login or dashboard if auth is off,
- if your product is only a waitlist or marketing site, auth off is a valid setup.
NEXT_PUBLIC_ENABLE_WAITLIST
NEXT_PUBLIC_ENABLE_WAITLIST
The biggest effects:
/waitlistshows a disabled or not-configured notice,POST /api/waitlistreturns503when the feature is off,- the health check treats waitlist as intentionally off or not ready.
- the product is already fully launched,
- you do not want lead collection outside signup.
NEXT_PUBLIC_ENABLE_CONTACT
NEXT_PUBLIC_ENABLE_CONTACT
The biggest effects:
/contactstill exists, but the form shows a notice if the feature is not ready,POST /api/contactreturns503when the feature is off,- contact-form rate limiting becomes irrelevant if the feature is disabled.
- support is handled through direct email, Discord, WhatsApp, or an external helpdesk.
NEXT_PUBLIC_ENABLE_PAYMENTS
NEXT_PUBLIC_ENABLE_PAYMENTS
The biggest effects:
/dashboard/billingshows a disabled or fallback state,- payment buttons are no longer usable,
POST /api/paymentsandPOST /api/subscriptionare treated as inactive,- the health check marks billing and payments as intentionally off.
- the product is not sold publicly yet,
- access is granted manually,
- you are still in waitlist or pilot mode.
NEXT_PUBLIC_ENABLE_ADMIN
NEXT_PUBLIC_ENABLE_ADMIN
The biggest effects:
/adminshows a feature notice,POST /api/admin/users/roleis no longer available for daily operations,- the team loses the built-in view for payments, webhooks, and audit logs.
- you do not need an internal panel yet,
- operations are still handled manually through provider dashboards and database tools.
NEXT_PUBLIC_ENABLE_AI
NEXT_PUBLIC_ENABLE_AI
The most important nuance:
- this toggle is part of product readiness planning and should also control the AI surface you expose to users,
- the AI routes themselves still also depend on user auth, provider keys, usage limits, and rate limits,
- if you build your own AI UI, you still need to hide it when this toggle is off.
- use this toggle as a product decision,
- use provider env and auth checks as runtime enforcement.
Gates that are not toggles, but matter just as much
The safest way to change a toggle
- Change the toggle in
.env.localor the production env. - Run
npm run env:check. - Check
GET /api/health. - Open the page most affected by the change.
- Make sure navigation and CTA also change with it.