Skip to content
Convex logo

Convex

Reactive TypeScript backend where queries, mutations and durable workflows run inside the database. Agent and Workflow components handle long-running tool loops.

3.5/5 my assessment
Freemium
Software

Overview

A backend where the database and the application server are the same process. You write TypeScript functions, mark each one query, mutation or action, and a Rust backend runs them with ACID transactions and a deterministic runtime. Queries are reactive by default: every client subscribed to a query is pushed the new result the moment underlying data changes, with no polling layer and no manual invalidation. That property is why it keeps turning up under AI chat interfaces, where tokens, tool results and status updates arrive out of order and a stale cache is immediately visible to the user.

The agent-specific work lives in components. The Agent component stores threads and messages with vector and text search plus per-call usage tracking; Workflow and Durable Agents persist step state between calls so a long tool loop resumes after a crash, a deploy or an action timeout instead of starting over. Convex also runs Chef, its own AI app builder, on the same backend, which is at least a real stress test of the durability claim rather than a benchmark written for a launch post.

The backend, client libraries, dashboard and CLI are on GitHub at around 12.4k stars under FSL-1.1-Apache-2.0: do almost anything Apache 2.0 allows except build a competing hosted Convex, with each release converting to plain Apache 2.0 two years after publication. Self-hosting is documented for Docker, Fly.io and Neon-backed storage, well tested on Linux and macOS and less so on Windows. Hosted pricing runs a free Starter tier, Professional at $25 per developer per month with 25M function calls and 50 GB included, and Business from a $2,500 monthly minimum for SOC 2 Type II, HIPAA, RBAC and SSO.

Key Features

  • Queries, mutations and actions are TypeScript functions executed by the backend, with ACID transactions and a deterministic query runtime
  • End-to-end reactivity: any client subscribed to a query is pushed the new result when underlying data changes, with no polling and no cache invalidation
  • Agent component storing threads and messages with vector and text search plus per-call token usage tracking
  • Workflow and Durable Agents components that persist step state to the database, so a crashed or redeployed run resumes from the last completed step
  • Rust backend, client libraries, dashboard and CLI on GitHub at around 12.4k stars, self-hostable via Docker
  • Scheduled functions, cron jobs, file storage and full-text search inside the same runtime as the data

Where it holds

  • Durable execution is structural rather than bolted on, so a 40-minute tool loop survives a deploy or an action timeout without a separate orchestrator
  • The reactive query model removes a whole class of cache-invalidation bugs from agent UIs where messages and tool results arrive out of order
  • Self-hosting is a supported Docker path with real documentation, and each release becomes plain Apache 2.0 two years after it ships
  • The free tier is generous enough for a real prototype: 1M function calls and 0.5 GB before anything is billed

Where it breaks

  • TypeScript only for backend functions. Python teams get a client library, not a runtime, which rules it out for a lot of ML-adjacent work.
  • FSL is source-available, not OSI-approved. You may not build a competing hosted service, and only two-year-old releases carry the Apache 2.0 grant.
  • The data model is its own document store, not Postgres. Existing SQL, migration tooling and analytics stacks do not carry over.
  • Jumping from Professional to anything with SOC 2 Type II or HIPAA means the $2,500 monthly minimum, an ugly cliff for a mid-size team

My Take

Most agent frameworks bolt durability onto a stateless runtime and hope. Here the workflow state lives in the same database the functions run against, so a tool loop that dies mid-step resumes from that step rather than from the top, and the Agent component keeps thread history, vector search and token accounting in one place. Pleasant to build against. The bill comes as portability: backend functions are TypeScript only, the data model is not Postgres, and the licence is FSL until each release ages two years, so leaving means a rewrite rather than a pg_dump. Teams already standardised on Postgres will struggle to justify the migration when adding Temporal for durability gets most of the way there.

Francis Okafor
Francis Okafor AI & Tech Lead · Engineer

Quick Info

Pricing:
freemium
Openness:
Open source
Licence:
FSL-1.1-Apache-2.0 (each release converts to Apache 2.0 two years after publication)
Starting at:
Free and Starter is $0/month pay as you go with 1M function calls, 0.5 GB database storage, 1 GB file storage and 1 GB egress included, overage at $2.20 per million calls, $0.22/GB database storage and $0.132/GB egress. Professional is $25 per developer per month with 25M function calls, 50 GB database storage, 100 GB file storage and 50 GB egress, overage at $2 per million calls, $0.20/GB storage and $0.12/GB egress. Business and Enterprise start at a $2,500 monthly minimum and add SOC 2 Type II, HIPAA, RBAC and SSO, with bring-your-own-cloud listed as coming. Startups can apply for up to a year of Professional free plus 30% off usage fees. Self-hosting the Rust backend under FSL costs nothing beyond your own hosting.
Added:
Aug 2026
Updated:
Aug 2026

Use Cases

agent development software development chatbot development automation

Judge it on your own work

The notes above say where Convex holds and where it breaks. The fastest check is your own workload.

Visit website ↗

Alternatives to Convex