Content Platform
State of the Art
The quantitative picture. Every claim traced to a source. What we build, what we assert, and where the gaps are.
Key Metrics
These are the numbers that define the pipeline's health. Some are measured from production data. Others are asserted from code analysis. The distinction matters.
5 pipeline stages
LINT → SCAFFOLD → ENRICH → STYLE → SNAPSHOT. Each stage is independent, testable, and produces a diffable artifact on disk.
Zero runtime dependencies
Output is a single .html file with all CSS embedded. No JavaScript, no CDN, no build tools required at runtime.
12 / 12 tests passing
Full integration test suite covers all 5 pipeline stages. Status — measured. Threshold — green.
1 theme, infinite pages
The ink theme applies to any content structure via semantic roles. Same CSS, any content, always correct.
Convention over config
Drop a YAML file in the project directory. Navigation is auto-injected. Output paths are derived. Nothing to wire.
Cloudflare Pages deploy
One tool call deploys every page as a single project. MD5-based deduplication — only changed files are uploaded.
Pipeline Architecture
Each stage of the pipeline is a pure function with a defined input and output artifact:
- LINT — Parse YAML into a typed
PageSchema. Validate required fields, section types, and semantic axes. - SCAFFOLD — Walk the schema and build a classless
RenderNodetree. Each component has a dedicated.data.tsand.scaffold.ts. - ENRICH — Resolve semantic roles (
hero-heading,btn-primary,feature-card) and layout hints (layout-3col,width-narrow) into CSS class names. - STYLE — Generate theme CSS and serialize the
AnnotatedNodetree to HTML. Inline everything into a single<style>block. - SNAPSHOT — Capture a full-page screenshot using headless Chromium for visual regression testing.
Every stage writes its output to disk. Intermediate artifacts are inspectable, diffable, and independently reproducible.