Two hours to lift. Sixty minutes to relaunch.
Field notes from a recent migration. The fastest WordPress-to-InkCMS conversion we've run so far, end to end, with Claude Code in the loop the whole way through — and not a single WordPress plugin, export tool, or database dump involved.
The starting point
A small B2B site running on WordPress. Ten pages of marketing content, a contact form, a news section, a small media library. The site worked — but the kind of "worked" that costs a few hours every month to keep secure and a few thousand a year to keep current. Lighthouse scores were running in the sub-70s across performance, accessibility, SEO, and best practices. The HTML was the kind of WordPress markup you've seen before — <div> soup, inline styles from three different page-builder eras, three jQuery plugins powering things modern CSS could do natively, an accessibility tree that confused screen readers about where the navigation ended and the content began.
The customer wanted off WordPress. They didn't want to wait three weeks for a redesign agency. They wanted to be live on something modern by the end of the day.
Phase 1: Lift & shift — under two hours
The first move was deliberately conservative: preserve everything visible. Same HTML structure, same CSS, same images, same copy. Move it to InkCMS without touching anything the visitor would notice.
Here's the part most evaluators don't expect: we didn't export anything from WordPress. No XML dump. No plugin. No database access. No staging clone. With the customer's written permission, we pointed Claude Code at the public URL of the live site and asked it to crawl.
Claude Code, working in our local InkCMS install:
- Walked the site map, fetched each rendered page, and parsed the HTML to identify the meaningful content region (skipping the WordPress chrome — headers, navigation, footers, ad slots, share widgets).
- Wrote each page out as a Markdown file with YAML frontmatter into
content/staging/. Folder structure mirrored the URL structure (folder = URL by default in InkCMS). - Downloaded every referenced image into
content/media/, generating sidecar Markdown files with the original alt text and dimensions automatically detected. - Captured the live site's CSS, JavaScript, and font files verbatim and dropped them into
wwwroot/assets/with no edits. - Built a single InkCMS template (
General.cshtml) that emitted each page's body verbatim and loaded the original styles untouched. - Recreated the navigation menu in
content/menus/main.mdas YAML by parsing the rendered nav HTML.
Two hours from "give me the URL" to "the new site is byte-for-byte equivalent to the live WordPress version in a browser screenshot." The customer signed off after a visual diff. Nothing was lost. Nothing was changed. We didn't need WordPress admin credentials, database access, or a plugin — we just needed the URL and permission to crawl it.
This is the part most evaluations underestimate: a CMS where content is files is a CMS where Claude Code can move content into the system from any source on the public internet, without writing a migration plugin or asking for special access. Any existing website is a potential lift-and-shift candidate — WordPress, Drupal, Squarespace, Sitecore, hand-rolled PHP, anything that renders HTML to a browser. We've now done conversions from all of those.
Phase 2: Redesign — under sixty minutes
With the safety net of the lift-and-shift behind us, we asked Claude to do the part that would have taken a redesign team two weeks the traditional way.
The brief was specific:
- Rewrite the markup with proper semantic HTML5 —
article,section,nav,aside, headings in a sensible outline, ARIA where the design actually needs it. - Replace the inline-style soup with a clean CSS file using the design tokens from the customer's brand guidelines.
- Rewrite the copy to align tighter with the brand voice — shorter, more confident, less corporate filler.
- Swap stock photos for the customer's actual recent photo shoot we had on their file server.
- Do a full on-page SEO pass — title tags, meta descriptions, JSON-LD where relevant, internal-link hygiene, alt text rewriting.
- Add the InkCMS AI Advisor on every page so visitors could ask questions in the customer's voice and get answers cited to real pages.
Claude Code worked file-by-file. Every change went into a staging snapshot first, every save was reviewed in InkCMS's diff overlay before we promoted to production. About fifty-five minutes from "redesign brief" to "everything ready to publish."
The numbers
Before / after Lighthouse, on the same URLs, same devices, same network throttling profile:
- Performance: mid-60s → 97
- Accessibility: low 70s → 100
- Best practices: low 80s → 100
- SEO: mid-70s → 100
The site loads faster, screen readers parse it correctly, search engines index it properly, and visitors who can't find what they're looking for get an AI assistant that answers in the brand's voice and links to the right page on the site. Total elapsed clock time for the entire migration: under three hours.
This isn't unusual any more
We've run several conversions in this shape recently. Sometimes we skip Phase 1 entirely and go straight to redesign when the existing markup is so far gone that preserving it would be worse than rebuilding from the content alone. Sub-50 Lighthouse scores converting to near-100 across the board. Old non-compliant accessibility patterns cleaned up to proper ARIA. Brand drift corrected. Localized SEO restored. Each one gets an AI assistant configured to the brand's voice as part of the redesign.
With Claude Code in the editor seat and InkCMS as the substrate, the redesign-agency turnaround compresses from weeks to hours. And the input is just a URL — no exports, no plugins, no special access.
The model behind all of this is dead simple: when your content is files, your CMS is a directory tree, and your editor is an AI that knows how to manipulate files, the layers of friction agencies have spent thirty years building tooling to manage just dissolve.
That's the gap InkCMS is built to close.
If you want to try a migration on your own site, the installer is free to download — create an account, run it on localhost, point Claude at your existing site, and see what happens. Localhost is unlimited and unactivated; you only need a subscription when you go live on a real domain.