We Handed a Client a Website With No CMS. Two AI Agents Run the Blog.
The owner of this website has never logged into it. There is nothing to log into: no CMS, no plugins, no passwords, no content retainer. He publishes by reading a draft and saying yes, and the post is live about 3 minutes later.
We built and handed over the site in under two weeks, for a live-commerce enabler, a company that runs TikTok Shop operations for consumer brands. The unusual part is not what we built. It is what we deliberately left out, and what we put in its place.
The actual problem was never the website
The client asked for a website with AEO: answer engine optimization, so AI assistants like ChatGPT and Perplexity quote the company when a brand asks who can run live commerce for them.
But a site only gets quoted if it publishes evidence, and this is where every services company fails. The owner has real results every week: live session numbers, sell-through rates, problems solved. Nobody in the building has time to write them up. The default answer is a WordPress site plus a content retainer, and a blog that dies after four posts.
So the real requirement was not pages. It was a publishing system that runs on the owner's actual operations, at the cost of one decision per post.

Why we removed the CMS
The site is built on the same modern stack product companies use, and every file of it sits in an account the client owns outright. Blog posts are plain text files. An approved post publishes itself, live in roughly 3 minutes, with a full history of every change ever made.
What this removes:
The attack surface. Patchstack logged 7,966 new WordPress vulnerabilities in 2024, and 96% of them were in plugins. This stack has no plugins. There is nothing to patch on a Tuesday night.
The hostage situation. The client owns every file: every page, every post, every line of history. If they fire us tomorrow, they keep everything and any developer can run it.
The rendering problem. Every page is pre-rendered. AI crawlers and search engines get complete HTML instantly, with structured data, a sitemap, an RSS feed, and an llms.txt brief that all regenerate on every deploy. AEO is not a plugin you install. It is how the site is built.
The publishing system: two agents and a gate
Instead of a CMS, two AI agents live inside the website itself.

The Story Radar reads the company's real operations data and proposes story candidates. Not content ideas. Events that already happened, with the numbers attached.
The Publishing Agent drafts the post and takes it to the owner for approval. It is number-gated: if the week produced no verifiable result, it says "nothing worth publishing this week" rather than manufacture an angle. Research on generative engine visibility (the GEO paper, KDD 2024) found that adding statistics and citations lifts a page's visibility in AI answers by roughly 40%. A post without a number is not just weak marketing. It is invisible to the machines it was written for.
The owner's entire job is the decision. Read the draft, yes or no. Approval happens where he already works, and a yes is live in minutes.
The taste loop
Here is the part we think matters most. Every yes and every no is logged to a taste file with the owner's reason, word for word. The Story Radar reads that file before proposing again, so every rejection makes the next pitch more like him.
The taste file sits next to the hard rules, and they never mix:
| Hard rules | Taste | |
|---|---|---|
| Examples | No real number, no post. Partner brands anonymous by default. Draft first, always. | Which stories he picks. What he kills at preview. The words he crosses out. |
| Can it change? | Never. No amount of approvals erodes it. | Learns from every decision. |
| Who owns it | Set once, enforced by the system | The owner, one yes or no at a time |
A rule that can learn is a rule that can be talked out of. So the rules stay frozen and only the ranking learns. We distill the accumulated taste into standing guidance monthly, by hand.
The handover
After go-live comes a 90-day stabilization window. About halfway through writing the handover we noticed what that window actually is: a training period. Every week it runs, the taste file grows. What we hand over at day 90 is not just a stable site. It is a documented profile of how this owner decides what is worth saying in public, which no agency retainer produces at any price.
What we cannot claim yet
The site went live on its production domain this week. AI-assistant citations and organic traffic take months to compound, and the measurement window runs 90 days. Until those numbers exist, we are not claiming them. On a site whose whole premise is "no number, no post", the case study plays by the same rule.
The playbook
For any services company whose proof lives in operations data nobody publishes:
- Own the asset. Every file of your site in your own account, portable, no platform lock-in.
- Remove what you cannot maintain. Every plugin is a liability with a login page.
- Wire the blog to real data. Stories come from operations, not a content calendar.
- Gate on numbers. No verifiable result, no post. AI assistants quote evidence, not adjectives.
- Freeze the rules, train the taste. Boundaries never learn. Ranking always does.
- Make approval the whole job. The owner's judgement is the scarce input. Spend it on yes or no, not on writing.
Related: We Handed Our Automation System to a Non-Technical Operator, the same principle applied to Google Ads tooling.
Want your operations data to become the marketing? Get in touch.