Convex is an open-source reactive database with a TypeScript backend. You write queries, mutations, and scheduled functions in TypeScript, the platform runs them server-side against its own database with strong consistency, and client libraries receive results that update live as the underlying data changes.
A database, a place for server functions, and client libraries arrive as one product, so application state and business logic stay in the same TypeScript codebase. Installable component packages extend it toward agent workloads: a workpool that fans model calls and background jobs across a managed pool with retries, backoff, and parallelism, durable workflows whose multi-step processes checkpoint, retry, and resume, and an agent package with threads, context, and vector search.
Convex runs as a hosted cloud service or self-hosted with Docker or a prebuilt binary. The self-hosted build carries most of the cloud features, including the dashboard and the command-line interface, and works alongside Neon, Fly.io, Vercel, Netlify, RDS, SQLite, and Postgres. The backend is written in Rust, with TypeScript packages for the function runtime and the client and system libraries.
Features
- Reactive queries: client libraries subscribe to query results and see the latest data without polling
- TypeScript functions: queries, mutations, and scheduled functions run in a server-side JavaScript environment next to the data
- ACID transactions: concurrent writes are applied transactionally
- Agent components: separate packages add a managed workpool, durable workflows, and agent threads with vector search
- Caching and scaling: query caching and scaling are handled by the platform rather than configured per deployment
- Self-hosting: Docker images or a prebuilt binary run the same backend outside the cloud, dashboard and CLI included
- Deployment beacon: self-hosted builds report an anonymous deployment identifier, database migration version, git revision, and uptime, switched off with --disable-beacon

