Skip to content

Commit bbfe934

Browse files
committed
site: the proof was all on the other domain, behind a link labelled "Commercial inquiries"
metaobjects.dev carried no case studies at all. Every proof point lived on the commercial site, reachable only through a footer link whose label tells a developer not to click it — so the page that first users actually land on asked them to take the whole pitch on trust. Three cards under the hero, linking to the full write-ups. Wizards of Odd leads because it is the only one a reader can verify rather than believe: Apache 2.0, clone-and-run. The caveat sits with them rather than a page away — every adopter is maintainer-owned, and there are no independent ones yet. First users are exactly the people who check that, and finding it out on their own costs more than saying it. Also here: - "Requirements and testing" is the fifth pillar, so the <title> and og:description stop enumerating four. The body H2 has said five since the pillar shipped. - "Throw the platform away and your code keeps running" — the sentence refuting vendor lock-in was making it with the vendor's noun. It is MetaObjects, and the word for it is "standard": a versioned spec, five implementations, and a conformance corpus that byte-matches them. Nothing shipped is a platform. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01NTcEKXTQMYt84fAjuw5A2M
1 parent aaaec87 commit bbfe934

3 files changed

Lines changed: 104 additions & 3 deletions

File tree

www/index.html

Lines changed: 48 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
<head>
44
<meta charset="UTF-8">
55
<meta name="viewport" content="width=device-width, initial-scale=1.0">
6-
<title>MetaObjects — Cross-language metadata standard for codegen, runtime, drift detection, and prompt construction</title>
6+
<title>MetaObjects — Cross-language metadata standard for codegen, runtime, drift detection, prompts, and requirements</title>
77
<meta name="description" content="Define typed entities once. Generate idiomatic code in TypeScript, Java, Kotlin, C#.NET, and Python. Runtime metadata. Drift detection. Conformance-gated. Apache 2.0. Installable in all five languages — npm, Maven Central, NuGet, and PyPI.">
88

99
<link rel="icon" href="/images/mo-logo-only.png" type="image/png">
@@ -15,7 +15,7 @@
1515
<link rel="stylesheet" href="/styles.css">
1616

1717
<meta property="og:title" content="MetaObjects — Cross-language metadata standard">
18-
<meta property="og:description" content="Codegen, runtime metadata, drift detection, and prompt construction across TypeScript, Java, Kotlin, C#.NET, and Python. Installable in all five — npm, Maven Central, NuGet, PyPI. Apache 2.0.">
18+
<meta property="og:description" content="Codegen, runtime metadata, drift detection, prompt construction, and capability requirements across TypeScript, Java, Kotlin, C#.NET, and Python. Installable in all five — npm, Maven Central, NuGet, PyPI. Apache 2.0.">
1919
<meta property="og:type" content="website">
2020
<meta property="og:url" content="https://metaobjects.dev/">
2121
<meta property="og:image" content="https://metaobjects.dev/images/mo-logo.png">
@@ -66,6 +66,52 @@ <h1>Make schema drift a compile-time error.</h1>
6666
</figure>
6767
</section>
6868

69+
<!-- Proof band — the case studies live on metaobjects.com; surface them here -->
70+
<section class="proof">
71+
<h2 class="section-label">Built on it. Read the code.</h2>
72+
<div class="proof-grid">
73+
<article class="proof-card">
74+
<p class="proof-tag">Open source &middot; clone and run</p>
75+
<h3>Wizards of Odd</h3>
76+
<p>A live AI wizard-council app built to be read: one metadata spine drives the
77+
Postgres schema, the API types, the LLM prompts and the SSE streaming protocol.
78+
Rename one field and all four fail in CI. Apache&nbsp;2.0.</p>
79+
<p class="proof-links">
80+
<a href="https://metaobjects.com/case-studies/wizardsofodd/">Read the case study&nbsp;&rarr;</a>
81+
<a href="https://wizardsofodd.com">wizardsofodd.com</a>
82+
</p>
83+
</article>
84+
<article class="proof-card">
85+
<p class="proof-tag">Python + TypeScript &middot; production</p>
86+
<h3>Draagon AI</h3>
87+
<p>From 17 runtime <code>ALTER TABLE</code> patches to zero. One ~5,000-line YAML
88+
spine generates ~19,600 lines of drift-checked Python and TypeScript &mdash; 44
89+
entities and 106 LLM prompts declared once, on the published packages.</p>
90+
<p class="proof-links">
91+
<a href="https://metaobjects.com/case-studies/draagon-ai/">Read the case study&nbsp;&rarr;</a>
92+
</p>
93+
</article>
94+
<article class="proof-card">
95+
<p class="proof-tag">The small-adoption case</p>
96+
<h3>Roxy</h3>
97+
<p>Not every adoption is a rewrite. An existing Python voice assistant took exactly
98+
two pillars &mdash; prompts rendered from typed payloads, Postgres schema owned by
99+
the CLI &mdash; in about seventy lines of metadata, and left the rest of its
100+
codebase alone.</p>
101+
<p class="proof-links">
102+
<a href="https://metaobjects.com/case-studies/roxy/">Read the case study&nbsp;&rarr;</a>
103+
</p>
104+
</article>
105+
</div>
106+
<p class="proof-caveat">
107+
Every project here is maintainer-owned &mdash; MetaObjects has no independent adopters
108+
yet, and saying otherwise would be the fastest way to lose the readers who check.
109+
Wizards of Odd is Apache&nbsp;2.0 and clone-and-run, so you can verify these claims
110+
instead of trusting them.
111+
<a href="https://metaobjects.com/case-studies/">All case studies&nbsp;&rarr;</a>
112+
</p>
113+
</section>
114+
69115
<!-- Introduction video -->
70116
<section class="intro-video" id="introduction-video">
71117
<h2 class="section-label">Watch the introduction</h2>

www/story.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -73,7 +73,7 @@ <h1>25 years private. Now open.</h1>
7373

7474
<p>I never marketed it. For 25 years it was my unfair advantage — how I shipped fast and kept systems consistent as they grew. The same substrate shipped a Salesforce-integrated secure-messaging platform, a credit-card processing gateway, and a high-uptime online poker system. It ran <strong>pharmaceutical regulatory software</strong> at enterprise scale, customized per customer by overlaying metadata — no code changes. One approach became a <strong>US patent</strong>. It just quietly did its job.</p>
7575

76-
<p>By 2022 I set it aside. I was running engineering organizations — architecture, M&amp;A diligence, building leaders — not shipping or refactoring code, which was the whole point of the tool. And low-code platforms like Boomi and OutSystems looked like they'd productized the idea. They had — except for the part where you <strong>own your runtime</strong>. MetaObjects always generated code you own, with zero dependency on it. Throw the platform away and your code keeps running.</p>
76+
<p>By 2022 I set it aside. I was running engineering organizations — architecture, M&amp;A diligence, building leaders — not shipping or refactoring code, which was the whole point of the tool. And low-code platforms like Boomi and OutSystems looked like they'd productized the idea. They had — except for the part where you <strong>own your runtime</strong>. MetaObjects always generated code you own, with zero dependency on it. Throw MetaObjects away and your code keeps running.</p>
7777

7878
<p>Then AI arrived, and I watched it generate beautiful code that <strong>drifted</strong>: locally perfect inside each prompt, globally inconsistent across the system. Different field names for the same concept. Types that diverged at every boundary. Plausible APIs that didn't quite exist. The vendors didn't fix it. That's when I realized I'd been looking at the wrong problem in 2022. The job was never <em>generating</em> code — it was keeping it <strong>coherent as a system grows</strong>. Metadata is that missing spine, and AI turns out to be a far better consumer of metadata than humans ever were.</p>
7979

www/styles.css

Lines changed: 55 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -223,6 +223,61 @@ h1, h2, h3 {
223223
.pillars-grid { grid-template-columns: 1fr; }
224224
}
225225

226+
/* ============================================================ Proof band */
227+
.proof-grid {
228+
display: grid;
229+
grid-template-columns: repeat(3, 1fr);
230+
gap: 1.5rem;
231+
}
232+
.proof-card {
233+
background: var(--light-gray);
234+
border: 1px solid var(--rule);
235+
border-top: 3px solid var(--accent-gold);
236+
border-radius: 0 0 8px 8px;
237+
padding: 1.5rem;
238+
display: flex;
239+
flex-direction: column;
240+
transition: box-shadow 0.3s ease, transform 0.3s ease, border-color 0.3s ease;
241+
}
242+
.proof-card:hover {
243+
transform: translateY(-2px);
244+
box-shadow: var(--shadow);
245+
border-color: rgba(212, 175, 55, 0.35);
246+
}
247+
.proof-tag {
248+
font-size: 0.72rem;
249+
font-weight: 700;
250+
letter-spacing: 0.1em;
251+
text-transform: uppercase;
252+
color: var(--medium-gray);
253+
line-height: 1.4;
254+
min-height: 2.8em; /* two lines, so the h3s align across cards */
255+
margin: 0 0 0.4rem;
256+
}
257+
.proof-card h3 { font-size: 1.15rem; font-weight: 700; margin: 0 0 0.5rem; }
258+
.proof-card p { margin: 0; font-size: 0.93rem; line-height: 1.6; color: var(--dark-gray); }
259+
.proof-links {
260+
margin-top: auto;
261+
padding-top: 0.9rem;
262+
display: flex;
263+
flex-wrap: wrap;
264+
gap: 0.25rem 1rem;
265+
font-size: 0.88rem;
266+
}
267+
.proof-links a { font-weight: 600; }
268+
.proof-caveat {
269+
margin: 1.5rem 0 0;
270+
max-width: var(--reading-width);
271+
font-size: 0.9rem;
272+
line-height: 1.65;
273+
color: var(--medium-gray);
274+
}
275+
.proof-caveat a { font-weight: 600; white-space: nowrap; }
276+
277+
@media (max-width: 800px) {
278+
.proof-grid { grid-template-columns: 1fr; }
279+
}
280+
226281
/* ============================================================ Implementations table */
227282
.impl-table {
228283
width: 100%;

0 commit comments

Comments
 (0)