The story
25 years private. Now open.
I built MetaObjects in 2001 because the same plumbing repeated on every project: persistence, DAOs, DTOs, form bindings, validation, the MVC wiring. The ORMs that would later take part of that off our plates didn't exist yet. So I built one thing that read a single metadata model and generated the whole stack around it. You define the entity once and the generators produce the layers.
I never marketed it. For 25 years it was how I shipped quickly and kept systems consistent as they grew. It shipped a Salesforce-integrated secure-messaging platform, a credit-card processing gateway, and a high-uptime online poker system. It ran pharmaceutical regulatory software at enterprise scale, customized per customer by overlaying metadata, with no code changes. One approach became a US patent.
By 2022 I set it aside. I was running engineering organizations (architecture, M&A diligence, building leaders) and not shipping or refactoring code, which was where the tool paid off. Low-code platforms like Boomi and OutSystems also looked like they had productized the idea. They had, except for one part: you own your runtime. MetaObjects always generated code you own, with no dependency on it. Throw MetaObjects away and your code keeps running.
Then I started using AI to write code, and it drifted. Each piece looked right on its own, but across the system it used different field names for the same concept, types that changed at every boundary, and APIs that sounded plausible and didn't exist. The vendors didn't fix it. That's when I realized I'd been looking at the wrong problem in 2022. Generating code was never the hard part. Keeping it coherent as a system grows was. A shared model does that, and AI turns out to be a far better consumer of metadata than humans ever were.
So MetaObjects is back, AI-first and open source, for the first time in 25 years. 1.0 shipped on 2026-09-09, on npm, PyPI, NuGet and Maven Central. This is how I build now: fast, with heavy AI assistance, across a whole family of products. That is the situation that wrecks consistency, and MetaObjects is what keeps mine consistent. I define the model once, generate every layer from it, and let drift break the build. My other products run on it.
The full origin story (25 years, the production systems, the AI-drift turning point) is on my site.
Read the full origin essay → Get started →