Skip to main content

Environment Variables

Complete reference for all environment variables.

Required Variables

Frontend (Vite)

# Convex deployment URL
VITE_CONVEX_URL=https://your-deployment.convex.cloud

Backend (Convex)

# WorkOS authentication
WORKOS_API_KEY=sk_...
WORKOS_CLIENT_ID=client_...

Hosting Platform

# WorkOS cookie encryption
WORKOS_COOKIE_PASSWORD=a-secure-32-character-or-longer-password

Optional Variables

OPENAI_API_KEY=sk-...

Variable Reference

VariableRequiredWhereDescription
VITE_CONVEX_URLYesFrontendConvex deployment URL
WORKOS_API_KEYYesConvexWorkOS API key
WORKOS_CLIENT_IDYesConvex + FrontendWorkOS client ID
WORKOS_COOKIE_PASSWORDYesFrontendCookie encryption key
OPENAI_API_KEYNoConvexOpenAI API key for embeddings

Setting Variables

Convex

# Via CLI
npx convex env set VARIABLE_NAME value

# View current values
npx convex env list

Netlify

  1. Go to Site settings > Environment variables
  2. Click Add a variable
  3. Enter key and value

Vercel

  1. Go to Settings > Environment Variables
  2. Add variables for Production/Preview/Development

Local Development

Create a .env.local file in the project root:
# .env.local
VITE_CONVEX_URL=https://your-deployment.convex.cloud
WORKOS_API_KEY=sk_...
WORKOS_CLIENT_ID=client_...
WORKOS_COOKIE_PASSWORD=dev-password-at-least-32-characters
Add .env.local to .gitignore to prevent committing secrets.

Generating Secrets

For WORKOS_COOKIE_PASSWORD:
# macOS/Linux
openssl rand -base64 32

# Or use any password generator for a 32+ character string

Troubleshooting

”VITE_CONVEX_URL is undefined”

  • Ensure the variable starts with VITE_ for Vite to expose it
  • Restart the dev server after adding variables

”WorkOS authentication failed”

  • Verify WORKOS_API_KEY and WORKOS_CLIENT_ID match your WorkOS dashboard
  • Check that redirect URIs are configured

”Cookie not set”

  • WORKOS_COOKIE_PASSWORD must be at least 32 characters