Stack logo
Bright ideas and techniques for building with Convex.
Featured articles
All articles
Cross-Origin Resource Sharing (CORS) is a crucial concept in modern web development, yet it's often misunderstood and can be a source of frustration for many developers. This article aims to demystify CORS, explain its importance, and provide practical guidance on its implementation. Whether you're a seasoned developer or just starting out, this guide will help you navigate the intricacies of CORS and use it effectively in your projects.
Abstract visual of cross-origin-resource-sharing in the Convex brand colors
Even though Convex supports the creation of cron jobs out of the box, until now, we've only supported static jobs. With user space crons, we now support the programmatic definition of crons at runtime.
Convex Auth is a library for implementing authentication natively in your Convex backend.
The full, unabridged story on how the Convex internals work.
You can test functions that rely on a sign-in by decoding your JWT and using the fields with "Act as a user" on the dashboard.
Featured videos
All videos
a page 1 icon and some brackets with ellipsis to represent pagination
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 Profile image
Lee Danilek
2 months ago
Cover image for the video
08:38
With Convex's magic query cache, Convex's powerful subscriptions are cached, not merely values. So you get fast, jank-free renders with no cache consistency or invalidation headaches.
Jamie Turner's Profile image
Jamie Turner
3 months ago
icon of logs and then icon of a stream, to represent log streaming!
Log streams like Axiom and Datadog can be used to provide powerful querying and alerting on logs and errors from your Convex functions, helping with debugging issues when they come up and providing early insights to detect smaller issues before they become bigger. This article covers how to do the several common things with either Axiom or Datadog hooked up as a Convex log stream including filtering to a request, logging structured metadata, and visualizing usage.
Sarah Shader's Profile image
Sarah Shader
3 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 Profile image
Sarah Shader
3 months ago
You'll often want to retrieve unique records from your database. While SELECT DISTINCT is the traditional way to do this in SQL databases, we've improved on this pattern in Convex by making it more consistent.
Nipunn Koorapati's Profile image
Nipunn Koorapati
3 months ago
Implementing application rate limiting when you have fast access to a database with strong ACID guarantees. Token bucket and fixed window, with fairness, burst accommodation and fire-and-forget support.
Ian Macartney's Profile image
Ian Macartney
3 months ago
Compare push-based load balancing with pull-based work stealing as scalable strategies for distributing resource-intensive workloads, such as running LLM models for AI apps.
Ian Macartney's Profile image
Ian Macartney
4 months ago
Implementing "work stealing" - a workload distribution strategy - using Convex's reactive database.
Ian Macartney's Profile image
Ian Macartney
4 months ago
Online migrations in Convex using mutations. Including a helper to track migration state!
Ian Macartney's Profile image
Ian Macartney
5 months ago
Even though Convex supports the creation of cron jobs out of the box, until now, we've only supported static jobs. With user space crons, we now support the programmatic definition of crons at runtime.
James Cowling's Profile image
James Cowling
2 months ago
icon of a gear and timer, representing scheduled cron jobs
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 Profile image
Lee Danilek
2 months ago
a page 1 icon and some brackets with ellipsis to represent pagination
In this 7 hour tutorial, you will learn how to create an end-to-end full stack Todoist clone, with AI features to help you organize and suggest missing items in your list with adding, deleting tasks, authentication, search using Zod, Next.js, Convex, React, Next.js Auth V5 i.e. Auth.js, Google Sign in, ShadCN UI library, React hook forms, TypeScript, OPenAI, TailwindCSS and more.
Ankita Kulkarni's Profile image
Ankita Kulkarni
3 months ago
Cover image for the video
7:07:01
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 Profile image
Ian Macartney
3 months ago
Icon of a person throwing a ball for a dog to fetch and a stream on the right, representing the post title
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 Profile image
Sarah Shader
3 months ago
ai chat robot next to a river stream representing http streaming
Learn how to use Auth.js with your Next.js server and Convex backend to build a full-featured authentication system.
Michal Srb's Profile image
Michal Srb
4 months ago
Convex with Auth.js
Check this video out for an in-depth 6 hour tutorial on building your own version of Fiverr using Convex.
freeCodeCamp's Profile image
freeCodeCamp
4 months ago
Cover image for the video
6:02:01
A tutorial on how to create a clone of WhatsApp with OpenAI built with React.js, TypeScript, TailwindCSS Convex, Clerk and ZegoCloud.
As a Programmer's Profile image
As a Programmer
5 months ago
Cover image for the video
5:20:45
Even though Convex supports the creation of cron jobs out of the box, until now, we've only supported static jobs. With user space crons, we now support the programmatic definition of crons at runtime.
icon of a gear and timer, representing scheduled cron jobs
When people want a full-stack framework, what they really want is an opinionated backend that interoperates seamlessly with their frontends in a way that empowers full-stack developers to easily build apps that can scale.
an icon representing fullstack programming inside a paradoxical shape
A cache is a non-authoritative representation of data maintained for performance reasons. Find out what these words mean and when you should care about them here.
the definition of cache invalidation: a cache is a non-authoritative representation of data maintained for performance
Icon of a person throwing a ball for a dog to fetch and a stream on the right, representing the post title
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 Profile image
Ian Macartney
3 months ago
ai chat robot next to a river stream representing http streaming
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 Profile image
Sarah Shader
3 months ago
A distributed server on the left and a folder icon with a pirate's hook in it
Implementing "work stealing" - a workload distribution strategy - using Convex's reactive database.
Ian Macartney's Profile image
Ian Macartney
4 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 Profile image
Hassan El Mghari
7 months 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 Profile image
Jason Lengstorf
8 months ago
This year vector databases have sprung up like mushrooms to enable applications to retrieve context based on semantic search. A large portion of these applications have used the retrieved context to augment the ability of large language models (LLMs) in a pattern known as RAG. On November 7th OpenAI released its Assistants API, enabling the implementation of AI chat interfaces with context retrieval without needing a separate message store or vector database. Does this new API make vector databases obsolete?
Michal Srb's Profile image
Michal Srb
9 months ago
Convex is a full-stack development platform and cloud database, including built-in vector search. In this third post in our [series](https://stack.convex.dev/ai-chat-using-openai-assistants-api), we’ll build an AI-powered chat interface using Convex, with our own message storage and context retrieval.
Michal Srb's Profile image
Michal Srb
9 months ago
In this second post in our series, we’ll build an AI-powered chat interface using LangChain and its new Convex integration.
Michal Srb's Profile image
Michal Srb
9 months ago
On November 7th OpenAI released its Assistants API, enabling chat bot with context retrieval implementations without needing a messages or vector database. In this post, we’ll cover how to leverage this API to build a fully functioning AI chat interface.
Michal Srb's Profile image
Michal Srb
9 months ago