article TransformGovern
Leaving Substack or Ghost without losing a reader: an AI-assisted migration checklist
Moving a website off a platform like Substack or Ghost used to be real digital comms gruntwork. In our case, moving a publication with dozens of pages onto a new site took a few days rather than weeks – with Claude doing most of the building and me being the decision-maker for every switch. Here's what worked, what went wrong, and what you can put into practice today.
The Brief
- What we did: between 12 and 15 October, we migrated Applied from Ghost onto commswith.ai: 44 pieces with their dates, all 80 old addresses redirected and tested, the email list invited across, Google told of the move, and a new identity designed and built. Claude drafted, built and checked. I decided and approved, and nothing that could not be undone happened without me there.
- Why it matters for comms: most comms teams own a newsletter, a microsite or a campaign hub they will one day move or close. The risky parts of that job are communications problems: promises made in old links, consent, and a record of what was said. With AI doing the heavy lifting, a comms team without developers can now move off a hosted platform such as Substack, Ghost, Mailchimp or Beehiiv, and owning the site frees you from their design limits and licence fees.
- What went wrong: work held back for the switch went live early more than once, plus there were a handful of smaller misses. Checks we had written down in advance caught every one.
- The takeaway: AI made the move lightning fast compared to other migrations I’ve been involved with and overseen. What made it safe was experience of moving sites before, a decision on paper, a rehearsal on a real address, and a person holding every step that could not be undone.
The Story
I’ve worked on website migrations, and later overseen them, at Red Bull, the BBC and STV. At the BBC, moving the CBeebies Grown-ups site meant a rigorous process with a lot of people: which pages were performing, what could be cut back, what the content should be, and rounds with designers and developers. It was important work and I was glad to be part of it, though it sat a long way from the exciting end of what the BBC does with content. At Red Bull I was involved in launching what we called redbull.com v2. That was exciting, a chance to rethink how the site looked and felt and what it could do for our audience at the time, and it was still hugely complicated.
Applied is nowhere near that scale, it goes without saying! It started last summer as a newsletter hosted on Ghost (I’d used Substack before, for the Faur newsletter). By October, keeping it apart from Comms With AI felt messy, and Ghost wouldn’t let me bring it in easily. Like Substack, Ghost limits what you can do, especially on the lower tiers. I wanted a richer home for Applied: better looking, and above all more engaging, with clearer signposts to the kinds of pieces we run, from experiments to interviews, and room for the interactive content I’ve written about before.
So I migrated it, with Claude doing the building. Talk about a power couple…
Having previously scheduled work on the migration, I got antsy and wanted to switch sooner. Before going to bed, at about 11:40pm on Wednesday 14 October I asked Claude whether we could switch the domain on Thursday or Friday instead of the following Monday. After some sleep, at 5:45am on Thursday, in my browser, two DNS records changed at GoDaddy, and within minutes every old Applied address was landing on the same piece on commswith.ai. A script then made 154 requests against each version of the old domain, with and without “www”. All 154 passed, both times. This work in itself would previously have taken several days, even with far more technical knowledge than I could personally bring to it.
The decision to fold Applied into Comms With AI was taken at our quarterly review on 9 October, and the switch came six days later. For anyone in comms, the useful part is where that week went. Most of it went on things we deal with every day: promises made to readers, consent, and keeping a record. Applied exists to show the working, so here it is, including the bits I would rather not show.
Deciding on paper first
Before anything was built, Claude wrote a decision paper: the options, a recommendation, the mechanics, a risk table, and four reader personas reacting to it. It ended with ten questions for me. I answered them over 12 and 13 October, and the build followed the paper’s numbered steps.
This is the part I would keep if I kept nothing else. A move like this throws up dozens of small decisions (what happens to the email list, which old pages survive, what the new section is called), and each one is quick to make on paper and slow to unpick on a live site. It also meant that when I brought the switch forward, twice, nobody had to re-decide anything. We did the same steps sooner.
Who did what
Those earlier migrations helped: redirects, search and old addresses were familiar ground, which made it much easier to follow what Claude was proposing and to talk it through as we went.
Claude – working in Cowork with my Mac linked – wrote the script that turned Ghost’s export into pages on the new site, the redirects and their tests, the new section, the copy, the graphics and the launch video. It also did the hand pass a script cannot: around 150 images that had no description for screen readers now have one, and old “coming up” lines became dated updates.
I made the decisions, read and approved the work, did every push and merged every pull request. That last part was by design. Claude had no logins of its own for GitHub, the domain registrar or Google. Code travelled from its workspace to my machine as git bundles, and I pushed. The browser steps (a verification record at GoDaddy, the new domains in Vercel, the two DNS records, the Change of Address in Google) were done in my own Chrome, at my request, one step at a time, with me watching. I started the Vercel and Google steps myself, and Claude took them over to save time. It was slower than handing over the keys. It also meant nothing irreversible happened without me there to actively approve, a firm principle I would recommend to any comms team using an AI tool that can publish. (It is the same reason each of our Govern phase templates pairs the workflow with a human review step.)
I spent about 15 hours on it across the three days. Before these tools, I could easily imagine the same job taking four or five times that, spread over a month or three.
Every old link is a promise
Once an article has been shared, bookmarked or cited, its address is a promise to whoever kept it. Break it and the reader gets an error page, and search engines slowly forget the piece.
So we treated the redirects as data. One spreadsheet of 80 rows mapped every old address to its new one, and a script turned that into 154 rules: each address with and without its trailing slash, and a catch-all at the end for anything we had missed. Then we rehearsed. We pointed a spare address, preview.appliedcomms.ai, at the new site and ran a test script against it that checked, for every row, one redirect to the right place and a working page there. The first run passed 152 of 154; the other two were waiting on Ghost’s final export, which came that afternoon. After that it was 154 of 154, twice, and then the same on both live addresses.
The plan also caught a default I would have accepted without thinking. When you add an old domain to Vercel, it offers to redirect the bare version to the www version. Accepted, every old link without “www” would have taken two hops instead of one. We declined.
Tell Google before you move
Google has a Change of Address tool in Search Console for exactly this, and it accepts a move from a whole domain into a folder on another one. To use it you have to prove you own both sites. Ours were verified only through Google Analytics, and the Analytics tag lived on the Ghost site, which was about to disappear. So the day before, we added a verification record to the domain itself. On the morning, Change of Address was filed for both the www and the bare version, as Google’s guidance asks. Google also asks you to keep redirects for at least 180 days. Ours will stay for longer, and we will keep the old domain for at least a year.
Ask first
On Ghost, we had the list of those subscribed to Applied’s emails. The quick route was to copy them into the list for the Comms With AI Briefing. We did not, because under PECR you need someone’s consent before you send them marketing email (the ICO’s guidance allows a narrow “soft opt-in” that does not fit here), and these people had signed up to something else. Instead they get one last email from Ghost inviting them across, and nobody moves without saying yes.
Claude found one late problem here that I would not have spotted. After the switch, the unsubscribe link in every old Ghost email would have landed on a sign-up form, which is about the worst place to send someone who wants off a list. It now lands on a short notice saying the list has closed, with deletion on request.
Keep a record of what you switch off
Before the domain moved, the whole Ghost site was captured page by page, at desktop and phone size, with offline copies: 73 captures and a browsable index, plus the LinkedIn newsletter page before its rename. The words were safe in the export anyway. What the captures keep is how the site looked and what it promised, which is what you want when someone asks, a year from now, what a page said.
Here is the old Applied home page from that archive, beside where Applied lives now.
Giving Applied its own face
On 14 October I looked at the new section and said it felt “too much part of Comms With AI, rather than having its own brand identity”. That afternoon a written brief went to Claude Design, and it came back as one canvas with five directions side by side.
The brief did three things I would recommend to anyone briefing design, AI or otherwise. It asked for an inventory first: before designing anything, list what already reads as Applied, working from screenshots of the old site captured before it disappeared. It allowed real copy only, with “[Michael to write]” wherever a line did not exist yet. And it stated the hard rules as numbers, so every new colour pairing came with its contrast ratio.
The winning idea came straight out of that inventory. “The hinge” takes the forward slash from the Applied logo and makes it the line where the Comms With AI navy meets Applied’s coral. I took Claude’s recommendation, plus one part each from two other directions: a method panel at the top of every test, saying which model ran it, where and when, and the Briefing sign-up at the top of the index. From the brief to the merge took about 14 hours.
Five directions, one canvas
Which would you have picked?
The five directions Claude Design came back with on 14 October. I went with E, plus one part each from C and D.
-
The masthead returns
Closest to the old Ghost site: a coral masthead, a red nav and a striped hero.
-
The slash ground
Applied as a sister site on deep red, with Lora as the display face.
-
The bench
A lab notebook on gridded paper, with the method set as an instrument readout.
-
The editorial front
A publication front page with its own header, a lead story and a river of pieces.
-
The hingeChosen
The slash from the logo becomes the line where Comms With AI navy meets Applied coral.
The brief missed things too, and they are worth knowing. It never asked what data each part of the design needed (the method panel needed a detail nobody had recorded), how the index should read as a list, or whether old graphics carried the old address. Plus the three best changes came from looking at the live section on my phone the next morning – throughout the process, I would review results while using Granola for voice notes which I would then feed back into the process.
What went wrong
- Held work went live early, more than once. The new section appeared on 13 October, before it was meant to, and most of the switch’s groundwork reached the live site the next day. Then, on the morning itself, the change that told search engines the new copies were the originals went live about 15 minutes before the DNS moved, while Ghost was still serving the same pieces. At our size it did no harm we can see in Search Console: average position held at about 11 either side of the move. The lesson for me: GitHub’s prompt to open a pull request makes held work very easy to merge before its time. Basically, this was on me for moving too quickly! Fine for my own product with relatively low stakes, but next time around I’d be way more fastidious around this, and set hard gates to prevent anything going live without a thorough review.
- The certificate lagged. The bare domain briefly failed a handful of secure requests while its certificate was being issued. The re-run passed.
- Two conversations, one file. I had one Claude conversation running the move and another working on the design, and both needed to change the same few lines of the site’s code. Done separately, each could have overwritten the other’s work. So one left that part to the other, and the night before the switch we combined both sets of changes in a test build to check they fitted together. They did.
- The announcement jumped the gun. It went live with the switch, dated five days in the future, and had to be corrected on the day.
My honest summary of working with AI on something like this: it is fast, it is thorough when you ask it to be, and when the plan changes at short notice it can make the same kind of mistakes people do.
Three weeks on
On 3 November we ran the redirect test again on both old addresses. The map has grown to 313 rows since the switch, because old emails and LinkedIn articles still embed Ghost’s image addresses, and those now redirect too. Of 432 requests on each host, 431 passed, and the one failure was a fault in how the test script fills in a wildcard: the redirect itself lands on the right image.
Google lists both Change of Address requests as in progress, which is what it shows for the first months of a move. Comparing the 19 days after the switch with the 19 days before, about a quarter more Applied pages appeared in Google results, and clicks from search rose by almost half. Impressions dipped by about a quarter while Google catches up, and average position held steady. Page views held steady too, counted in two different analytics properties either side of the move. It is early, and the base is small, but it answers the question I cared about: so far, the move has not cost us readers. With those checks done, the last step is cancelling Ghost.
Do you still need the platform?
Which leaves a question I keep coming back to. Ghost and Substack earned their place by making publishing easy: a template, a mailing list and payments, all in one place. If AI can now help a small team build and run a richer home of its own, with interactives, tests and a library around each piece, what is the platform for? The email can go out through a provider you already use, as Applied’s now does through the Comms With AI Briefing, or through something you build yourself.
There are still good reasons to stay. Substack’s network can bring readers you would not reach alone, and someone else looks after deliverability, payments and the admin. For a comms team that wants its publishing to sit next to its own work, though, the case for renting the whole house is weaker than it was a year ago.
The Practice: what you can put into practice today
- Reimagine your site before you plan the move. Use a design tool such as Claude Design to sketch what your current site could become, with options side by side from the most conservative to the boldest, and what each would cost to build. Brief it with what is already yours: screenshots, the words you actually use, and the rules you will not bend. As you review, note the elements you would keep and build on. It is a worthwhile exercise even if you never migrate.
- Produce the address map for anything you might move or close. Your newsletter, a campaign microsite, the old press office pages: a spreadsheet of every live address and where it should go. It is the hardest part to reconstruct later. An AI assistant is great for producing this at pace; you can then have a second one mark its homework before you review it yourself.
- Check how your site is verified in Search Console. If it depends on an Analytics tag on the site you plan to move, add a DNS record now, while you still can. Without it, you can’t tell Google where you’ve gone.
Have you moved or closed a site recently? I would like to hear what you would add to that list.
Coming up: After Adoption: Zoe Amar on What Charities Do Next with AI, a Comms With AI Leader Interview, Wednesday 18 November, 16:00 to 16:45 GMT, online and free.
My decisions and examples, drafted by Claude from its own build records, every claim checked against the commits and check reports, and a thorough final rewrite and edit by me. Comms With AI has no commercial relationship with Anthropic, which makes Claude, or with any other company named here.
67 claims checked against their sources.
More like this
announcementTransform
Applied has moved to Comms With AI: shorter, dated, and tied to the workThe announcement: what changed for readers, and why Applied now sits next to the templates it tests.
articleTransform
Comms With AI: how I built an award-winning AI communications tool in three months (and what I got wrong)The last time I wrote up a build with Claude, mistakes included.
articleTransform
How to set up project folders in ChatGPT and Claude for comms workThe working setup behind this kind of project, from standing instructions to the files Claude reads first.