Export · #418
The catalog as data
289 components and 116 prompts with the fields the site stores: kinds, stacks, licences (289 MIT), bundle sizes, audit and editorial scores, tags, versions — plus 457 prompt runs across 3 models. This is the same object the pages render from, serialised.
Components
289
with kind, stack, licence, size and scores
Prompts
116
with 457 runs and the models that produced them
Score fields
2
a11y and editorial quality, per component
Source code
0
not stored, so not exported
First 32 lines of the file (197.0 KB total)
{
"$description": "Motif UI catalog metadata — what the site stores about each asset.",
"$generated": {
"components": 289,
"backgrounds": 33,
"prompts": 116,
"changelogEntries": 34,
"note": "Scores, bundle sizes and licences are the stored values. Component source code is not part of this export, because the catalog does not store it."
},
"components": [
{
"slug": "prism-switch",
"title": "Prism Switch",
"kind": "element",
"stack": [
"React",
"HTML/CSS"
],
"license": "MIT",
"version": "1.2.0",
"bundleKb": 1.2,
"a11yScore": 98,
"qualityScore": 96,
"themeable": true,
"tags": [
"switch",
"toggle",
"gradient",
"dark"
],
"behaviors": [
"click",Why a metadata export at all
Because the alternative is scraping. Every score on this site is already published per asset; a JSON endpoint makes it checkable in a diff instead of in a screenshot. The prompt side carries the run counts and the model names, which is what a claim like “tested on three models” is worth without the log beside it.
The field that is not there
Component source. The catalog holds a demo key for each asset, not its implementation, so this export cannot contain code — and the 289 components it lists would look complete without that gap being stated. The copy button on an asset page is where source lives, one asset at a time.
116 prompts, 0 of them without a single run, are listed exactly as the data has them.