New from Anthony Hayes: Aha Studio
Get found by the people searching for what you sell.

Build in Public · #11
I got up at 3am because the cats were fighting outside. By 10am I had been to the gym and found nine things that were quietly broken. Not one of them looked broken. That is the part worth writing about.
This is a follow-up to the post where I argued AI did not make me work less. That one was about quality. This one is about something I did not expect, and it took a strange morning to see it.
Here is the honest version of the morning. Cats woke me around 3am. I was not planning a productive day, I just could not get back to sleep. I opened two Claude Code chats, one for the website and one for the Chrome extensions, and worked both. I went to the gym somewhere in the middle. By 10am the list of things that had changed was longer than some of my old months.
But the volume is not the story. The story is what the work turned out to be.
Find this useful? Add us as a preferred source on Google and more of what we publish will show up in your results.
Nine things were broken. None of them looked broken.

I did not set out to fix anything. I set out to build. What actually happened was that I kept finding things that were already wrong, and had been wrong for a while, and had given me no signal at all.
- My website was invisible. Updates had not been showing for days. My team changed the homepage on Tuesday and nobody saw it. Not visitors, not me in a private window, not on a different machine.
- A product download had been broken since July. The zip file for one of my Chrome extensions was missing two files it needed. People who bought it were not getting an old version. They were getting one that would not install at all.
- An extension’s settings page belonged to a different product. Different name at the top, nine sections for features that tool does not have.
- Three extensions shipped the wrong README. All carrying documentation for a completely different tool.
- An opt-in form did nothing. The page looked perfect. WordPress had silently mangled the script behind it, so the button just sat there.
- Two landing pages had never been in my sitemap. Live for weeks, invisible to search.
- My build guard lied to me. It reported “all 8 files present” while one of those files was missing.
- Two of my tests were fake. They passed whether the code worked or not.
- A service I had not launched yet promised things I could not deliver. Fourteen sites on a list I was about to sell were places you simply cannot submit a link to.
Read that list again and notice the pattern. Every single one of those failures was silent. Nothing errored. Nothing turned red. No customer emailed me. The website looked like a website, the download link looked like a download link, the tests looked like passing tests.
That is what makes this class of problem so expensive. A loud bug gets fixed on Tuesday. A silent one just quietly costs you for a month.
The one that would have hurt most

The website cache was the worst of them, and it is worth explaining because I suspect a lot of people reading this have the same problem and do not know it.
My site sits behind three separate layers of caching. Each one was doing something reasonable on its own. Together they meant that when my team updated the homepage, the change went into the database, and then three different systems each kept serving the old version to everybody. I had checked in a private window and on my phone, which is normally how you catch this. It still showed the old page, because the layer holding it was not in my browser at all.
I had been about to start promoting the site properly. Forty-odd posts ready to publish, a services offer, a launch cadence. Every one of those updates would have gone out to an audience that could not see them. I would have concluded my content was not landing.
It took about an hour to trace and fix, and it is now permanent: every save purges everything automatically. But the thing I keep thinking about is that I only found it because I got suspicious about a homepage hero that looked stale.
What I actually did with the new capacity

Here is the reframe, and it is the point of this whole post.
When people talk about AI making you faster, they mean making things. More posts, more tools, more code. That is real, and I have leaned on it hard. The scorecard shows what a month of it looks like.
But this morning almost none of the value came from making. It came from checking. From having enough capacity spare to ask “is this actually true?” about things I had already shipped and already believed were fine.
That is a genuinely different use of the leverage, and I do not think it gets talked about, because it does not demo well. Nobody posts a video called “watch me discover my own download has been broken for six weeks.”
The uncomfortable part is that all nine of these were mine. My site, my products, my tests, my list. Not one of them was somebody else’s fault. Having the capacity to check meant having the capacity to find out I was wrong, repeatedly, in a single morning, before breakfast.
The test that tested nothing

My favourite one, if that is the right word, was the fake tests.
I have been adding proper test suites to the extensions. The whole reason you write tests is so the machine tells you when something breaks. This morning two of those tests turned out to pass regardless of what the code did. They were not testing anything. They were decoration that looked like diligence.
And the build guard was the same species of problem. It checked that every file named in the manifest existed. One critical file is loaded a different way, so it was never in the manifest, so the guard confirmed everything was present while the product was unusable.
Both were things I had built specifically to catch problems. Both were quietly failing to. There is something clarifying about discovering that your safety net has a hole in it, and that you put it there.
What actually changed today

For the record, because build in public means showing the ledger and not just the mood:
- The caching fixed permanently, across every layer, with automatic purging on every save.
- The broken download rebuilt, plus a new build guard that I proved catches that exact defect.
- The wrong settings page and the wrong READMEs replaced.
- The dead opt-in form fixed and the whole journey verified end to end, from old link through redirect, landing page, opt-in, thanks page and download.
- Two landing pages moved into WordPress properly, indexable and in the sitemap.
- An AI assistant deployed on the site that answers questions about the tools.
- A complete new service line built: sales page, order form, the system that takes the order and tells the team what to do.
- Fourteen undeliverable sites removed from that service before anyone could buy it.
- A free press release writer, and an internal tracker so the team can work a campaign and hand it over half-finished.
- A new feature shipped on another extension, with 34 tests written from zero.
Two chats, running in parallel, one morning, one gym trip.
I want to be careful here, because this is exactly where posts like this usually start lying. This was not a normal day. It was a burst, powered by insomnia and cats. If I claimed this as a daily rate I would be doing the thing I keep criticising other people for. Most days are slower and more ordinary than this.
And none of it is earning yet. The services page is still a draft waiting on my daughter to set up the checkout. The chatbot is switched on for me and nobody else. The press releases have blanks in them where the real numbers go. Built is not the same as banked, and I would rather say so.
My Take: Everyone is using the new capacity to make more. I did that for a month and it worked. But this morning showed me the more valuable use, which is checking what you already made. Nine things were broken. Nothing told me. No error, no complaint, no red light, because the failures that actually cost you money are the ones that look completely fine. A loud bug gets fixed the same day. A silent one bills you every day until you go looking. So the real unlock is not that I can build faster. It is that I can finally afford to be suspicious of my own work, at a scale I never could when every hour had to go into shipping the next thing. If you have got this leverage now, spend some of it looking backwards. I promise you something is quietly broken.
Cornerstone Workshop
Want to build a site that actually shows your updates?
The caching problem in this post is one of the required lessons in Cornerstone, along with the whole system for building and running an asset site with Claude Code.