Featured articles
All articles
Learn how to self-host Convex, the reactive database and backend. This guide covers setup with Docker, Fly.io, and Neon.tech, plus pros and cons of self-hosting vs. cloud hosting.
![Self-Hosting with Convex: Everything You Need to Know](/_next/image?url=https%3A%2F%2Fcdn.sanity.io%2Fimages%2Fts10onj4%2Fproduction%2F883412cdd6d8488bbabd48011721d2290715d7d9-1938x1091.png&w=3840&q=75)
Explore techniques to improve transaction throughput and concurrency in ACID databases by reducing conflicts and optimizing database reads. This guide covers patterns like Queue, Hot and Cold Tables, and Predicate Locking with clear examples using Convex, providing developers with tools to handle high-throughput workflows effectively.
The tutorial "How I added GitHub and npm stat counters to TanStack.com" by Convex Champion Shawn Erquhart details how Convex automates the integration of live GitHub and npm statistics on the TanStack.com website. It showcases data fetching, database optimization, and real-time updates through APIs, web scraping, and scheduled jobs.
Or how I learned to love BlockNote, Tiptap and ProseMirror OT sync.
Learn about Automerge CRDTs for collaborative editing, syncing changes using Convex.
Featured videos
All videos
![Cover image for the video](/_next/image?url=https%3A%2F%2Fi.ytimg.com%2Fvi%2F1B-MdlHat9c%2Fsddefault.jpg&w=3840&q=75)
54:32
What You Missed in 2024 in the World of Databases, with Andy Pavlo
941 views
24 days ago
Patterns
All Patterns posts
![Optimize Transaction Throughput: 3 Patterns for Scaling with Convex and ACID Databases](/_next/image?url=https%3A%2F%2Fcdn.sanity.io%2Fimages%2Fts10onj4%2Fproduction%2F15081ecb1ac81e72360c75494edfbcb04e645c46-1452x956.png&w=3840&q=75)
Explore techniques to improve transaction throughput and concurrency in ACID databases by reducing conflicts and optimizing database reads. This guide covers patterns like Queue, Hot and Cold Tables, and Predicate Locking with clear examples using Convex, providing developers with tools to handle high-throughput workflows effectively.
![Lee Danilek's avatar](/_next/image?url=https%3A%2F%2Fcdn.sanity.io%2Fimages%2Fts10onj4%2Fproduction%2F3c79cdc687d19f0b05080ae217ed23e00b239f79-594x603.jpg&w=3840&q=75)
Lee Danilek
24 days ago
![Convex Cookbook: Dynamic Query Builders](/_next/image?url=https%3A%2F%2Fcdn.sanity.io%2Fimages%2Fts10onj4%2Fproduction%2F76c7ea17f4037d4c210e33fab4813aa104cf90e3-1452x956.png&w=3840&q=75)
You can write a Convex query whose structure -- which index/order/filters to apply, if any -- depends on runtime factors. This article gives a recipe for building queries dynamically.
![Lee Danilek's avatar](/_next/image?url=https%3A%2F%2Fcdn.sanity.io%2Fimages%2Fts10onj4%2Fproduction%2F3c79cdc687d19f0b05080ae217ed23e00b239f79-594x603.jpg&w=3840&q=75)
Lee Danilek
a month ago
![Cover image for the video](/_next/image?url=https%3A%2F%2Fi.ytimg.com%2Fvi%2Fhj89hIjq2HE%2Fsddefault.jpg&w=3840&q=75)
08:22
Convex's migrations component makes it easy and safe to run complex database migrations without causing any interruption to live traffic.
![Jamie Turner's avatar](/_next/image?url=https%3A%2F%2Fcdn.sanity.io%2Fimages%2Fts10onj4%2Fproduction%2Fee80addc4a0315dc3175c4a08f64f8bc294568bd-400x400.jpg&w=3840&q=75)
Jamie Turner
2 months ago
Learn about Automerge CRDTs for collaborative editing, syncing changes using Convex.
![Ian Macartney's avatar](/_next/image?url=https%3A%2F%2Fcdn.sanity.io%2Fimages%2Fts10onj4%2Fproduction%2F077753b63476b77fb111ba06d1bb538517033a54-3500x3500.jpg&w=3840&q=75)
Ian Macartney
3 months ago
Convex Components enable an ecosystem of powerful building blocks to reduce the amount of code you have to write and maintain yourself. Geospatial search, Expo push notifications, LaunchDarkly feature flags, durable function workflows, and more.
![Ian Macartney's avatar](/_next/image?url=https%3A%2F%2Fcdn.sanity.io%2Fimages%2Fts10onj4%2Fproduction%2F077753b63476b77fb111ba06d1bb538517033a54-3500x3500.jpg&w=3840&q=75)
Ian Macartney
4 months ago
Triggers automatically run code whenever data in a table changes. A library in the convex-helpers npm package allows you to attach trigger functions to your Convex database.
![Lee Danilek's avatar](/_next/image?url=https%3A%2F%2Fcdn.sanity.io%2Fimages%2Fts10onj4%2Fproduction%2F3c79cdc687d19f0b05080ae217ed23e00b239f79-594x603.jpg&w=3840&q=75)
Lee Danilek
4 months ago
Turns out, you can organize your Convex project across multiple repositories! Check out this guide on how to implement this in your project.
![Jordan Hunt's avatar](/_next/image?url=https%3A%2F%2Fcdn.sanity.io%2Fimages%2Fts10onj4%2Fproduction%2F6480378f352a441db944914a8906cf2742c180e2-384x384.webp&w=3840&q=75)
Jordan Hunt
5 months ago
The term CRUD, or CRUD API, is often tossed around when interacting with databases or building backend APIs. This article will examine what CRUD is, what it’s suitable for, and its shortcomings. Finally, we’ll explore how to quickly implement a CRUD API using a modern backend like Convex.
![Jamie Turner's avatar](/_next/image?url=https%3A%2F%2Fcdn.sanity.io%2Fimages%2Fts10onj4%2Fproduction%2Fee80addc4a0315dc3175c4a08f64f8bc294568bd-400x400.jpg&w=3840&q=75)
Jamie Turner
5 months ago
Convex offers robust control over pagination with a powerful function, getPage, enabling complex edge cases. In this article, we go over how to use that function in your Convex app.
![Lee Danilek's avatar](/_next/image?url=https%3A%2F%2Fcdn.sanity.io%2Fimages%2Fts10onj4%2Fproduction%2F3c79cdc687d19f0b05080ae217ed23e00b239f79-594x603.jpg&w=3840&q=75)
Lee Danilek
7 months ago
Local-First
All Local-First posts
Walkthroughs
All Walkthroughs posts
ClarityText uses Cloudflare Pages for Convex deployments on Language Hopper, leveraging preview deployments, Git integration, and Node.js support. In this guide, Atul Raghuvanshi and Convex Champion Matt Luo walk through setup, including team onboarding, build scripts, Git configuration, and troubleshooting.
![Atul Raghuvanshi's avatar](/_next/image?url=https%3A%2F%2Fcdn.sanity.io%2Fimages%2Fts10onj4%2Fproduction%2Ffdefc19ac2c13890cda04747266a9b55fe6b38c6-795x829.png&w=3840&q=75)
![Matt Luo's avatar](/_next/image?url=https%3A%2F%2Fcdn.sanity.io%2Fimages%2Fts10onj4%2Fproduction%2F7dcfd1c7d000d0a102ee19974db58b43e00e5b52-576x576.jpg&w=3840&q=75)
Atul Raghuvanshi & Matt Luo
10 days ago
![Setting up Cloudflare Pages for Convex deployments](/_next/image?url=https%3A%2F%2Fcdn.sanity.io%2Fimages%2Fts10onj4%2Fproduction%2F2d3adfb9b4ec67c52d54b7a93de99cec52c5bae9-1452x956.png&w=3840&q=75)
Discover how the creation of QuiP, an online trivia league, led to a deeper understanding of domain-driven development using Convex. This blog explores the importance of building a shared language with your community to design applications, covering everything from backend modeling to crafting user-friendly interfaces.
![Charlie McGeorge's avatar](/_next/image?url=https%3A%2F%2Fcdn.sanity.io%2Fimages%2Fts10onj4%2Fproduction%2Fa7aaacf4a6b9a4b5f1a9c799d19d31a60b758aab-736x736.jpg&w=3840&q=75)
Charlie McGeorge
19 days ago
![From Trivia to TypeScript: QuiP's Domain-Driven Development with Convex](/_next/image?url=https%3A%2F%2Fcdn.sanity.io%2Fimages%2Fts10onj4%2Fproduction%2F03b6aac2b328a51cee41ba323080ade4d697fbab-1452x956.png&w=3840&q=75)
Sonny Sangha’s YouTube video demonstrates how to build an AI agent using Next.js 15, Convex, LangChain, Clerk, and IBM wxflows. The tutorial covers creating a secure and interactive chat application with real-time updates, Tool integration, and optimized performance using Convex for backend data management. With features like user authentication via Clerk, dynamic data handling through wxflows, and prompt caching with Claude 3.5 Sonnet, the video provides a detailed guide for developers looking to implement cutting-edge AI capabilities in their projects.
![Sonny Sangha's avatar](/_next/image?url=https%3A%2F%2Fcdn.sanity.io%2Fimages%2Fts10onj4%2Fproduction%2F9651595a324459495837eee9d5888fe98b4be4cc-900x900.jpg&w=3840&q=75)
Sonny Sangha
25 days ago
![Cover image for the video](/_next/image?url=https%3A%2F%2Fi.ytimg.com%2Fvi%2FiYX-3hCVmK8%2Fsddefault.jpg&w=3840&q=75)
5:22:01
Imagine your app generating fresh content every minute—without you lifting a finger. That’s what Convex Cron makes possible. In this guide, you’ll set up a system to automate Q&A generation with ChatGPT.
![Hyo Jang's avatar](/_next/image?url=https%3A%2F%2Fcdn.sanity.io%2Fimages%2Fts10onj4%2Fproduction%2Fceedde6d1ec348c32be2db2dbbbf5441911a57cb-584x548.png&w=3840&q=75)
Hyo Jang
2 months ago
The tutorial "How I added GitHub and npm stat counters to TanStack.com" by Convex Champion Shawn Erquhart details how Convex automates the integration of live GitHub and npm statistics on the TanStack.com website. It showcases data fetching, database optimization, and real-time updates through APIs, web scraping, and scheduled jobs.
![Shawn Erquhart's avatar](/_next/image?url=https%3A%2F%2Fcdn.sanity.io%2Fimages%2Fts10onj4%2Fproduction%2Fb4c569fec4cd83c42dd4afee1d564d2bb28f16b6-648x720.jpg&w=3840&q=75)
Shawn Erquhart
2 months ago
![Tutorial: How I added GitHub and npm stat counters to TanStack.com with Convex](/_next/image?url=https%3A%2F%2Fcdn.sanity.io%2Fimages%2Fts10onj4%2Fproduction%2Fcfac7c2405fc307f8ac89b7c92c5333403152450-2904x1912.png&w=3840&q=75)
Learn how to create real-time conversations between users and ChatGPT using Convex. You’ll design schemas, sync data automatically, and paginate chat history like a pro.
![Hyo Jang's avatar](/_next/image?url=https%3A%2F%2Fcdn.sanity.io%2Fimages%2Fts10onj4%2Fproduction%2Fceedde6d1ec348c32be2db2dbbbf5441911a57cb-584x548.png&w=3840&q=75)
Hyo Jang
2 months ago
Or how I learned to love BlockNote, Tiptap and ProseMirror OT sync.
![Ian Macartney's avatar](/_next/image?url=https%3A%2F%2Fcdn.sanity.io%2Fimages%2Fts10onj4%2Fproduction%2F077753b63476b77fb111ba06d1bb538517033a54-3500x3500.jpg&w=3840&q=75)
Ian Macartney
2 months ago
![Sync collaborative documents with Convex](/_next/image?url=https%3A%2F%2Fcdn.sanity.io%2Fimages%2Fts10onj4%2Fproduction%2Fea6153bc09e878f4aa5f9408f1e20ef20bc645a8-1452x956.png&w=3840&q=75)
Hamza Saleem shares how Convex simplifies building real-time data sync apps like Sticky by using the useQuery hook, where you can easily fetch and sync data, like sticky notes, with minimal setup. He explains how Convex handles challenges like syncing data, live updates, and user tracking.
![Hamza Saleem's avatar](/_next/image?url=https%3A%2F%2Fcdn.sanity.io%2Fimages%2Fts10onj4%2Fproduction%2F2459c01bdfcf22622b5a0ff82cb9242d6b0848ae-256x256.webp&w=3840&q=75)
Hamza Saleem
2 months ago
![Keeping Users in Sync: Building Real-time Collaboration with Convex](/_next/image?url=https%3A%2F%2Fcdn.sanity.io%2Fimages%2Fts10onj4%2Fproduction%2F24f890dcdd81fb09cc8989f9e3b951196b07059b-1452x956.png&w=3840&q=75)
Perspectives
All Perspectives posts
WebDevCody drops into Databased to discuss content creation, AI, and sponsor relationships.
![Cover image for the video](/_next/image?url=https%3A%2F%2Fi.ytimg.com%2Fvi%2FiCB4RYK1if8%2Fsddefault.jpg&w=3840&q=75)
48:17
After years of wrestling with state management, I've found myself excited by how Convex queries have simplified the way I think about derived state. Instead of juggling complex state libraries and websocket implementations, Convex offers a refreshingly straightforward approach: just declare what data you need, and it stays synchronized across all clients automatically. It's made me wonder if we've been overcomplicating things all along.
![Cover image for the video](/_next/image?url=https%3A%2F%2Fi.ytimg.com%2Fvi%2FHaMz-Wqmpv8%2Fsddefault.jpg&w=3840&q=75)
10:21
As the newest member of the Convex team I am keen to find out how the magic works. Join me as I go spelunking through the codebase and uncover how the API generation actually works under the covers.
![Cover image for the video](/_next/image?url=https%3A%2F%2Fi.ytimg.com%2Fvi%2Fydofb8pR6uQ%2Fsddefault.jpg&w=3840&q=75)
15:08
![Visual of vector embedding and how they work in the game Midpoints](/_next/image?url=https%3A%2F%2Fcdn.sanity.io%2Fimages%2Fts10onj4%2Fproduction%2Fe0a6c080c01e67a9a1909da8029e79474a231b7d-1232x627.png&w=3840&q=75)
Ever wondered what word sits perfectly between "sporty" and "practical"? Or perhaps "sweet" and "crunchy"? Midpoints is a new word game that gives you 10 chances to find the best match and scores you accordingly!
![Tom Redman's avatar](/_next/image?url=https%3A%2F%2Fcdn.sanity.io%2Fimages%2Fts10onj4%2Fproduction%2F74190cdf816481dceea8a0006e8bdbe9f351b9cd-1035x1035.jpg&w=3840&q=75)
Tom Redman
3 months ago
I was curious to see if I could prompt my way through developing an entire app with Cursor and Claude. It went pretty well - but there are some important caveats to keep in mind.
![Tom Redman's avatar](/_next/image?url=https%3A%2F%2Fcdn.sanity.io%2Fimages%2Fts10onj4%2Fproduction%2F74190cdf816481dceea8a0006e8bdbe9f351b9cd-1035x1035.jpg&w=3840&q=75)
Tom Redman
5 months ago
Learn the basics of HTTP streaming with Convex by re-implementing OpenAI's SDK using built-in fetch and async iterators. No npm dependencies needed.
![Ian Macartney's avatar](/_next/image?url=https%3A%2F%2Fcdn.sanity.io%2Fimages%2Fts10onj4%2Fproduction%2F077753b63476b77fb111ba06d1bb538517033a54-3500x3500.jpg&w=3840&q=75)
Ian Macartney
8 months ago
By leveraging HTTP actions with streaming, this chat app balances real-time responsiveness with efficient bandwidth usage. Users receive character-by-character updates to their own responses directly from ChatGPT, while other users see periodic updates, minimizing database bandwidth.
![Sarah Shader's avatar](/_next/image?url=https%3A%2F%2Fcdn.sanity.io%2Fimages%2Fts10onj4%2Fproduction%2F7047febd1fcf4e4b44d4da9f199c07d842acf23b-1365x1418.jpg&w=3840&q=75)
Sarah Shader
8 months ago
Implementing "work stealing" - a workload distribution strategy - using Convex's reactive database.
![Ian Macartney's avatar](/_next/image?url=https%3A%2F%2Fcdn.sanity.io%2Fimages%2Fts10onj4%2Fproduction%2F077753b63476b77fb111ba06d1bb538517033a54-3500x3500.jpg&w=3840&q=75)
Ian Macartney
9 months ago
I recently built a full-stack app called notesGPT. It allows you to record a voice note, transcribes it, and extract action items and display them as action items. It’s fully open source and comes equipped with authentication, storage, vector search, action items, and is fully responsive on mobile for ease of use.
![Hassan El Mghari's avatar](/_next/image?url=https%3A%2F%2Fcdn.sanity.io%2Fimages%2Fts10onj4%2Fproduction%2F8d384e248d778e8d9bd5f1ee56d0b8b05b236add-400x400.jpg&w=3840&q=75)
Hassan El Mghari
a year ago
Using Convex, 4 web devs built their own fullstack app based on this prompt:
> Build a way to show real-time updates on the website for a Dungeons and Dragons-themed small business!
See what they built, learn how they did it, and watch their reactions to each other's work in this installment of the "4 Web Devs, 1 App Idea" video series.
![Jason Lengstorf's avatar](/_next/image?url=https%3A%2F%2Fcdn.sanity.io%2Fimages%2Fts10onj4%2Fproduction%2F2bbb8a8f254d2ae7bdea482a610b37e35b384246-400x400.webp&w=3840&q=75)
Jason Lengstorf
a year ago