All posts
EngineeringJuly 19, 2026·3 min read

One registry, 200+ experiences: how the QRFlow catalog works

Why we store QR types as data instead of code — and what that means for how fast the catalog grows.

Most QR tools hardcode their type list. Every new type means new forms, new routes, new releases. That's why their catalogs grow by a couple of types per year.

QRFlow stores its catalog in an experience registry — a database of every type the platform supports, with its category, setup fields, encoding template, and capability flags: does it support static codes, analytics, the canvas builder, access gates, premium-only availability?

The create flow simply reads the registry. When you open a type, its form is generated from the registry's field definitions; when you save, the encoding is produced from its template. Adding a new type is a data change, not a software release — which is how the catalog reached 200+ types across 20+ categories.

The flags matter just as much as the fields. They let us gate features honestly: the canvas builder appears only for types that render hosted pages, static generation only where offline encoding makes sense. And they give us a clean path to beta releases, per-plan availability, and eventually a marketplace of community-built experiences.

The lesson we keep re-learning: platforms beat features. Every time we move something from code into the registry, the whole product gets easier to grow.

Try QRFlow free

Your first dynamic QR code takes about two minutes.

Get started