File formats
Every Publish page kind and route kind — one tight pattern.
Page kinds (index.json → nav[])
| Kind | File | MIME | Demo | |------|------|------|------| | md | .md | text/markdown | This page | | csv | .csv | text/csv | /table | | page | .cms.json | application/vnd.myui.publish.page+json | /blocks | | txt | .txt | text/plain | /text | | json | page.json | application/json | /json |
Route kinds (index.json → routes[])
| Kind | MIME | URL | |------|------|-----| | jsonfeed | application/feed+json | /api/cms2/cms2/routes/feed | | jsonld | application/ld+json | /api/cms2/cms2/routes/schema | | json | application/json | /api/cms2/cms2/routes/demo |
Media in JSON (asset_ref)
Media lives in each page folder under media/. Reference with a relative path — bytes are never embedded in JSON:
{ "type": "media", "ref": { "path": "media/hero.webp", "alt": "Hero" } }
MIME is inferred from lib/cms2/concepts.json (images, video, audio, PDF, fonts, archives).
Domain tree
MyUI is the apex parent; each tenant is a child domain. Switch sites from the Sites menu or GET /api/domains.
Registry: db-blob/_tree/registry.json · canonical: content/domain-tree.json