# Database DATABASE_URL="postgresql://user:password@host/dbname?sslmode=require" DIRECT_URL="postgresql://user:password@host/dbname?sslmode=require" # Auth/session # Generate with: openssl rand -base64 32 SESSION_SECRET="replace-with-at-least-32-characters" # Optional; Vercel and Node set this automatically in deployed environments. NODE_ENV="development" # M11 (ST-1107) — shared secret between Vercel cron-trigger and the # /api/cron/expire-questions handler. Required in production; optional in # local dev (the route returns 401 if the Authorization header doesn't match). # Generate with: openssl rand -base64 32 CRON_SECRET="" # v1-readiness item 2 — Sentry error monitoring. # Optional. Without DSN, the SDK is a no-op (no network, no overhead). # Get a DSN at https://sentry.io → Project → Settings → Client Keys (DSN). NEXT_PUBLIC_SENTRY_DSN="" # Required ONLY if you want source-map upload during build (production deploy). # In Vercel: project settings → Environment Variables → add as encrypted. SENTRY_ORG="" SENTRY_PROJECT="" SENTRY_AUTH_TOKEN=""