All case studies First TypeScript MetaObjects reference

Michael Frank: first to ship on the TypeScript toolchain, at v0.5.0

TypeScript / React 19 / Fastify / Drizzle / MetaObjects

The first real project to consume the published TypeScript MetaObjects packages — it took a brand-new toolchain from v0.5.0 to v0.7.0 in a single week, and surfaced the integration lesson every adopter of generated CRUD should know.

officialmichaelfrank.com ↗

1st
TypeScript MetaObjects consumer
migrated from an earlier internal framework
0.5.0
first published release it shipped on
2026-05-22
7 days
0.5.0 → 0.7.0, on a brand-new toolchain
leading edge, so later adopters didn't
1.0.0
what it runs today
upgraded 2026-09-09, four CI gates green

When the TypeScript edition of MetaObjects was first published, this training and subscription platform was the first project to build on it — migrating off an earlier internal framework and taking the packages from v0.5.0 to v0.7.0 in a single week. Being first is its whole value: it absorbed the leading edge, and surfaced a generated-CRUD auth lesson, so the references that followed didn't have to.

The challenge: someone has to be first on a 0.5.0

A brand-new toolchain at version 0.5.0 has no adopters, no worn paths, and no war stories. Taking it into a real application — a React 19 + Fastify subscription platform with genuine training and billing models — means finding the sharp edges yourself. This project migrated off an earlier internal framework to do exactly that, and moved the published packages from 0.5.0 to 0.7.0 within the week.

The lesson it surfaced: generated CRUD is a surface, not a policy

MetaObjects can generate complete CRUD endpoints straight from the model — a real accelerant. But scoping who may call them is the application's job, not the generator's. During integration here, a set of generated routes was wired up before its access rules were in place; it was caught in code review and hardened with an explicit auth gate plus a regression test. The takeaway — now part of how later projects adopt — is simple: the tool gives you the surface, you own the authorization.

Why it's a good reference

Consuming a toolchain at its first public release is a harder test than building on a mature one — and this is the project that did it first. The metadata-drives-the-schema pattern proven here is the same one smon and Wizards of Odd now build on; the edges it hit at 0.5.0 became fixes and lessons the later references inherited for free.

It also stayed. The platform was upgraded to MetaObjects 1.0.0 on 2026-09-09 and its pipeline is green across unit tests, end-to-end tests, build, and a MetaObjects drift gate that fails the build when generated code and metadata disagree. The project that proved the toolchain at 0.5.0 is now a project running the stable release with drift enforced — which is a stronger claim than "it worked once."

See the live platform ↗

What to read it as

All case studies

Considering MetaObjects for your next platform?

Doug works directly with teams evaluating MetaObjects. Tell us what you're building and we'll tell you, honestly, whether MetaObjects fits.

Email doug@dougmealing.com