详细内容
Product
RealtimeKeep your app up to date AuthenticationOver 80+ OAuth integrations \
\
ComponentsIndependent, modular, TypeScript building blocks for your backend. Open sourceSelf host and develop locally \
\
AI CodingGenerate high quality Convex code with AI
Compare
Convex vs. Firebase Convex vs. Supabase Convex vs. SQL
Developers
DocumentationGet started with your favorite frameworks SearchSearch across Docs, Stack, and Discord TemplatesUse a recipe to get started quickly Convex for StartupsStart and scale your company with Convex Convex ChampionsAmbassadors that support our thriving community Convex CommunityShare ideas and ask for help in our community Discord
The backend platform that keeps your app in sync
npm create convex
Everything is code
From database schemas to queries, from auth to APIs, express every part of
your backend in pure TypeScript. Your backend code lives next to your app code,
is typechecked and autocompleted, and is generated by AI with exceptional accuracy.


Always in sync
Convex libraries guarantee that your app always reflects changes to your
frontend code, backend code,
and database state in real time.
No need for state managers, cache invalidation policies, or websockets.


Backend built-ins
Create cron jobs, kick off backend AI workflows, leverage built-in auth,
and tap into a growing ecosystem of components that solve common backend
needs with just an npm i.


The backend platform that keeps your app in sync
npm create convex
Everything is code
From database schemas to queries, from auth to APIs, express every part of
your backend in pure TypeScript. Your backend code lives next to your app code,
is typechecked and autocompleted, and is generated by AI with exceptional accuracy.
01
Always in sync
Backend built-ins
TypeScriptconvex/todos.tsTypeScriptconvex/schema.ts
99
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
22
23
34
35
41
›
⌄
⌄
⌄
›
›
›
import { mutation,query }
from"./_generated/server";
import { v } from"convex/values";
exportconstsetComplete=mutation({
args: { id: v.id("todos") },
handler: async (ctx,args) => {
awaitctx.db.patch(args.id, {
// Try checking a todo--nothing happens!
// Change this to `true` and try again.
completed: false,
});
},
});
exportconstlist=query({…});
exportconstadd=mutation({…});
exportconstsetIncomplete=mutation({…});
Reset code
Try it out!
99
1
2
3
4
5
6
7
8
9
10
11
›
⌄
⌄
import { defineSchema,defineTable } from"convex/server";
import { v } from"convex/values";
exportdefaultdefineSchema({
todos: defineTable({
text: v.string(),
category: v.optional(v.string()),
completed: v.boolean(),
}).index("by_completed", ["completed"]),
});
Convex Chat Demo
Last categorized:2s ago
Buy groceries
Send work report to manager
Add
todos
database table with 1 document
| _id | text | category | completed | _creationTime |
|---|---|---|---|---|
| 24doqamcfaeboxnnovrhmcrkrfilwmy | "Buy groceries" | unset | false | 11/30/2025, 1:32:40 PM |
Reactsrc/Todo/TodoApp.tsxTypeScriptconvex/todos.ts
99
1
2
3
4
5
6
7
8
9
10
11
›
⌄
import { api } from"../../convex/_generated/api";
import { TodoList } from"./TodoList";
import { useQuery } from"convex/react";
exportfunctionTodoApp() {
// Load more by changing `count` to 10.
// Everything updates reactively.
consttodos=useQuery(api.todos.list, { count: 5 });
return <TodoListtodos={todos} />;
}
Reset code
Try it out!
99
1
2
3
4
12
13
14
15
16
17
18
19
20
›
›
⌄
⌄
›
import { mutation,query } from"./_generated/server";
import { v } from"convex/values";
exportconstsetComplete=mutation({…});
exportconstlist=query({
args: { count: v.number() },
handler: async (ctx,args) => {
returnawaitctx.db.query("todos").order("desc").take(args.count);
},
});
exportconstadd=mutation({…});
Convex Chat Demo
Last categorized:2s ago
Update project status
Work
Schedule a team meeting
Work
Do laundry
Chores
Go to the doctor
Other
Go to the gym
Other
Schedule health checkup
Add
todos
database table with 10 documents
| _id | text | category | completed | _creationTime |
|---|---|---|---|---|
| 24bzdfbchqiqwxrzcfjrtlbsvhzgvmm | "Update project status" | "Work" | false | 11/30/2025, 1:32:39 PM |
| 24kqogogiskiuzrkorbwwonzucghcdd | "Schedule a team meeting" | "Work" | false | 11/30/2025, 1:32:39 PM |
| 24pkidrltcwkbmcfhlmsitkatovobui | "Do laundry" | "Chores" | false | 11/30/2025, 1:32:39 PM |
| 24vrdzjzyqvnnqdiwrqskyulyukorcw | "Go to the doctor" | "Other" | false | 11/30/2025, 1:32:39 PM |
| 24yvcsoajvcsignwyrdtnasyphlqgcv | "Go to the gym" | "Other" | false | 11/30/2025, 1:32:39 PM |
| 24mxmwvkipedfxjsgwnkphhhvquldww | "Clean my room" | "Chores" | false | 11/30/2025, 1:32:39 PM |
| 24zxxxihtwsyhxxuukhbrfjjkbmmqex | "Play tennis with Steve" | "Other" | false | 11/30/2025, 1:32:39 PM |
| 24zwoqccgjewwazvweynibewzqynxnk | "Play basketball" | "Other" | false | 11/30/2025, 1:32:39 PM |
| 24zwitqwehzgirbaaotsevubecjcihv | "Talk to my boss" | "Work" | false | 11/30/2025, 1:32:39 PM |
| 24vjrnwccwupjeluuilwsinuexhzsha | "Buy groceries" | "Chores" | false | 11/30/2025, 1:32:39 PM |
TypeScriptconvex/crons.tsTypeScriptconvex/categorize.tsTypeScriptconvex/schema.ts
99
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
›
⌄
import { cronJobs } from"convex/server";
import { internal } from"./_generated/api";
constcrons=cronJobs();
crons.interval(
"categorize todos",
{ seconds: 5 },
internal.categorize.categorize,
{
// Add categories "Sports" and "Health"
// to see the todos categorized on the
// next cron job run.
categories: ["Chores","Work"],
},
);
exportdefaultcrons;
Reset code
Try it out!
99
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
›
⌄
⌄
⌄
⌄
⌄
import { v } from"convex/values";
import { api,internal } from"./_generated/api";
import { Doc,Id } from"./_generated/dataModel";
import { internalAction,internalMutation } from"./_generated/server";
importAnthropicfrom"@anthropic-ai/sdk";
typeAiCategorizeResponse= {
id: Id<"todos">;
category: string;
};
exportconstcategorize=internalAction({
args: { categories: v.array(v.string()) },
handler: async (ctx,args) => {
consttodos=awaitctx.runQuery(api.todos.list, { count: 100 });
constresponse=awaitcategorizeTodos(todos,args.categories);
awaitctx.runMutation(internal.categorize.setCategories, {
categories: response,
});
},
});
exportconstsetCategories=internalMutation({
99
1
2
3
4
5
6
7
8
9
10
11
›
⌄
⌄
import { defineSchema,defineTable } from"convex/server";
import { v } from"convex/values";
exportdefaultdefineSchema({
todos: defineTable({
text: v.string(),
category: v.optional(v.string()),
completed: v.boolean(),
}).index("by_completed", ["completed"]),
});
Convex Chat Demo
Last categorized:2s ago
Update project status
Work
Schedule a team meeting
Work
Do laundry
Chores
Go to the doctor
Other
Go to the gym
Other
Clean my room
Chores
Play tennis with Steve
Other
Play basketball
Other
Talk to my boss
Work
Buy groceries
Chores
Complete project deadline
Add
todos
database table with 10 documents
| _id | text | category | completed | _creationTime |
|---|---|---|---|---|
| 24vtkrknppsugobbuuccjupjiqssypf | "Update project status" | "Work" | false | 11/30/2025, 1:32:39 PM |
| 24ytzukahjuldiwlihznueckhskkywl | "Schedule a team meeting" | "Work" | false | 11/30/2025, 1:32:39 PM |
| 24fkpvrwcmbivcbabjmlrvucqbtipke | "Do laundry" | "Chores" | false | 11/30/2025, 1:32:39 PM |
| 24huakrddhtbcwywgoohhraycyahfbn | "Go to the doctor" | "Other" | false | 11/30/2025, 1:32:39 PM |
| 24pgohwdvmjzgkwyhlwpevkgsrgqyuy | "Go to the gym" | "Other" | false | 11/30/2025, 1:32:39 PM |
| 24yaymyecnjkotabrhiyorgtkclnach | "Clean my room" | "Chores" | false | 11/30/2025, 1:32:39 PM |
| 24gknlaudbigffihkngmknydjaptchd | "Play tennis with Steve" | "Other" | false | 11/30/2025, 1:32:39 PM |
| 24zuotxggtqetzedcbvwmdijqpflflm | "Play basketball" | "Other" | false | 11/30/2025, 1:32:39 PM |
| 24giadwdnsuucjdraxyakvgdzbmrbmu | "Talk to my boss" | "Work" | false | 11/30/2025, 1:32:39 PM |
| 24oreismjnehexpnytftpwgtuitcyvc | "Buy groceries" | "Chores" | false | 11/30/2025, 1:32:39 PM |
AI Tools
LLMs love Convex
With Convex, everything is just TypeScript. This means your favorite AI tools are pre-equipped to generate high quality code.
Product
Not just a database
Everything your product deserves to build, launch, and scale.
Customer Love
Loved by developers
What people building their business on Convex are saying.
Next + Convex (all in typescript)
Vs
Angular (typescript) + Django (python) + Postgres + S3 + Websocket DIY + SQS + IaC + DIY e2e type safety
🤔

WebDevCody @webdevcody
@convex Simple. Fast. Realtime.

AndyOz @andy_austin_dev
I think @convex might be the best DB I've ever used

Robin @robinxpfp
Happy to see more first-class clerk x convex integration
There's such a major architecture shift around Serverless + Edge + React + Typescript that (imo) it's unlikely sql is still the right abstraction
Very compelling that convex is approaching this from first principles

Colin | Clerk.com @tweetsbycolin
😱 @convex is the gift that keeps on giving
Check it out in combination with @nextjs docs.convex.dev

Guillermo Rauch @rauchg
@convex is everything I wanted Firebase to be. Such a great tool. Feels illegal to know about this before others.

Timothy Stepro @tim_stepro
#dailytip if you are a #react developer and want an alternative to Firebase, you might want to give @convex a try. It has amazing ReactHooks with samples in #Javascript and #typescript and the price isn't bad. I'm not a Firebase expert but it looks like all features are there

urubatan @urubatan
@convex feels like what I wanted Firebase and MongoDB Realm to be and more. Really enjoying the DX so far!

David Kim @dvddkkim
I used @convex once to make sure our integration at @ClerkDev worked and the docs matched what we expected.
It's magical. I don't say that lightly. I think it's time to do a video on the channel.

James Perkins @james_r_perkins
I'm working on a new app build with @convex and I am *very* excited about the tech here
- DB schema defined in TS - end-to-end types (like if tRPC also set up your DB) - real-time updates Just Work™

Jason Lengstorf @jlengstorf
Managing an application's state has become easier, but the global state concept is still a pain for developers, which @convex aims to solve. I made a realtime application using @convex, @nextjs, and @auth0 and loved it.😍

Anshuman Bhardwaj @sun_anshuman
Interesting tool of the week: convex.dev by @convex
We like: Makes it easy to build a live-updating web app with a document database. Strictly-typed fully relational schemas defined in code (optional, but recommended)

Console - Devtools, devtools, devtools @consoledotdev
#dailytip if you are a #react developer and want an alternative to Firebase, you might want to give @convex a try. It has amazing ReactHooks with samples in #Javascript and #typescript and the price isn't bad. I'm not a Firebase expert but it looks like all features are there

urubatan @urubatan
I used @convex once to make sure our integration at @ClerkDev worked and the docs matched what we expected.
It's magical. I don't say that lightly. I think it's time to do a video on the channel.

James Perkins @james_r_perkins
@convex is everything I wanted Firebase to be. Such a great tool. Feels illegal to know about this before others.

Timothy Stepro @tim_stepro
I think @convex might be the best DB I've ever used

Robin @robinxpfp
#dailytip if you are a #react developer and want an alternative to Firebase, you might want to give @convex a try. It has amazing ReactHooks with samples in #Javascript and #typescript and the price isn't bad. I'm not a Firebase expert but it looks like all features are there

urubatan @urubatan
I used @convex once to make sure our integration at @ClerkDev worked and the docs matched what we expected.
It's magical. I don't say that lightly. I think it's time to do a video on the channel.

James Perkins @james_r_perkins
@convex is everything I wanted Firebase to be. Such a great tool. Feels illegal to know about this before others.

Timothy Stepro @tim_stepro
I think @convex might be the best DB I've ever used

Robin @robinxpfp
Happy to see more first-class clerk x convex integration
There's such a major architecture shift around Serverless + Edge + React + Typescript that (imo) it's unlikely sql is still the right abstraction
Very compelling that convex is approaching this from first principles

Colin | Clerk.com @tweetsbycolin
I'm working on a new app build with @convex and I am *very* excited about the tech here
- DB schema defined in TS - end-to-end types (like if tRPC also set up your DB) - real-time updates Just Work™

Jason Lengstorf @jlengstorf
@convex feels like what I wanted Firebase and MongoDB Realm to be and more. Really enjoying the DX so far!

David Kim @dvddkkim
😱 @convex is the gift that keeps on giving
Check it out in combination with @nextjs docs.convex.dev

Guillermo Rauch @rauchg
Happy to see more first-class clerk x convex integration
There's such a major architecture shift around Serverless + Edge + React + Typescript that (imo) it's unlikely sql is still the right abstraction
Very compelling that convex is approaching this from first principles

Colin | Clerk.com @tweetsbycolin
I'm working on a new app build with @convex and I am *very* excited about the tech here
- DB schema defined in TS - end-to-end types (like if tRPC also set up your DB) - real-time updates Just Work™

Jason Lengstorf @jlengstorf
@convex feels like what I wanted Firebase and MongoDB Realm to be and more. Really enjoying the DX so far!

David Kim @dvddkkim
😱 @convex is the gift that keeps on giving
Check it out in combination with @nextjs docs.convex.dev

Guillermo Rauch @rauchg
Managing an application's state has become easier, but the global state concept is still a pain for developers, which @convex aims to solve. I made a realtime application using @convex, @nextjs, and @auth0 and loved it.😍

Anshuman Bhardwaj @sun_anshuman
Interesting tool of the week: convex.dev by @convex
We like: Makes it easy to build a live-updating web app with a document database. Strictly-typed fully relational schemas defined in code (optional, but recommended)

Console - Devtools, devtools, devtools @consoledotdev
Next + Convex (all in typescript)
Vs
Angular (typescript) + Django (python) + Postgres + S3 + Websocket DIY + SQS + IaC + DIY e2e type safety
🤔

WebDevCody @webdevcody
@convex Simple. Fast. Realtime.

AndyOz @andy_austin_dev
Managing an application's state has become easier, but the global state concept is still a pain for developers, which @convex aims to solve. I made a realtime application using @convex, @nextjs, and @auth0 and loved it.😍

Anshuman Bhardwaj @sun_anshuman
Interesting tool of the week: convex.dev by @convex
We like: Makes it easy to build a live-updating web app with a document database. Strictly-typed fully relational schemas defined in code (optional, but recommended)

Console - Devtools, devtools, devtools @consoledotdev
Next + Convex (all in typescript)
Vs
Angular (typescript) + Django (python) + Postgres + S3 + Websocket DIY + SQS + IaC + DIY e2e type safety
🤔

WebDevCody @webdevcody
@convex Simple. Fast. Realtime.

AndyOz @andy_austin_dev
Integrations
Convex
lovesyour favorite frameworks
Connect your backend to your client libraries and frameworks
\
React\
\
Quickstart guide \
React Native\
\
Quickstart guide \
Python\
\
Quickstart guide
\
Next.js\
\
Quickstart guide \
TanStack Start\
\
Quickstart guide \
Rust\
\
Quickstart guide
\
Remix\
\
Quickstart guide \
Vue\
\
Quickstart guide \
Svelte\
\
Quickstart guide
Get your app up and running in minutes
Product Sync Realtime Auth Open source AI coding Chef FAQ Pricing
Developers Docs Blog Components Templates Startups Champions Changelog Podcast LLMs.txt
Company About us Brand Investors Become a partner Jobs News Events Terms of service Privacy policy Security
Social Twitter
Discord
YouTube
Luma
LinkedIn
GitHub
A Trusted Solution
SOC 2 Type II Compliant
HIPAA Compliant
GDPR Verified
©2025 Convex, Inc.
We use third-party cookies to understand how people interact with our site.
See our Privacy Policy to learn more.
DeclineAccept


