24th Gulaschprogrammiernacht

introducing pgreflex - an open source convex alternative for postgres
2026-06-06 , ZKM Kubus
Language: English

Convex is a TypeScript framework* that makes one promise: "if you change a value in the database, no matter how, it'll update in the frontend automatically."

This is great - imagine writing a comment, and everyone with the page open sees it immideately. If you imagine the normal todo-list example for webdev, you checkmark a task in one tab, and it immediately updates for everyone.

However, despite being open-source, convex is developed by a VC-backed company, and runs on a properitary database - you can only interface with it through their properitary libraries. Simple functions like COUNT aren't supported, and require hacky workarounds. You can't write a simple UPDATE statement. Migrations and schemas are loosely enforced.

All of these restrictions led to me writing pgreflex - a fully free + open-source, community-driven postgres-based alternative. Instead of writing a custom database, pgreflex simply subscribes to postgres' write-ahead-log (WAL) via logical replication - and notifies the app server if something changed. No properitary lock-in, and only a simple, thin library you can use with your existing stack.

  • Note: Even for people who can't immediately use pgreflex (not writing TypeScript servers, ...) the underlying tech of "listen to WAL to invalidate queries and propagate changes" is powerful. I promise this talk could be useful if you write rust webapps, too. Or Go webapps. Or python. Or anything, really. It probably could work with mysql, too.

In the talk, we'll cover:

  • Why doing what convex allows you do to is really cool from a UX perspective
  • How does pgreflex work (subscribe to WAL, invalidate)
  • Challenges and drawbacks of the approach, incl. complexity, latency, and computational overhead
  • How would you use it off-the-shelf in a TypeScript + tRPC + drizzle project
  • How other programming languages might implement the same

Maybe: a couple of benchmarks (pgreflex vs. convex on same server), if I manage to finish those before GPN

Community contributions welcome :)

I'm a developer :) I love understand how things really work, and I don't like the idea of magic in software engineering.