Olivier's Tinker Lab
§ Build

I built a website with AI, on top of a real CMS

A practical test of using AI agents with EmDash to build and maintain a real CMS-backed website, while keeping a human control surface and avoiding disposable AI-generated sites.

May 22, 2026 ·updated June 6, 2026 ·7 min read

AI can build you a website now. That's the line, and the demos back it up. Type a description, watch a finished-looking site assemble itself on screen. It's a good trick, and also the easy half of the problem, because the recording always stops right before the hard half starts.

Building it once is the smallest part of the job. What actually takes the work is everything after launch, because a real site never sits still. New posts go up, a section gets renamed, a price moves, a clumsy sentence needs fixing at 11pm without opening a code editor. The demo hands you a perfect-looking snapshot and cuts to applause. Then ordinary life begins, and ordinary life is one long string of edits.

So the question I keep turning over is smaller and more stubborn. Can an agent build me something I can still run by myself a year from now? That's what I've been testing, on the site you happen to be reading this on.

Two bad options

I keep landing in the same trap, stuck between two things I don't want.

On one side, WordPress. I still run it, and not out of affection. It's creaky, slow and built for a web that existed before agents did. What it gives me is a back door I own: content types, an admin screen, themes, plugins, a way to change the site on a Tuesday afternoon without tearing it down and starting over.

On the other side, the AI-generated sites. Quick to conjure and then a nightmare to touch. They dazzle in the reveal and freeze solid the instant a real business needs a new content type or a corrected headline and has no developer on call.

So each option taxes me somewhere. WordPress hands me the controls and makes me crawl. The AI sites run at full speed and quietly take the controls away. What I want is the pairing neither one offers: built as fast as the demo, and still completely mine to run afterward.

Why EmDash

EmDash is a new open-source CMS from Cloudflare. It takes the parts of WordPress that earn their place (structured content, themes, plugins, a real admin interface) and rebuilds them on a modern stack: TypeScript and Astro. It runs serverless on Cloudflare, though it's not bolted to it, so you can host the pieces elsewhere.

It's not that EmDash matches WordPress feature for feature, because it's early and it doesn't, but the architecture underneath is genuinely promising.

EmDash is built for agents to operate, not only humans. It ships a built-in MCP server, a command-line tool and what it calls Agent Skills, which are basically instructions that tell an agent how the system works and how to change it. A normal CMS gives a human an admin panel and stops there. This one gives an agent a real way to work inside the same system.

Two details sold me. EmDash was itself built by AI agents, in about sixty days. And every plugin runs sandboxed with its own explicit permissions, which closes the hole that's made WordPress a security headache for twenty years. Both of those tell me it's a serious piece of engineering, not a weekend demo dressed up as a product.

The whole idea, for me, comes down to one line: use AI to build and run the site without making the site depend on AI to stay alive.

The human still needs a steering wheel

Agents are non-deterministic. They won't do exactly what you asked every time, and anyone who tells you otherwise is selling something. They make mistakes, the same way a human would, and most of those I can live with. The part that actually worries me is different: an agent making a change I then can't reach in and correct.

Here's what that looked like. Early on, I asked an agent to set up some content. Instead of using EmDash's tools, it took a shortcut. It wrote straight to the database and hardcoded a few things into the code. The page looked right. But because it had gone around the CMS, none of it was editable in the admin panel. The result was correct and completely stuck. I had to send the agent back to redo it through EmDash's actual tools.

claude-code-removes-hardcoded-menu-items2_opt.jpg

Claude Code fixes nav menu items that are hardcoded and make them CMS-managed.

That small failure is the whole argument. The agent did the job and, without meaning to, broke the one thing that matters to me, my ability to change it later. The CMS is what hands me back the wheel. An agent-native CMS has to hand the agent one too, so it stays on the road to begin with.

These days I fix the small stuff myself, straight in the CMS. Headings, titles, a taxonomy I changed my mind about. I don't have to. I do it because it's faster and I like seeing exactly what I'm changing. That control surface is something I actually rely on week to week, not a feature I noticed once and forgot about.

What I did, and what I didn't

Honest version: the agents did almost everything. Claude designed the site. Codex built out the content types and taxonomies. Agents wrote the copy, including drafts of posts, and handled publishing through the CLI.

What I kept for myself was the thinking. I decided the structure, came up with the content types and the taxonomy, then handed them over to be implemented. And I directed every step, closely, checking the output and sending it back when it drifted. I'm still prompting my way through the whole thing. The methodology I'm using to write this very article, the one shaping these sections, is itself the current experiment.

My AI agent Marcel, running on Hermes, just published this article.

My AI agent Marcel, running on Hermes, just published this article.

I'm not going to dress this up as full automation, because it isn't. The time savings are already real in places. The design took twenty, thirty minutes with a few iterations, against the several days it would have eaten by hand. Standing up the site itself, database and code and all, was half an hour instead of an afternoon. On the writing, no time saved yet. I'm pouring hours into a process that should pay off later, and I'd rather say that plainly than pretend the gains are already everywhere.

Why it matters

If this becomes repeatable, it matters for anyone who needs a website they can actually keep.

For a small business the value is obvious. A real site still feels expensive, and most of that cost is the dull work around it: design, structure, copy, endless revisions, upkeep. This isn't only a small-shop problem, though. Bigger organizations want the same things. Lower cost, faster changes, fewer technical bottlenecks, a site that bends as they do.

AI should be able to help there. The version worth wanting is real websites that people and organizations can still own and run themselves, the kind that survive past launch week, not another batch of pages that look great for exactly seven days.

I don't know yet whether this fully works. I'm still tinkering, still correcting, locking the process down by hand before I try to make it repeatable. But it's the first version I've found that feels like it's testing the right problem. And if you want to see how far it's gotten, you're already looking at it.

§ More builds
BUILD

OpenClaw Ops

A set of configuration, safety, and validation patterns for running agentic systems with less mystery and fewer footguns.

BUILD

Dispatcher

A practical orchestration layer for triaging inbound tasks, generating issues, and handing implementation off to the appropriate agent or toolchain.