zudo-composer
GitHub repository

Type to search...

to open search from anywhere

What Is zudo-composer

A concise introduction to zudo-composer and the authoring problems it solves.

Overview

zudo-composer is an installable, local-first Preact authoring tool. A host project installs the package, supplies a zudo-composer.config.ts, and runs the development server against the host's own files. The tool has no content application of its own: its job is to provide the authoring products and the runtime boundaries that turn host-owned records into a preview or a static site.

Ownership boundary

The durable boundary is between the tool's models and behavior and the host's code and data. All five authoring domains write through the shared TransactionalRecordStore, but the roots are selected by the host's config.

Surfacezudo-composer ownsHost project owns
ComposerComposition document model, source generation, reuse rules, editor chrome, preview renderer, and the same-origin iframe protocolComposition records and the component pack they reference
Content / EntryContent model, Entry library, and authoring UIContent models and Entry records
MappingBinding model, resolver, preview handoff, and authoring UIMapping records in the host's CMS tree
SitemapperPage-tree model, library, authoring UI, and the catalog integration that resolves saved Composer recordsSitemap records and the host's authored page tree
AssetsAsset metadata model, library route, upload and delivery boundaries, and the content-addressed storeAsset bytes and metadata under the configured assetsDir, plus committed delivery bytes under publicAssetsDir
ComponentsThe component-pack contract and the loader for the configured pack module specifierComponent code, reached through the host package's exports self-reference or an installed themeset package; a component path is not a valid pack
TemplatesThe Composition and reuse semantics for a global templateTemplate data: a Composition with publication.kind: "global-template", stored under compositionsDir; there is no templates directory or template file format
CMS dataThe four domain formats and their filesystem providersThe four JSON domains plus Assets, rooted by dataDir and assetsDir

The distinction matters when a host changes its provider or theme: the tool does not copy components into the host and does not fall back to a bundled pack. The repository's @zudo-sg/ui installation is an ordinary component pack used by the dogfood host. Another themeset satisfying the same contract can replace it by changing the host's pack value and stylesheet import.

Authoring and delivery routes

The development server uses Vite base /. The authoring routes are the tool's stable surface; delivery routes are either a local activated release or a verified static artifact.

SurfaceRouteResponsibility
Authoring/Standalone product landing page
Authoring/composerComposer library and editor
Authoring/composer/previewIsolated, same-origin Composer preview document
Authoring/contentContent model and Entry authoring
Authoring/mappingContent-to-Composition binding authoring
Authoring/sitemapperSitemapper library and editor
Authoring/assetsAssets library and upload/delivery status; upload authoring is local-development only
Delivery/siteActivated host SiteProject in the development server
Delivery/ and the site's pathsA static host website built from dist-site; the route set comes from its verified site-manifest.json, not from the installed tool contract
Delivery/assets/Build-emitted JavaScript, CSS, and the focused render WASM/glue
Delivery/uploaded-assets/Committed images and PDFs from the host's publicAssetsDir

The /composer/preview route is an implementation boundary rather than a second public product. Likewise, /site is local release delivery; a static build serves the host website from its artifact root, where / is the site's entry route.

Revision History

CreatedUpdated