A field report, not a tutorial
Claude in Production
Nine systems that run five websites, and the six ways they broke. Written by someone who ships with it every day, not someone demoing it.
00Why this exists
Almost everything written about AI and content is written by people selling the writing of it. Prompt packs, tip threads, “10x your output.” Very little of it comes from someone who has to live with the output on Monday morning, on a site that earns money, in front of an audience that notices.
I run an ad-funded publishing business — five websites across crafts, food and home, plus a business title. I have been publishing on the internet since 2007. For the last two years almost every operational system in that business has been built with Claude: the content pipeline, the image rendering, the schedulers, the migrations, the audits.
This is what is actually running, what it replaced, and — the part nobody publishes — the six times it went wrong while reporting success. No prompts to copy. The useful part was never the prompts.
01The stack
Nine systems, all in daily use. For each: what it does, and what it honestly cost to get there.
Article production
Outlines, structure, metadata and first drafts at volume across a 1,500-post library. Every piece is read before it ships — the draft is the cheap part.
Replaced: the blank page, not the editor. Still needs a human to decide what is worth the slot.
Image rendering at scale
A local renderer producing brand-consistent Pinterest pins and social slides from a text file. Over a thousand images for one site alone, all identical in brand.
Replaced: a design tool and the hours in it. Took three rewrites to get typography that survives a long headline.
Multi-platform scheduling
One script fills four platforms from one article pool — rotating the image, enforcing a cooldown so nothing repeats, and topping each day up rather than dumping a week into the queue.
Replaced: a paid scheduler and most of the manual queueing. See failures 3 and 4.
Bulk SEO repair
Meta descriptions written from each article’s own prose, at library scale — from 38% coverage to 98.5% on one site, and 1,533 pages that had none at all restored on another.
Replaced: a job I would simply never have done by hand. The single highest-value thing on this list.
Taxonomy and category rebuilds
Collapsing sprawling category trees into a navigable structure, rewriting archive metadata, and keeping every ranking URL alive through the move.
Replaced: a consultant. The hard rule: a URL with traffic is never deleted, only recategorised.
Server migrations
Five websites moved from managed hosting onto my own server in eight days — database, media, DNS, mail, the lot.
Replaced: a hosting bill several times larger. Six things broke. All six were mine.
Title and metadata hygiene
Auditing thousands of titles for inherited junk: bracket prefixes on 2,069 of them, corrupted characters on another 203, all fixed without disturbing the ones already ranking.
Replaced: nothing — this work simply never happened before. Never retitle a page that is already ranking.
Video channel restructuring
Reducing thirty overlapping playlists to thirteen on a 161,000-subscriber channel, each merge preserving the view history of the strongest survivor.
Replaced: a job I had postponed for two years. Success metric is median views on new uploads, not subscribers.
Diagnosis from raw exports
Reading analytics, search console and platform exports to find the actual bottleneck instead of the visible one. This is where the surprises live.
Replaced: guessing. It is also how I found out I had been wrong for two years about why a site collapsed.
02The six failures
Every one of these reported success. That is the whole point of including them — none showed up as an error, so none were caught by looking at the logs.
One article published four times in an afternoon
An automated task ran repeatedly and shipped the same piece four times, with dead outbound links in all four copies. Every run reported success, because publishing is exactly what it was told to do.
Lesson: a job with no memory of its own previous run is not automation, it is a loop.
Every emoji became a question mark on 35 live posts
A character-encoding mistake meant non-ASCII characters were mangled on the way out. No error, no warning. The posts went out reading “?? Free pattern ??” to a few hundred thousand people.
Lesson: the failures that reach an audience are the silent ones. Check the output, not the exit code.
A scheduler that kept repeating itself
Content looked like it was cycling too fast, which read like a bug in the rotation logic. It wasn’t. The pool it drew from held thirty articles, not three hundred. The logic was correct; the arithmetic was never checked.
Lesson: before debugging behaviour, count the inputs.
A limit I read as one thing and was another
A scheduling cap kept rejecting posts and I treated it as a limit on how much could be published. It was a limit on how far ahead anything could be queued. Same number, completely different fix — post the same volume, just schedule two days out instead of seven.
Lesson: when you hit a ceiling, work out which dimension it is actually measuring.
A test that proved nothing
To check whether a posting integration worked, I submitted test posts dated three months out, intending to delete them. Each returned a success response with an ID. None of them ever existed. I had “verified” a capability on the strength of a reply that only confirmed the request had been read.
Lesson: a 200 is not a result. Verify the thing you care about, not the acknowledgement.
Correlation I recorded as cause
A traffic collapse coincided with introducing a tool, so I wrote the tool down as the cause and moved on. Later I found thirteen different applications held write access to that account, any of which could have done it. The conclusion was convenient and unproven.
Lesson: write “coincided with” unless you have genuinely isolated the variable. Especially when the story is satisfying.
03The five rules
Everything above compresses to this — the rules I would hand someone starting to run a real business on AI tooling.
-
Automate the work, never the checking.
The moment the verification step is also automated, you have built something that can fail confidently and at scale.
-
“It ran without errors” is not “it did the right thing.”
Every failure above reported success. That gap is where the entire discipline lives.
-
Define done before you automate.
If you cannot write down what a correct result looks like, you are not ready to automate it — you are ready to do it by hand once more and pay attention.
-
Ship exactly what you reviewed.
If the process that generates a plan has any randomness in it, save the plan. Regenerating at execution time means approving one thing and shipping another.
-
Leverage multiplies whatever you point it at.
When making something costs almost nothing, you make a great many things nobody needed. My best year came from publishing less.
The Momentum Letter
One workflow, one traffic idea, one monetization lesson, one useful tool — from a publishing business that actually runs on this stuff. Written the same way this was: numbers included, failures included.
Free. Unsubscribe whenever.