We launched Convex Components to make adding features to your app easier! 🎉

Learn more

Everything,
always in sync

Convex is a stateful sync platform. Everything syncs in real-time. The server pushes query results to the client, and the client queues all mutations to execute on the server. Occasional network blips are handled gracefully.

Get started

Realtime, all the time

Convex keeps all client apps synchronized in real-time. Convex query functions track all their dependencies, including arguments and the precise data in the database. Queries re-run automatically when any dependency changes. The results are pushed to the clients to keep them up-to-date.

Automatic perfect caching

In the same way query results are automatically synced to the client, they are also automatically synced to the backend cache. There is no manual cache management. Convex’s sync engine ensures perfect caching, maximizing both performance and freshness.

Consistency on the
server and client

Convex uses ACID-compliant transactions to interact with the database. Your server always has a consistent view of all the data, and every client query is automatically updated to the same consistent view of the database. Every surface of your product will look correct.

Think about an e-commerce site with products in a shopping cart. If an item is in the cart, it isn’t available on the shelf. There will never be a screen of the app where the item is in two places or mysteriously not there at all.

FAQ

Have a question? Reach out to us on Discord, we’d love to talk.

Discord iconJoin our community
Does Convex use WebSockets?

Yes. Convex uses WebSockets to push updated query results to the client and send mutations to the server. You don’t have to think about it if you are using the provided client libraries.

Does Convex do local offline sync?

Convex will automatically handle intermittent network blips. Convex doesn’t currently provide a full offline sync mechanism, but some customers have used tools like Replicache. The team is actively exploring this space.

How is sync different from making a fetch request?

When you make an http call with fetch from your app, you only get one result at the time you make the request. With sync, you replace the fetch with a live subscription that is updated whenever the query result changes. You get a consistent view of the data and your writes are serialized.

Resources

More about Convex

Get your app up and running in minutes
Get started
Convex logo
A Trusted Solution
  • SOC 2 Type 1 Compliant
  • HIPAA Compliant
  • GDPR Verified
©2024 Convex, Inc.