Libraries
Config
lib/config — env, validate-env, constants, auth-layouts, site-url.
Overview
lib/config/ holds app configuration and validation.
Environment Variables
lib/config/env.ts:
- Uses Zod to validate env vars at startup
- Validates Supabase keys (publishable vs secret)
- Required:
NEXT_PUBLIC_SUPABASE_URL,NEXT_PUBLIC_SUPABASE_PUBLISHABLE_KEY,SUPABASE_SECRET_KEY,STRIPE_*,RESEND_TOKEN, etc. - Optional:
INDEXNOW_KEY,GOOGLE_VERIFICATION_CODE, etc.
lib/config/validate-env.ts — Call at app startup to fail fast if env is invalid.
Constants
lib/config/constants.ts:
- Plan limits (e.g.
PLAN_TEAM_MEMBER_LIMITS) - Pricing display
MAX_TEAM_MEMBERS,INVITATION_EXPIRY_DAYS- Feature flags or app-wide constants
Auth Layouts
lib/config/auth-layouts.ts:
AUTH_LAYOUT_VARIANT—centered|split|minimal- Maps variant to layout components
- See Auth Layouts
Site URL
lib/config/site-url.ts:
getPublicSiteUrl()— Full URL objectgetPublicSiteOrigin()— Origin stringwithPublicSiteOrigin(path)— Absolute URL for a path- Uses
NEXT_PUBLIC_APP_URLor Vercel URL
Security
Never expose secret keys to the client. Use NEXT_PUBLIC_* only for publishable keys. Validate env in server code before use.