Supercharge Your Full-stack App with a Reactive Database

This ad is not shown to multipass and full ticket holders
JSNation US
JSNation US 2026
November 16 - 19, 2026
New York, US & Online
Upcoming event
JSNation US 2026
JSNation US 2026
November 16 - 19, 2026. New York, US & Online
Bookmark
Rate this content
Sentry
Promoted
Code breaks, fix it faster

Crashes, slowdowns, regressions in prod. Seer by Sentry unifies traces, replays, errors, profiles to find root causes fast.

Get started

If you suffer from: Writing SQL to express your product logic, trying to remember esoteric authorization DSLs, fighting your frontend cache, fighting your backend cache, slow backend deployments, inconsistent or stale UI state, lack of end-to-end type safety, lack of transactional guarantees, low database write throughput, database cold starts or unpredictable database read performance - then tune in to this talk and let me show you the light at the end of the tunnel.

This talk has been presented at React Summit US 2024, check out the latest edition of this React Conference.

FAQ

Convex is a sync engine that includes a database, file storage, vector embeddings, full text search, and more. It is written in Rust and can be hosted on the Convex platform or self-hosted as it is open source.

Convex simplifies the development process by allowing developers to write code that gets automatically compiled and deployed. It manages caching and state synchronization via WebSockets, reducing the need for manual infrastructure management and decision-making.

Convex is built from the ground up with 200,000 lines of Rust and operates using V8 isolates for running code alongside data. It integrates seamlessly with React, TypeScript, and other languages through its clients.

Convex uses WebSockets to sync data in real-time. When underlying data changes, all clients subscribed to the data receive instant updates, ensuring seamless real-time data synchronization.

Convex provides three main functions to interact with: Actions (arbitrary code execution), Queries (data retrieval), and Mutations (data writing). These functions allow developers to efficiently manage and interact with their data.

Convex manages scalability through dynamic resource allocation and load balancing across multiple instances, allowing it to handle thousands of concurrent WebSocket connections efficiently.

Convex for Startups offers perks like free access to Convex, founder Q&As, and code walkthroughs. It is designed to support innovative and novel startup projects using Convex.

Yes, developers can enforce schema validation in Convex to ensure data integrity. Convex supports complex queries, indexes, and relationships between tables, providing flexibility and performance.

Yes, Convex is designed to be effortlessly scalable, handling large-scale applications and complex distributed systems challenges, though it's currently more suited for scaling up existing projects rather than onboarding large enterprises immediately.

Convex's database is custom-built in Rust, not reliant on traditional systems like Postgres or MySQL. It is designed specifically to handle distributed systems efficiently, leveraging the expertise of its founders who previously built Dropbox Sync.

Tom Redman
Tom Redman
28 min
19 Nov, 2024

Comments

Sign in or register to post your comment.
Video Summary and Transcription
My name is Tom, the head of developer experience at Convex. Convex is a sync engine written in Rust that includes database, file storage, and full text search. It can be self-hosted and allows you to write Convex code alongside your other code. It runs in a V8 isolate on the same machine as your data, making it fast. Convex uses web sockets for interaction and offers optimizations like optimistic updates. It is widely used and can handle real-time data. Convex aims to remove development burdens and focuses on scalability. It offers smooth concurrency and reduces friction in development. Convex for Startups is a program that offers perks like free access and aims to attract interesting applications.

1. Introduction to Convex

Short description:

My name is Tom. I am the head of developer experience at Convex. I came across Convex about nine months ago and it changed my life. I no longer have to make so many decisions every single time I want to fire something up. I wanted to get more developers to know that this thing exists.

My name is Tom. I am the head of developer experience at Convex. This is kind of a fast talk. There's not a lot of time, and so I'm going to try to get through at least something that I found super interesting. I personally came across Convex about nine months ago. And it kind of changed my life in a lot of different ways.

One, I work there now. But two, I spent many years just building. I love to build. I built lots of things up and down the stack. I tried different technologies.

Convex was something that I came across, and the more I dug into it, the more I was relieved that I no longer had to make so many decisions that I find myself having to make every single time I want to fire something up. And I was excited, and then I was... I'm not sure what the emotion was. I wanted to get more developers to know that this thing just exists. It was really something. It was quite an experience for me.

And so that led me to researching the company, reaching out to the founders. We had a bunch of conversations, and ultimately, I am here now talking to you. So I suppose in some ways I am fulfilling that vision that I had.

2. Overview of Convex

Short description:

So Convex is a sync engine that includes database, file storage, and full text search. It's written in Rust and can be self-hosted. You write your Convex code alongside your other code, and it gets compiled and deployed to your Convex instance. Your code runs in a V8 isolate on the same machine as your data, making it fast and eliminating caching concerns. Your data or state management is attached to your Convex deployment through a web socket.

So Convex is your friendly neighborhood sync engine. I'm gonna speed through a little bit of the technical stuff here. We have tons of blog posts about how it all works. The technical parts are super, super interesting.

Convex itself is a sync engine that includes database, file storage, vector embeddings... Other things I'm missing. Full text search. It's written from the ground up in 200,000 lines of Rust. It is hosted on our platform, which comes with an admin dashboard, and team member support, and usage data. But it's also open source. So if you choose, you can self-host.

So in general, the way that it works is that you write your Convex code right alongside the rest of your code. In this example that we'll go through today, it's React and TypeScript. We have clients for a whole bunch of different languages. But you put it all in the same... You don't even... NX is amazing. If you saw that talk, they do monorepo management. In this case, you don't need that.

They just live together in perfect harmony. The difference is that the code in your Convex folder gets compiled every time you hit save. It gets compiled. It's TypeScript. It gets compiled and then it gets deployed to your Convex instance, of which every project has at least two. There's a development instance, and then there's a production instance, with more redundancy. Your typical web app works just like normal. And then the Convex portion of it is this database and literally your code that's been shipped there that runs in a V8 isolate on the same machine as your data, which makes it wicked fast and effectively absolves you of any caching concerns whatsoever.

So when a client, like a web browser, hits your site, all the normal stuff happens and then anything to do with Convex, so your data or your state management, and we'll get to that, is attached to your Convex deployment through a web socket. Also wicked fast. This one, I'm sure I can make the slides available.

QnA