Firebase for the TypeScript era

Live updates, a full backend, and an easy-to-use data store with all the modern best practices.

Feature comparison

ConvexFirebase
Realtime apps
Datastore/Database
Cloud functions
File storage
React support
Relational DB
Live dev environment
Transactions by default
Schema enforcement

No complicated security rules

All data in Convex is accessed through backend functions, ensuring you just use normal code to only expose the data you need. Convex does this without compromising on providing live updates to your app. This sidesteps the need to learn complicated security rules to ship a secure app with Convex.

First-class React support

Convex was designed to be used by modern reactive UI frameworks like React. Convex provides an easy-to-use React library to get you up and running fast.

Transactions by default

All data in Convex is always written and read in transactions. Your data will always behave as you expect. No complicated rules around reading all your data before writing. All Convex transactions work on top of a consistent snapshot.

Relational data model

Convex encourages you to organize your documents in tables. So if you have your users and todos in different tables, you can set clear relationships between them. Convex is still flexible enough to store your documents in semi-structured JSON files.

Loose or strict schema enforcement

Sometimes you just want to chuck records into a table and figure it out later. Sometimes you annotate types when it’s useful, but write it like plain ol’ JavaScript when you’re moving fast. However, the day may come when you want to solidify your designs. Convex embraces this concept of gradual rigor. For example, you can operate schema-free as you’re iterating, and Convex will keep track of all your record’s types for you. But Convex also let’s you lock in a schema and type enforcement when you’re ready. Convex will even generate your schema for you!

Start now

Get your project up and running in minutesGet started