
Lee Danilek
All posts by Lee
Merging Streams of Convex data
New convex-helpers are available now for fetching streams of documents, merging them together, filtering them them out, and paginating the results. With these helpers, you can replicate patterns you may know from SQL: UNION ALL, JOIN, DISTINCT, GROUP BY, and WHERE clauses where index fields are skipped.

Lee Danilek
3 days ago
Translate SQL into Convex Queries
Here’s a cheatsheet with examples of conversions between SQL queries and Convex queries. This article is geared towards developers (and LLMs) who have familiarity with SQL and want to translate those familiar patterns into Convex queries. You'll learn how to `UNION`, `JOIN`, `DISTINCT`, do `WHERE` clauses, and `SELECT` fields.

Lee Danilek
5 days ago
Optimize Transaction Throughput: 3 Patterns for Scaling with Convex and ACID Databases
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
2 months ago
Convex Cookbook: Dynamic Query Builders
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
3 months ago
Database Triggers
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
5 months ago
Take Control of 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
8 months ago
Using TypeScript to Write Complex Query Filters
There’s a new Convex helper to perform generic TypeScript filters, with the same performance as built-in Convex filters, and unlimited potential.

Lee Danilek
a year ago
Row Level Security
Add row-level security to your database access by wrapping database reads and writes in your Convex serverless functions.

Lee Danilek
2 years ago
End-to-End Encryption with Convex
Implementing end-to-end encryption on top of Convex to build a secret-sharing app.

Lee Danilek
2 years ago