Convex is a free, open source frameworks & platforms project written in TypeScript and released under a custom open-source licence. It has 12,567 GitHub stars, 814 forks and 220 open issues, and was last pushed 4 hours ago. On this registry it ranks #11 of 28 tracked projects in Frameworks & Platforms, with 5 head-to-head comparisons available. It gained 33 stars over the last 6 tracked days.

What is Convex?

What it is

Convex is an open-source reactive database for web application developers, with a Rust backend and TypeScript packages, in the backend, database, and TypeScript ecosystem. It combines a database, server functions, and client libraries so developers can fetch data and perform business logic in pure TypeScript while keeping strong consistency and live-updating behavior.

The project addresses the problem of building dynamic full-stack applications without separating data access, server logic, and real-time client synchronization into disconnected pieces. Instead of requiring developers to assemble a backend, database, query layer, and update mechanism by hand, Convex provides a reactive model in which application code can run server functions and clients can observe data changes as they happen.

Key capabilities

  • Convex provides a reactive database, server functions, and client libraries for building TypeScript applications with live-updating data.
  • Developers can fetch data and run business logic in pure TypeScript while maintaining strong consistency.
  • The backend includes Rust code and a TypeScript package layer, with udf-runtime setting up the JavaScript environment for queries and mutations.
  • The self-hosted product includes most features of the cloud product, including the dashboard and CLI.
  • Self-hosted Convex can work with external tools and databases such as Neon, Fly.io, Vercel, Netlify, RDS, Sqlite, and Postgres.
  • Users can deploy the self-hosted backend with Docker, recommended, or with a prebuilt binary.

Who uses it and how

  • Web application developers use Convex as a backend for full-stack TypeScript projects that need queries, mutations, and live synchronization.
  • Teams can build on the hosted cloud platform and use its free tier for small applications and side projects.
  • Self-hosters can run Convex with Docker or a prebuilt binary and connect it to supported external services such as Neon, RDS, Sqlite, or Postgres.
  • Contributors can report issues through GitHub Issues and discuss self-hosting in the #self-hosted Discord channel.

Getting started

The README directs users to the documentation and getting started guides, and it recommends the cloud platform as the easiest way to build with Convex. For self-hosting, users can follow the self-hosting guide and run the backend with Docker or a prebuilt binary.

When to use it — and when not to

Convex is a good fit when a TypeScript application needs a reactive database, server functions, and client libraries in one system, especially if the team prefers the hosted cloud platform or is prepared to operate a self-hosted backend. Self-hosting requires selecting and running supported external infrastructure, such as a database or hosting service, and anyone building from source must change the default instance secret and admin key. The facts also show limits: the randomized tests are not provided in the open-source offering, Windows has less experience than Linux and Mac, and self-hosted builds include an anonymous beacon unless --disable-beacon is set.

project readme (upstream, from github) — read inline

Convex logo

Convex is the open-source reactive database designed to make life easy for web app developers, whether human or LLM. Fetch data and perform business logic with strong consistency by writing pure TypeScript.

Convex provides a database, a place to write your server functions, and client libraries. It makes it easy to build and scale dynamic live-updating apps. Read the docs to learn more.

Development of the Convex backend is led by the Convex team. We welcome small bug fixes and love receiving feedback. We keep this repository synced with any internal development work within a handful of days. Convex is a well tested piece of software, with several well designed test frameworks including randomized testing. Those tests are not provided as part of the open source offering.

Getting Started

Visit our documentation to learn more about Convex and follow our getting started guides.

The easiest way to build with Convex is through our cloud platform, which includes a generous free tier and lets you focus on building your application without worrying about infrastructure. Many small applications and side-projects can operate entirely on the free tier with zero cost and zero maintenance.

Self Hosting

The self-hosted product includes most features of the cloud product, including the dashboard and CLI. Self-hosted Convex works well with a variety of tools including Neon, Fly.io, Vercel, Netlify, RDS, Sqlite, Postgres, and more.

You can either use Docker (recommended) or a prebuilt binary to self host Convex. Check out our self-hosting guide for detailed instructions. Community support for self-hosting is available in the #self-hosted channel on Discord.

Community & Support

  • Join our Discord community for help and discussions.
  • Report issues when building and using the open source Convex backend through GitHub Issues
  • By submitting pull requests, you confirm that Convex can use, modify, copy, and redistribute the contribution, under the terms of its choice.

Building from source

See BUILD.md.

Disclaimers

  • If you choose to self-host, we recommend following the self-hosting guide. If you are instead building from source, make sure to change your instance secret and admin key from the defaults in the repo.
  • Convex is battle tested most thoroughly on Linux and Mac. On Windows, it has less experience. If you run into issues, please message us on Discord in the #self-hosted channel.
  • Convex self-hosted builds contain a beacon to help Convex improve the product. The information is minimal and anonymous and helpful to Convex, but if you really want to disable it, you can set the --disable-beacon flag on the backend binary. The beacon's messages print in the log and only include
    • A random identifier for your deployment (not used elsewhere)
    • Migration version of your database
    • Git rev of the backend
    • Uptime of the backend

Repository layout

  • crates/ contains Rust code

    • Main binary
      • local_backend/ is an application server on top of the Runtime. This is the serving edge for the Convex cloud.
  • npm-packages/ contains both our public and internal TypeScript packages.

    • Internal packages
      • udf-runtime/ sets up the user-defined functions JS environment for queries and mutations
      • system-udfs/ contains functions used by the Convex system e.g. the CLI

Frequently asked questions

Is Convex free to use?

Convex is open source. There is no licence fee and no seat count — you can self-host it or, where the project offers one, pay a vendor for a managed version instead.

What does Convex do?

Build full-stack apps with TypeScript and real-time sync

What is Convex written in?

Convex is primarily written in TypeScript. Its source is publicly available at https://github.com/get-convex/convex-backend, and it has 12,567 GitHub stars.