Deployment Operations
- Core commands:
npx convex dev,npx convex deploy,npx convex codegen,npx convex run(use--prodfor prod). - Agent Mode: You SHOULD use
CONVEX_AGENT_MODE=anonymous npx convex dev --oncewhen iterating as an AI agent to safely generate codegen artifacts. - Deploy target resolution:
CONVEX_DEPLOY_KEYoverrides, else uses production ofCONVEX_DEPLOYMENTproject. - Build step:
npx convex deploy --cmd "npm run build"and--cmd-url-env-var-nameif needed. - Deploy keys: production, preview, dev, admin (You MUST NOT commit/log).
- Hosting flows:
- Vercel/Netlify build command SHOULD use
npx convex deploy --cmd 'npm run build'. - You MUST set
CONVEX_DEPLOY_KEYper environment (Preview vs Production). - Preview seeding via
--preview-run 'functionName'. - Custom hosting: deploy backend, host frontend elsewhere; custom domains require overriding
CONVEX_CLOUD_URLand redeploying; optionalCONVEX_SITE_URL.
- Vercel/Netlify build command SHOULD use
Required Outputs
- You MUST use exact CLI commands and flags from docs.
- You MUST state target deployment resolution (deploy key vs CONVEX_DEPLOYMENT).
- You MUST call out deploy-side effects: schema validation, index backfill, codegen, bundling.
- You SHOULD always mention
.convex.sitevs.convex.cloudURL usage where relevant.
Deployment Model
- Each project has one production deployment and one cloud dev deployment per team member.
- Preview deployments are per-branch and are auto-cleaned after a time window.
- Local deployments are dev-only and run as subprocesses of
npx convex dev.
CLI Workflow
Dev
npx convex dev:- Watches files, pushes changes to dev deployment.
- Regenerates
convex/_generated/*. - You SHOULD use
--tail-logsto control log output.
- Local dev:
npx convex dev --local --oncefor local backend.- Note: No public URL; HTTP requests need a proxy (e.g., ngrok).
- Node actions require Node 18 locally.
Deploy
npx convex deploy:- Typechecks functions.
- Regenerates codegen.
- Bundles and pushes functions, schema, and indexes.
- Deploy target resolution:
- If
CONVEX_DEPLOY_KEYis set, deploys to that key's target. - Else uses the production deployment of
CONVEX_DEPLOYMENT's project.
- If
- Optional build command:
npx convex deploy --cmd "npm run build"- Use
--cmd-url-env-var-nameto customize env var name.
Deploy Keys
- Production deploy key: targets project production deployment (typical CI).
- Preview deploy key: creates preview deployment per branch.
- Dev deploy key: scoped to a single dev deployment.
- Admin key: full control; used for anonymous local deployments.
- Security: You MUST NOT paste deploy keys into code or commit history.
Preview Deployments
- Beta feature, lifecycle auto-cleans (5 days default).
- Preview deployment name is tied to branch; redeploy replaces previous preview.
- Data seeding requires running a function during deploy (
--preview-run).
Environment Variables
- You MUST set per-deployment via dashboard or
npx convex env. - Same key MAY require values in both dev and prod.
- System vars:
CONVEX_CLOUD_URLfor client RPCs.CONVEX_SITE_URLfor HTTP actions.
- You MUST NOT branch exports on
process.envat runtime; functions set at deploy time.
Safe Rollout Rules
- Schema MUST match existing data; deploy blocks on validation failures.
- Safe schema changes:
- Add tables.
- Add optional fields, backfill, then make required.
- Widen via
v.union, backfill, then narrow.
- Functions MUST remain backward compatible while old clients are running.
- Scheduled functions MUST accept previously scheduled args.
Index Backfill
- New indexes backfill during deploy; CAN slow production push.
- You SHOULD use staged indexes (including search/vector) for large tables.
- Removing indexes deletes them on deploy; You MUST ensure no code paths depend on them.
URLs
- HTTP actions:
https://<deployment>.convex.site. - Client URLs:
https://<deployment>.convex.cloud(viaCONVEX_CLOUD_URL). - You SHOULD warn about mixing
.convex.siteand.convex.cloud.
Response Checklist
- [ ] State environment (dev/prod/preview/local).
- [ ] Provide exact commands and required env vars.
- [ ] List safety considerations (schema, functions, scheduled).
- [ ] Mention logs location (CLI or dashboard) when troubleshooting.