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.
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.
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.
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.
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."
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