Why I Started This
I had a functioning website that I’d delivered to a happy client. I’d built it in the WordPress Block Editor, fumbling through with AI chatbots, official documentation, and YouTube tutorials – basically anything I could find to get past the next hurdle, until it finally coalesced into something that worked. And then I promptly switched off and forgot about it.
But a few things were nagging at me. My Siteground hosting was on a teaser rate that was eventually going to increase significantly. I needed a way to migrate the site – either to cheaper hosting or to hand it back to the client – and I didn’t want to figure that out under pressure at the end of the contract term.
There was also a deeper motivation. If I was going to do this type of work seriously, I needed to understand how WordPress actually works. I couldn’t keep building from scratch in the Block Editor every time. I couldn’t keep using tools I didn’t understand. My background is in enterprise-scale finance systems and I have a strong instinct to know what’s happening under the bonnet before I trust anything. Once I understand something thoroughly, I’m happy to delegate and outsource – but only because I can then open up someone else’s work and verify that it meets my standards.
So the migration wasn’t just a migration. It was an education.
Wednesday: Getting a Local Copy Running
I installed LocalWP, took a SQL dump of the database, and grabbed the wp-content directory. I imported everything into a fresh local installation. It worked. The font was wrong – some CORS errors that took some diagnosing – but it worked well enough to prove the concept. I had a working copy of my client’s site running on my local desktop machine.
I generated a child theme by exporting from the Site Editor, poked around the PHP and WordPress markup, and started to get my first real look at how WordPress structures its files and layouts. I made a note to explore the database properly – understand the tables, what each one does, and what it contains. I also noticed that the uploads folder was full of what looked like duplicates and auto-generated image variants. Evidently, there was still plenty left that I didn’t yet understand.
It was also at this point that I started thinking about how I like to be able to switch fluidly from working on my desktop to my laptop. Unfortunately, for something to feel that seamless, it’s generally because someone did a lot of work upfront to make it that way. Usually me.
Thursday: The Laptop, CORS, and a Few Hours I Won’t Get Back
I set about rebuilding the site on my laptop. I Installed LocalWP, imported the database, and copied across the theme and assets. For reasons that were probably font- and CORS-related, something wasn’t right. I enabled debug mode, spent a couple of hours chasing what turned out to be a caching issue, recreated the local site to start afresh, before finally giving up.
Not every day moves forward.
Friday: Enter Claude Code
I came back to the desktop, deleted the local copy and decided to try something different – Claude Code, Anthropic’s agentic coding tool, which I hadn’t used before.
I didn’t know what to expect.
What followed was exploratory and productive at the same time. About an hour of tidying up my Git repository – removing files that had accumulated without discipline, making commits with meaningful comments, and pushing to the remote. Then another two hours rebuilding the local site, troubleshooting on-the-fly and saving the cumulative improvements along the way. The end result was a stripped-down, clean repository containing only the essentials: the child theme, the relevant wp-content assets, and a SQL export that had been edited directly to fix internal link references. A functioning site, no errors.
But the more significant thing was what had shifted in how the work was happening.
The Moment Something Changed
Until Friday, my workflow with AI had been a back-and-forth I’d become familiar with: I’d describe a problem, the AI would suggest a command, I’d execute it manually, feed back the result, and we’d agree the next step. I ‘d been doing the work and the AI was my enthusiastic advisor.
On Friday, that changed. Claude Code didn’t just suggest what to do – when we got to the SQL import, it stepped in and offered to do it for me. I was supervising and I could inspect what it was proposing, so I let it have a go, but I simply hadn’t been prepared for that level of agency.
The same pattern played out across the whole session. Files removed, git commits made, the SQL trawled through and edited. At one point, we found that we had made a mistake and, as part of the troubleshooting, I casually reminded it that we had a git repo so we could always roll back to an earlier working state; instead, it searched through the repo to reconstruct the history of how things had come to be, find the root of the issue, and address it properly.
I had gone from being the person executing the work to being the person simply directing it and inspecting the results. I didn’t consciously decide to make that shift. It just sort of happened.
The Blog Posts, and What I’ve Left Out
By the time the site was working cleanly I was frazzled, but I wanted to try to capture the process in some sort of document because so much had happened so quickly. I asked Claude Code to draft a series of blog posts based on the context it still had from the session. I then fixed the internal links, refined the wording to match my style, questionable though it may be, corrected a few details and made them public. They’re not perfect by any means, and I’m still working to find my ideal workflow, but they’re certainly better than I could have managed by myself at that point.
However, what those posts don’t capture is the Wednesday-to-Friday arc, the Thursday dead end and, perhaps most importantly, the moment on Friday when our respective relationships to the work fundamentally changed. Yes, the AI wrote an accurate technical record, but it had missed the most important part.
What I’m Still Making Sense Of
I set out to learn how to migrate a WordPress site and I ended up with a clean repository, a properly functioning local environment, and a better understanding of WordPress internals. Success. Job done.
But I also got a direct experience of what it feels like to work with an AI agent rather than an AI assistant.
I’m still unpicking what that means.
The requirement for working with AI isn’t necessarily in knowing how to do every step yourself, but in knowing enough to set the direction and to recognise when something’s gone wrong, as well as to hold the whole thing to a standard.
But that’s also true for an AI assistant.
Until now, figuratively speaking, I had still been getting my hands dirty. I hadn’t seen the power of combining this approach with actively delegating to an AI agent. I can’t quite put it into words but it’s safe to say that my mind is blown.
Leave a Reply