Blog

Every page gets a share card the platform draws

Every page gets a share card the platform draws

Publish a page and its social share card is already made. Branded with the site's logo, colours and fonts, drawn from the page's own data rather than screenshotted from it, and redrawn in page settings as you type the title and description. It chooses its image by an explicit rule, so the same page produces the same card every time.

What one person actually built

A normal company assembles a team and thirty-odd SaaS subscriptions to run a platform like this. This one is one person, one integrated system, built in eight months: 505 operations across 346 paths, nine independently deployed services, sixteen Google Cloud services, two SDKs, four platforms. This is every piece of it and how it fits together, the census that proves it was built solo. The breadth is the argument.

Every deploy writes its own changelog entry

Every deploy writes its own changelog entry

A deploy finishes and the platform files a changelog entry for it. Brain reads the commit the last entry ended on, takes the range up to the one just deployed, resolves each commit to the pull request that carried it, and drafts from that. The version is the build number, not a release somebody named. Nobody writes the entries and nobody edits them.

Reading an SDK to write its docs

A company with an API has two documents to keep. The reference is mechanical. The SDK docs are the product, and the one companies most often neglect. This platform generates them backward, a model reads the real SDK source, maps each method to its endpoint, writes runnable TypeScript and Python examples that thread the calls together, and keeps it current as the library moves. A template runs forward and cannot do it. Only comprehension can.

Surgical fixes in agentic pipelines

An agentic pipeline builds a large structured object through a tree of nested sub-agents. When the auditor flags one bad property, regenerating the whole object is the most expensive fix there is, and it re-rolls every call in the tree. A surgical fix regenerates just the flagged part and inserts it in place, leaving what was already correct alone. It works because the block editor was chosen on the theory that structured data holds up better under machine editing than prose does.

Hot reload was killing ten-minute jobs

Some of the work this platform does takes ten to fifteen minutes, a model building a page across many steps. Hot reload killed every one of those jobs the moment I edited a file. The reload turned out to be a free reproduction of a production failure the job system had not been built for, because a job holding its state in memory loses it to any process death whatever caused it. Moving the work into a durable Redis-backed queue made the job survive all of them, and the dev cadence came back with it.

The contract an agentic job runs on

A customer describes their business and gets an editable website back, and thirty-eight generative steps run between the request and the response. No deterministic code repairs the objects between those steps, because that repair layer was deliberately removed. What holds the pipeline together is a contract, a running state machine that declares every step, checks the schema at entry, and freezes the state it carries so it cannot reshape what an agent wrote. A violation throws rather than getting quietly patched, which is what makes retry and a narrower repair possible.

Why I switched from a polylingual stack

For the first few months the backend was written in two languages, Python for the file processor, AI service, error tracker, and MCP server, and TypeScript for everything else. Over about a week in May I rewrote all four in TypeScript. The Python advantage for the deterministic media work turned out to be imaginary, and the second language was charging continuously at the schema generation step, in a duplicated test layer, and in the contracts between services.

Rules cannot govern creative work

One day in May I deleted the rule layer from the part of the platform that builds websites, and the pages it produced afterward were better. A deterministic rule needs a bounded set of cases to be right about and a creative model's output is not bounded, so the rules never finish covering it and the only thing they reliably produce is conformity. A model now reasons out what a page says, what a customer's next email should be, and whether there is any work worth doing at all, and the code that is left moved to the edges to carry out what it decides.

A chat on your site that only says what you have published

A chat on your homepage could answer every visitor who turns up with a question, in your voice, at any hour. Most companies do not put one there, and the reason is not the cost. It is one wrong answer. This one answers out of your own published material, carries the sources it drew on, and tells a visitor plainly when your material does not cover what they asked. It knows the difference between your pricing and a competitor's, so it will never put their number in front of your customer as yours.