We launched Convex Components to make adding features to your app easier! 🎉
Learn moreLive updates, a full backend, and an easy-to-use data store with all the modern best practices.
Convex | Firebase | |
---|---|---|
Realtime apps | ||
Datastore/Database | ||
Cloud functions | ||
File storage | ||
React support | ||
Relational DB | ||
Live dev environment | ||
Transactions by default | ||
Schema enforcement |
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.
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.
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.
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.
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!