Fundamentals
Convex in Multiple Repositories
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
2 months ago
CRUD APIs: Functional, but Inefficient
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
3 months ago
Understanding CORS: A Developer's Guide
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.
Tom Redman
3 months ago
Testing authenticated functions from the dashboard
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.
Ian Macartney
4 months ago
Build and Deploy a Full Stack AI Todoist Clone: Next.js, Convex & TypeScript
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
5 months ago
The Ultimate Caching Definition: Invalidation, Optimization, and Layers
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.
Jamie Turner
7 months ago
Lightweight Migrations
Patch all of your data in your database table with the bulk edit feature on the Convex dashboard, without writing migration code.
Ian Macartney
9 months ago
Set up ESLint for best practices
ESLint is a powerful tool that goes beyond simply type checking. We go over how to set it up and implement some basic workflows with the
Ian Macartney
9 months ago
Uploading files from React Native or Expo
Step by step guide to take a file URI provided by Expo media APIs and upload it to Convex in React Native.
Indy Khare
9 months ago
Automatically Retry Actions
Learn how to automatically retry actions in Convex while also learning a little about scheduling, system tables, and function references.
James Cowling
10 months ago
Types and Validators in TypeScript: A Convex Cookbook
It can be tough to wrangle types to behave how you want them to. Thankfully, Convex was designed to make the experience with types perfect. Learn why that's the case here.
Anjana Vakil
a year ago
A New Command to Start Building Faster: npm create convex
There’s a new fastest way to start building a new app on Convex. Use our new magical command, npm create convex, to spin up a new Convex app from a preexisting template.
Convex
a year ago
The Magic of Embeddings
Embeddings, why they’re useful, and how we can store and use them in Convex.
Ian Macartney
a year ago
Relationship Structures: Let's Talk About Schemas
In this post we’ll look at some patterns for structuring relationships in the Convex database.
Ian Macartney
2 years ago
Intro to Migrations
There are as many ways to migrate data as there are databases, but here’s some basic information to set the stage.
Ian Macartney
2 years ago
Everyone Can Be a Full-Stack Engineer
Alex Cole discusses dynamic web apps, how serverless solutions compare to in-house stacks, and how product development changes when individual engineers can own features end-to-end.
Alex Cole
2 years ago
5 Dashboard Tricks
Did you know you can use the Convex Dashboard to run functions, enter seed data, filter & delete data, upload files, and more?
Ian Macartney
2 years ago
Don't Drop ACID
When your database supports ACID semantics, you're free to write code the intuitive way and ignore the complexities of concurrency and failure.
Jamie Turner
2 years ago
Fully Reactive Pagination
Paginating over large datasets is tricky when the data is changing. Naive approaches result in missing or duplicated data. The trick is to rewrite limit queries (fetch 5 items) into range queries (fetch between cursors). Convex handles this automatically!
Alex Cole
2 years ago
Intro to Convex Query Performance
How do I ensure my Convex database queries are fast and efficient? When should I define an index? What is an index?
This document explains how you should think about query performance in Convex by describing a simplified model of how queries and indexes function.
Alex Cole
2 years ago
Backend Matters (Making Fast5 #2)
Why does anything really need to run on the server anymore? And even if it does, do I, the developer, need to be so involved?
Yes! Even in a serverless world, the backend computing context being a real, discrete environment that you have control and influence over is not only necessary but hugely beneficial.
Jamie Turner
2 years ago
Convex vs. Relational Databases
Relational databases are powerful tools for persisting data, but using them to build interactive web apps requires a lot of work. A web app architecture built on a relational database is an entire cluster of databases, backends, caching nodes, and Pub/Sub servers. And even after you invest in all of that infrastructure you'll still need to explicitly define your database schema upfront and write cumbersome SQL queries.
At Convex we believe that web developers shouldn't have to worry about any of this. We can handle the servers, caching, and reactivity and you can focus on your product.
Alex Cole
3 years ago