⚙ MILL · Content engine
Markdown in, living layouts.
MILL is a reusable content rendering engine. Feed it Markdown and images and it renders GRAIN pages. It's the content pipeline behind this site's docs and blog: write the prose, get real pages, no hand-built HTML. It sits above BATCH and GRAIN, an extension of neither.
Live · renders this site's docsThe idea
A layer above
The package depends on GRAIN. This portfolio supplies BATCH as its server and component composer; MILL can run with another host through the same ports.
Framework-agnostic core
The core walks Markdown through a render-adapter port. The default adapter emits GRAIN classes; a host can supply another adapter.
Frontmatter picks the layout
Frontmatter chooses a layout, and the adapter renders content blocks as semantic HTML. BATCH expands component tags in this portfolio's shell and raw component examples.
Live, then frozen
It renders live on BATCH while you write, and the static export freezes the result. Same content, two modes.
The design
MILL is the proof that BATCH and GRAIN compose into a real, reusable tool. The canonical design, the seams, the mapping model, and the build pieces are written up in the MILL plan that ships beside the code.
Where it sits in the stack
Part of the BREAD stack, alongside BATCH, GRAIN, PROOF, CRUMB, and PANTRY.
AI helps me write and review. I direct the work, test the result, and answer for what ships. How I work with AI →