Most "we let AI build our marketing" posts show you the finished site and ask you to take the effort on faith. We would rather show you the log. On the night of 3 July 2026, on a UK property platform we run ourselves, we set an AI agent loose on a marketing build with nobody watching, and every commit gated on the product's own type checks, test suite, and production build. This is what that night actually looked like, and what was still standing by morning.
The anchor, written before anything else
Nothing shipped that night that was not written down first. Before the run started, we wrote a short brief, a vision anchor, describing what the marketing surface needed to become: which competitor to study, which kind of tools were worth building, what a blog post on this platform should sound like, what counted as done. The agent did not get to invent the goal as it went. Every commit had to trace back to a line in that document, and if it did not, it did not ship.
This matters more than it sounds like it should. Unattended AI work drifts. Left to its own judgement across a long session, a coding agent will happily wander from "build a keyword tool" to "redesign the navigation" to "add a feature nobody asked for," each step individually reasonable, the sum incoherent. A written anchor is the thing that stops that. It is not a prompt, it is a contract the agent has to keep checking itself against.
The gate on every commit
The second piece is less glamorous and does more work: nothing landed without passing the product's own checks. Type checking, the full test suite, a production build. Not a lint pass, not a vibe check, the same gate a human engineer has to clear before merging. A commit that failed any one of those three did not exist as far as the codebase was concerned. It got fixed or it got dropped.
That sounds obvious until you consider what it rules out. It rules out the AI shipping a broken page because it looked fine in the browser. It rules out a calculator tool with a silent maths error, because a test would have caught it before the commit landed. It rules out the failure mode most people actually worry about with autonomous AI work, which is not that it does something malicious, it is that it quietly does something wrong and nobody notices until a customer does.
What the night actually built
Working through darkness against that anchor, the run moved through a sequence of concrete jobs rather than one big undifferentiated task. It read the category leader's site by hand, page by page, and produced a teardown with an adopt, adapt, or skip verdict on every feature it found, no invented statistics about the competitor, just what was actually observable. It built a keyword opportunity matrix the same way, from live search results, mapped to specific pages worth building rather than a generic list of terms.
Then it built. Free calculator tools, each one reusing the platform's own already-tested calculation engines rather than reimplementing the maths from scratch, each one shipped with its own structured data so search engines could read it properly. A full blog platform on top of MDX, with the sitemap, robots file, and llms.txt all generated from a single route registry rather than hand-maintained in three places that inevitably drift out of sync. And, in a detail we are fond of, the run wrote a test that bans an AI writing tell, the em dash, from ever appearing on a marketing page again, so the tool that had just spent all night writing copy also left behind the thing that checks its own writing for the rest of us.
By the time the overnight window closed, git history shows 101 commits landed between the evening the run started and the following one. Not 101 attempts, 101 that cleared the gate and stayed.
What was true by morning, and what we checked afterwards
The morning after is where most of these stories stop, with a screenshot and a claim. We keep going, because the honest question is not "did it look done," it is "did it hold up when we re-ran everything ourselves." So we did, and we keep doing it. Re-running the platform's suite today shows 1,400 tests passing, and a clean production build produces 186 static pages. Neither number is quoted from a log, both came from running the commands ourselves before this post went out.
The overnight run was the start of a build that kept compounding rather than a one-off stunt. That same codebase has taken 706 commits across 27 active days since work began, and today carries 16 free tools and 68 articles live on the site. We did not cherry-pick the best morning and stop measuring. The commit history and the file counts are still there to re-check, and the full breakdown, including which commits carried the founder's own author line versus the agent's, is on the case study page rather than buried in this post.
We are also honest about what a night like this does not do. It does not replace a human deciding what the business should say about itself, that decision happened in the vision anchor before a single commit landed. It does not catch every judgement call a person would make differently, some of what shipped that night got revised in daylight once a human looked at it with fresh eyes. And it does not work without the gate. Remove the type check, the test suite, or the build step from that loop and you no longer have an overnight marketing engine, you have an unattended process writing directly to production, which is a different and much riskier thing.
Why we are showing you the log instead of the result
The reason we are publishing the commit log rather than just the finished pages is that the log is the actual product. Anyone can point an AI model at a website brief and get something that looks plausible by sunrise. What is hard, and what we think is worth paying for, is the scaffolding around it: an anchor specific enough to hold the work to a target, and a gate strict enough that nothing gets to skip the checks a careful human engineer would run anyway. That scaffolding is what we install when we run a marketing function for a client, not a one-off demo night.
If you want to see the full breakdown, including where the numbers came from and how we re-derive them, the write-up lives on our case studies page. And if you are wondering what a night like this would look like against your own marketing function, the way to find out is the free audit, not a sales pitch, a straight look at what we would actually build first and why.