Webflow to Astro
AI migration process
Apr 8, 2026

I helped a larger US startup move off Webflow Enterprise in about a month, despite not being a developer. The existing setup had become expensive in two ways: the Webflow Enterprise plan itself, and an outside agency retained for maintenance. The replacement was a self-hosted stack built with Astro, Tailwind, Cloudflare, and Google Cloud for image delivery. The goal was not only to leave Webflow, but to end up with a system that was cheaper to run, easier to maintain, and structured clearly enough that AI could support future work without introducing drift.
At first, the plan looked straightforward. Astro would handle the framework, Tailwind would enforce styling, and design tokens would live directly in the codebase so values stayed constrained. The broader idea was simple: if the system is clearly defined in code, AI has less room to invent its own logic. I initially chose the faster path and tried to let AI reverse-engineer the system from the live site rather than defining everything properly in Figma first.
That turned out to be the first thing that broke. Reconstructing a design system from a live Webflow site was far less reliable than it seemed. The output looked plausible at first, but not accurate enough to build from. Part of the issue is how Webflow renders sites for production. By the time the site reaches the browser, much of the structure you would want to recover as a reusable system has already been flattened or obscured. AI was trying to infer the logic from the surface, and that only got so far.
So the migration became more manual and more iterative than planned. Instead of extracting the whole system in one go, I rebuilt it piece by piece, pulling HTML from the browser, passing it into Claude Code, and refining components one by one. Colors were off, spacing was off, breakpoints broke, and mobile behavior needed repeated correction. AI only became genuinely useful once the first stable components were in place. From there, it was much better at extending the system than inventing it.
The content migration followed the same pattern. Blog posts moved over in a scripted batch, which helped, but the first pass missed plenty of details. Video embeds were missing, posts with multiple authors were handled incorrectly, code blocks lost formatting, and image URLs had to be repaired after moving assets from Webflow’s CDN to Google Cloud. Much of the work ended up living in those follow-up fixes rather than in the initial move itself.
A few decisions worked especially well. Putting clear rules for AI directly into the repo reduced drift, and Tailwind’s token-based setup made it harder for inconsistencies to creep in. Cloudflare preview deployments also made review much easier. Looking back, I would skip the idea of a grand automated extraction and start by rebuilding the homepage section by section, letting the system emerge through implementation instead.
What stayed with me most was the surprise that a project like this could now be owned fully by a designer. Twelve months earlier, I do not think that would have been realistic. A migration like this would likely have required a senior developer from the beginning and probably would have taken at least two months. AI did not remove the complexity, the judgment, or the long tail of cleanup, but it changed who could carry a project like this and how much of it could now be led directly from a design background.