2026 — ongoing
Cattle
A publishing engine that turns one long-form essay into versions for different audiences — children, teenagers, academics — and ships each as its own site.
Private repository — the writing here describes the approach rather than linking to code.
- TypeScript
- LLM transformation
- Astro
- SQLite
- Vercel
An essay written for one audience is wasted on every other. Cattle takes a piece of long-form academic markdown and produces versions pitched at children, teenagers, young adults, a general reader wanting the short version, an academic reader, and a newsletter audience — then builds and deploys each as a static site.
The transformation instructions are the real deliverable, not the transformed text. That is the idea the whole system is built around. Any model will rewrite an essay for a twelve-year-old if you ask it nicely once. What is hard, and what is worth owning, is a set of instructions stable enough that running them again next month produces the same thing. So the system is designed to move from iterative human-in-the-loop transformation towards a deterministic publish pipeline, with the instructions as the artefact that matures.
Each project is independent — its own content directory, its own site cache, tracked in a central registry. The pipeline has provider-independent model access, strict schema validation on every structured output, structural chunking, content-addressed caching so unchanged input is never paid for twice, cost controls, and a large automated test suite.
It supersedes an earlier attempt called Catalyst, which taught me mainly that the orchestration belongs outside the prompt.
Direction
The higher-level research and writing workflow is moving towards agents, with the specialised TypeScript pipeline kept as separate, testable code those agents call as tools. Keeping the domain logic out of the prompts is the point: a prompt is not a place to put something you intend to test.
The repository is private while the direction settles.