Website Migrations from Framer, Webflow, and more
Leave Framer, Webflow, Wix or Squarespace with your design, content and links carried over. I rebuild your site on code you own, with a CMS your team can edit.

A good migration is one your visitors never notice. Same pages, same layouts at every screen size, same interactions people already rely on. What changes is underneath: code you own, a CMS your team can edit, and hosting that costs little or nothing for most marketing sites.
Every migration includes the groundwork below.
Your links keep working
Your public URLs stay the same or redirect to the right pages. I check links before launch and monitor for missed ones after.

Your SEO comes with you
Page titles, descriptions and indexing rules carry over, and I check each one against your current site before launch.

Update your content yourself
Your new site connects to a CMS, so you can update pages, posts and images yourself.

No broken images after you switch
Images and videos hosted by your old platform move to storage you control, so they keep loading after you leave it.

Forms and search work like before
I test your forms and site search against the original, so inquiries still reach you and visitors still find what they need.

You approve it before it goes live
Review the new site privately before launch. We agree when to switch and how to restore the old site if needed.

Yours to keep, with 14 days of fixes
You get documented code ready for AI coding tools, plus 14 days of monitoring and migration bug fixes at no extra cost.

Most marketing sites fit this scope. The layout price includes all publicly accessible pages and content that use the agreed layouts, with no page-count limit. Custom integrations, private areas, complex forms, advanced editing workflows and heavy content restructuring need a separate review before I quote.
Faster pages, smaller bills.
Site builders load their own runtime, editor hooks and scripts on every page, whether your visitors need them or not. A rebuilt site ships only what each page uses. Pages are prebuilt and cached close to your visitors, and images are resized and served in modern formats for every screen.
When I trimmed my own site, swapping an animation library for sprites and React for Preact cut about 310KB of JavaScript. Your gains depend on what your site carries today, so I measure the old and new versions with the same Lighthouse run and share both reports before launch.
The savings depend on what you pay today and what the new site needs. If you currently pay $30 a month and the new hosting and CMS both fit within free tiers, you save $360 a year once the old subscription ends. At the $100 base migration price, that covers the migration fee in under four months of savings. Add-ons, tax, paid services and the time you keep both subscriptions running extend that payback period.
Not every move saves money. A larger team on a paid CMS can end up paying about the same, so I’ll tell you what your new stack is likely to cost before you commit.
Where are you moving from?
Every builder holds on to your site differently, so every move has its own tricky parts. Pick yours to see what I handle and what needs a closer look.
Built with Lovable, another AI builder or a different platform? The public site can still be the reference. No code export is required. Let’s assess your site.
Sometimes staying put is the better call. If a store, memberships or bookings are the heart of your site, your platform is doing heavy lifting that a rebuild would have to replace.
I’ve made these moves before.
Before building my own product, I ran Drool, a design studio for early-stage startups. We designed and shipped launch sites and product interfaces for teams like SellScale and Phidata (now Agno). I’ve also moved client sites between platforms, both onto custom code and from other platforms into Webflow.

SellScale - AI-Powered Cold Outreach Platform
A comprehensive design overhaul of an all-in-one cold outreach platform that automates LinkedIn and email campaigns for B2B sales teams.

Phidata - AI Assistant Platform Landing Page
A comprehensive landing page redesign for an innovative AI assistant platform, focusing on clear communication and conversion optimization.
I’ve moved this site three times: from WordPress to Astro, from React to Preact, then from Astro to TanStack Start. Each time, the hard part wasn’t the pages. It was behavior nobody had written down. My old contact form saved a message before sending its notification, so a failed email made people retry and created duplicates. Copying the old site exactly would have copied that bug too. That’s why every migration I take on starts with an inventory of what your site does, not just the pages it has.

Why I moved from Astro to TanStack Start
Why TanStack Start fit my Cloudflare deployment and React client work, and what moving my portfolio from Astro involved.

Honey, I Shrunk my Frontend Bundle Size!
How I replaced Lottie with Canvas sprites, migrated to Preact, and removed heavy dependencies to cut over 300KB from my bundle.
WeKeep, the product I’m building now, runs on Astro and Cloudflare, the same stack I recommend for most marketing sites.
Priced by layout, not by page.
The minimum migration fee is $100. It covers up to five unique layouts and unlimited public pages using those layouts. Fifty blog posts sharing one design count as one layout. Beyond five layouts, the calculator applies the additional layout rates shown in its breakdown.
Counting layouts is the hard part, so the calculator can do it for you. Pick your builder and enter your address. It reads your sitemap, opens a sample of your pages and groups the ones that share a design. It only sees public pages, so treat the count as a starting point you can adjust, or skip the scan and set the number yourself.
Not sure how many you have?
A typical marketing site with a home page, about page, pricing page, blog index and blog post is five layouts, all covered by the base price. A newsletter form embedded in an iframe is included. Any other newsletter implementation starts at $100 total, whether I connect your current provider or move you to a new one and connect it. That is separate from the layout fee. Having me move your DNS to Cloudflare costs $50; keeping your current DNS or handling the move yourself has no extra service fee. Sites with more than 50 layouts need a custom quote. Prices are in USD and exclude tax.
The calculator prices layouts and the selected add-ons. I review the behavior behind those pages before giving you a final quote. For migrations estimated above $500, that quote may differ by up to 25% when the rebuild needs more complex implementation: blog comments, lead forms feeding automated funnels, pages assembled from different combinations of CMS records, or advanced filters and data tables. Work outside the migration scope is quoted separately, and the minimum migration fee remains $100.
I explain any adjustment before you commit. Once you accept the quote, the price stays fixed for the agreed scope. Adding a page that reuses an agreed layout with content you supply adds no layout fee. New layouts use the same published rates; new functionality or content restructuring needs an agreed scope and price before I start it.
Choose the fit. Not the fashion.
Every site needs three things: a framework to build it, a CMS to edit it and somewhere to host it. Pick an option in each to see where it shines and what it costs you.
Not sure? For a typical marketing site, I recommend Astro, Sanity and Cloudflare: fast pages, a hosted editor nobody on your team has to maintain, and hosting that usually stays within the free tier. I’ll confirm the fit after reviewing your site. Whatever you choose, CMS subscriptions and hosting charges are paid directly by you, separate from the migration fee.
Bring your subscribers along.
Most sites collect email addresses somewhere: a Mailchimp form in the footer, a Beehiiv embed on the blog, or the builder’s own email tool. A site migration is a good moment to decide where that list should live, but it doesn’t have to move at all. Often the best newsletter migration is the one you skip. Pick a route to see what each one involves.
Newsletter data needs an export, even when your website doesn’t. Before cancelling the old service, export your subscribers and the available unsubscribe, bounce and confirmation records. I check those records and the destination’s import rules before agreeing the move. Contacts with missing or unclear permission records won’t be imported as subscribed; if suppression history can’t be preserved, we resolve that before sending. Sending history, segments and other provider-specific data are not guaranteed to transfer. Using a provider that isn’t listed here? It needs a quick review first.
A careful move, end to end.
Every migration follows the same path, and you work with me directly at every step. Most moves take two to four weeks from agreed scope and deposit to launch. Nothing goes live until you’ve reviewed it, and the work doesn’t end at launch.
The assessment and quote are free. Before I quote, we settle anything missing from your current site and any feature the new platform handles differently. To start work, you accept the scope and pay a 25% non-refundable deposit, credited toward the total. The final quote includes these payment terms.
You test the journeys that matter on the private preview. Once you approve it, the remaining 75% is due before I put the site live or share the code repository. We agree the launch time and who updates the DNS records, and I hand over the documented GitHub repository and operating instructions after payment.
Keep your old platform subscription active until the migration is complete. I recommend keeping it for another one to two months as a fallback, at your expense. Before you cancel, we confirm that content and media no longer depend on it and that the new host serves the redirects. Keeping the old subscription does not extend the included 14 days of support.
Before you make the move.
These are the questions people usually ask before we start. If yours isn’t here, ask me directly.
No. Before I quote, we agree the reference: your pages, the screen sizes that matter and the interactions people rely on. I rebuild to match it. If a platform difference makes an exact match impossible, I flag it and you approve it before I quote. A redesign is separate work.
Rankings can fluctuate, and I can’t guarantee they will stay unchanged. I preserve public URLs or redirect them, carry over titles, descriptions and indexing rules, and check them before launch. Google describes
temporary ranking fluctuations
while it recrawls and reindexes moved pages. These can settle over time, but the size and duration of any change vary. With Search Console access, I monitor 404s and indexing for the first 14 days; that support window is not a deadline for rankings to recover.
Most marketing-site migrations take two to four weeks from agreed scope and deposit to launch. More unique layouts, custom integrations or content that needs restructuring take longer. I confirm a date after reviewing your site, because page count alone doesn’t tell me enough.
No export is needed for your website’s publicly accessible pages or CMS content. I use the live pages as the reference. Drafts and private CMS items aren’t included: you can copy them across yourself or ask me to scope that work in the quote. I may need original media files or confirmation that you can reuse licensed assets. Newsletter subscribers and their status records do need an export.
A GitHub repository with setup, deployment and dependencies documented, so any developer can pick it up. It also comes set up for AI coding tools, with project instructions and configuration, and no secrets or production access stored in it. For 14 days after launch, I fix migration bugs at no cost. After that, hosting, security updates and changes are yours or your provider’s, unless we agree ongoing work.
If you keep your current DNS provider, I give you the records to update yourself at no extra service fee. If you already use Cloudflare DNS, add me as a team member with the access we agree and I’ll handle the records and cutover, also included. If you want to move to Cloudflare DNS, you can do it yourself using resources I provide, or pay $50 for help creating the account, migrating the records and setting it up. Registrar transfers and mailbox moves aren’t included.
Design improvements start at $1,000. SEO, further performance optimization and content creation start at $500 per category. These are minimum engagements, not fixed packages, and are priced separately from the migration. Combined work is quoted together to avoid charging twice for overlap.
Ecommerce migrations are not yet supported, including Shopify, WooCommerce and headless storefronts.
Let’s look at your site.
You work with me directly, from the first review to launch.
You don’t need a technical brief or a framework preference. Share the site you have and what you want to keep, and I’ll get back to you within two working days. The assessment and quote are free; submitting this form doesn’t commit you to a migration.