Convex

JS-first reactive database, functions are the API, real-time queries by default.

VISIT CONVEX

Key takeaway: Reactivity by default is the reason to pick Convex: a query subscribes, and the component re-renders when the underlying data changes, with no cache invalidation layer to maintain. That is worth a great deal for collaborative and dashboard products. It is worth much less if your data is SQL-shaped, where Supabase gives you similar speed with a portable exit.

Quick facts

  • CategoryRealtime / function-as-DB
  • EngineJS-native
  • PricingFreemium
  • LicenseApache-2.0 (client) + Proprietary (server)
  • Created2021
  • GitHub stars1.4k
  • PostgresNo
  • Edge-readyNo

Bundled features: Realtime queries Functions-as-API File storage Auth

What it is

Convex is a JS-first reactive database where backend functions are the API surface. Queries are real-time by default, your React component re-renders when underlying data changes. Strong on type-safety, transactional consistency, and the full-stack TypeScript story.

Best for

  • Real-time first apps (dashboards, multiplayer, collaborative)
  • TypeScript-fluent teams that want backend functions as the only API
  • Apps where the database-to-UI reactivity is the differentiator

When not to pick it

Skip Convex for SQL-shaped workloads where Postgres is the natural fit. Skip if your team values portable data more than reactive convenience, Convex is its own data model.

My take

Convex is genuinely interesting and well-built. The reactivity is real and the TypeScript story is excellent. The trade-off is portability, once you adopt Convex, the data model is non-trivial to migrate.

Functions are the API, and the transaction boundary

In most stacks you write a database schema, then an API layer, then client-side data fetching, then a cache with its own invalidation rules, and the bugs live in the seams between them. Convex collapses that. Backend functions are the API surface, queries are deterministic and automatically subscribed, and mutations are transactional. When a mutation changes data a query depends on, every subscribed client updates. There is no revalidation strategy to design because there is nothing to invalidate. Types flow end to end without a code-generation step, so renaming a field surfaces as a compile error in the component that used it. File storage and auth come from the same platform, so a real-time dashboard or a multiplayer editing surface loses weeks of the plumbing which usually makes those products expensive to build. It is a coherent design rather than a pile of features.

Portability is the price, and it is not a small one

The client is Apache-2.0 and the server side is proprietary, and more importantly the data model is Convex's own rather than SQL. That has consequences beyond licensing. Your analytics people cannot point a BI tool at it the way they would at Postgres. Your queries are functions, not statements, so there is no equivalent of handing someone a dump and a schema and having them productive an hour later. And leaving is not a migration, it is a rewrite of every data-access path in the application. That is a fair trade when reactivity is the differentiator of your product and you would otherwise build it by hand. It is a bad trade if you picked Convex for developer experience on a fundamentally relational application, because you paid permanent portability cost for convenience Postgres tooling would also have given you.

Frequently asked questions

Is Convex open source?

Partly. The client is Apache-2.0 while the server is proprietary, so this is not a database you can pick up and run anywhere the way you can with Postgres. The practical consequence is less about the licence text and more about the exit: your data model and query code are Convex-specific and do not transfer to anything else.

Convex or Supabase?

Convex when live-updating data is the product, your team is TypeScript-fluent, and you want backend functions as the only API. Supabase when your data is relational, you want SQL and portability, or you need auth and storage from a platform with a larger ecosystem. The deciding question is whether reactivity is a core feature or merely nice to have.

Is Convex production-ready?

Yes, it is well-built, has transactional guarantees and a strong type story, and teams ship real applications on it. The risk to weigh is not stability but concentration: proprietary server, proprietary data model, and a migration path that means rewriting your queries. Go in knowing this decision is harder to reverse than most on this list.

Links

Compare Convex side-by-side

Similar tools you should also consider

If Convex is your pick, the next conversation is short

The 30-min call is where your database choice becomes a real architecture, a migration plan if you are switching, and a price range you can take to your stakeholders. Describe your stack, your scale, your data shape. I tell you whether Convex is genuinely your fit.