Skip to main content
Convex owns durable app state, domain mutations, scheduled work, and some webhook processing. The web app depends on Convex for conversations, files, memory, projects, billing state, and related data. When a change touches convex/, push both deployments before considering the web app verified:
Do not pass .env.local to production Convex deploys. Use the dedicated scripts so production and development deployments receive the right environment.

Development backend

For local web work against the development Convex backend:
This runs the development push first, then starts Next.js.

Production backend

Use the production script when intentionally deploying production Convex changes:
Use the development script for dev-only backend updates:

Import boundary

Convex code may import browser-safe shared modules from src/shared. Convex must not import src/server, because server-only modules can break Convex bundling.