Back to Blog
2025-01-27|16 min read

I migrated 5 websites from Framer to free hosting: €1,500 saved

Real case studies: How I migrated 5 businesses from Framer to free hosting. €300-420/year saved per site, 50% faster load times, complete process revealed with metrics.

I migrated 5 websites from Framer to free hosting: here's what I learned (and €1,500 saved)

As the founder of a digital health startup where I built patient and clinician apps serving real users, I knew enough about web development to realize I was getting a bad deal: €25 per month for having my website on Framer. That's €300 per year. For a "simple" marketing website.

Don't get me wrong, Framer is an excellent tool. The visual editor is great, and I managed to make a professional-looking website when I didn't know a lot about web development. But once your site is built, you're essentially paying €300/year for... hosting. That's it. The design work is done. The content is there. You're just renting server space that you could get for free elsewhere.

So I did what any technically-minded founder would do: I migrated our site to Cloudflare Pages: zero monthly fees, same functionality.

The migration took me about a week because I was learning as I went (and working on many other stuff as a founder does...). But I manged to migrate everything: Blog, all my analytics tracking events, all my forms, redirects, etc. I learned a process I could replicate.

Then something interesting happened. I was chatting to a local cultural association I offered to migrate their website for free. It worked! They were so happy that one person on the board asked me to migrate their website too.

In the last six months, I've migrated five websites from paid platforms (mostly Framer, one from Squarespace) to free hosting on Cloudflare Pages as a side project. Every single one is still running smoothly. Every client is happy. And collectively, we've saved over €1,500 per year in recurring costs.

Here's what I learned from those migrations—the good, the challenging, and the lessons I've learned about when this makes sense and when it doesn't.


Case study 1: Local cultural association

The client A Barcelona-based cultural association promoting local cultural events. They had a 6-page Framer site: homepage, about, events calendar, gallery, blog/news, and contact.

Before migration

  • Platform: Framer
  • Monthly cost: €25/month (€300/year)
  • Load time: 3.2 seconds average
  • Lighthouse performance score: 67
  • Main pain point: "€300/year is money we'd rather spend on actual events."

The migration process This was my second migration (after my own site), so I had a process down. Here's what it took:

Day 1 (4 hours): Content extraction and planning

  • Downloaded all images from Framer
  • Copied text content into organized Google Docs
  • Mapped out the site structure
  • Identified the event calendar as the trickiest feature

Day 2-3 (8 hours): Building in Next.js

  • Set up Next.js project with Tailwind CSS
  • Recreated the design (kept it very similar to their Framer site)
  • Built reusable components for events
  • Set up Tina CMS so they could manage events and blog posts themselves

Day 4 (3 hours): Testing and deployment

  • Responsive testing across devices
  • Set up Cloudflare Pages deployment
  • Connected their domain
  • Trained the client on using Tina CMS (15-minute Loom video)

Total time: 15 hours spread over 4 days

After migration

  • Platform: Next.js on Cloudflare Pages
  • Monthly cost: €0 (only €12/year for domain, which they had before)
  • Load time: 0.9 seconds average
  • Lighthouse performance score: 94
  • Client feedback: "This is actually easier to update than Framer. We just go to /admin, edit the event details, and it's live."

Key challenge solved The events calendar was tricky. In Framer, they had a manual process of updating a visual layout. I set up a simple CMS collection in Tina where they just fill in:

  • Event name
  • Date
  • Description
  • Image

The page automatically formats and sorts events by date. They can add new events in under a minute now versus the 10-15 minutes it took in Framer.

Six months later They're still using the site. They've added 24 events and 8 blog posts. Zero issues. €150 saved so far, €300 saved by year-end.


Case study 2: Wedding photographer

The client A friend who shoots weddings across Spain. Her portfolio site had probably 200+ images across galleries. She was on Squarespace, paying €30/month.

Before migration

  • Platform: Squarespace
  • Monthly cost: €30/month (€360/year)
  • Load time: 6.5 seconds (image-heavy site)
  • Lighthouse performance score: 58
  • Main pain point: "The site is so slow. Potential clients click away before they see my work. And €360/year feels expensive for a portfolio."

The migration process

Day 1 (5 hours): Image management nightmare This was the challenging part. She had over 200 high-resolution images, many of them 4-8MB files straight from her camera.

  • Downloaded all images
  • Used Squoosh to batch-compress them (brought average size from 5MB to 200KB with minimal quality loss)
  • Organized into wedding collections
  • Set up proper folder structure

Day 2-3 (10 hours): Building the portfolio

  • Next.js with a focus on image optimization
  • Used Next.js Image component for automatic lazy loading
  • Created a beautiful masonry gallery layout with Tailwind
  • Set up Tina CMS for her to add new wedding galleries herself
  • Testimonials section with easy CMS editing

Day 4 (3 hours): Polish and deployment

  • Responsive testing (crucial for a visual site)
  • Performance optimization (getting those images to load fast)
  • Cloudflare Pages deployment
  • Domain connection
  • Training session

Total time: 18 hours over 5 days

After migration

  • Platform: Next.js on Cloudflare Pages
  • Monthly cost: €0
  • Load time: 1.1 seconds (despite being image-heavy!)
  • Lighthouse performance score: 91
  • Client feedback: "It is the first time I get a client through my website. Before I only got clients through wedding venue partnerships."

Key challenge solved Image optimization was key. Squarespace was serving those massive 5MB files. With Next.js Image component:

  • Automatically converts to WebP format
  • Serves appropriately sized images for different devices
  • Lazy loads images as you scroll
  • Result: Gallery pages load in 1.1 seconds vs 6.5 seconds

The speed improvement alone probably leads to more bookings. Wedding photography is competitive—if your portfolio loads slowly, potential clients bounce.

Six months later I haven't heard any complaints, so I'm guessing it is working good!


Case study 3: My own business (Lumina Salud)

The context I should probably mention this migration first since it's what started everything. Lumina Salud is a digital health company I founded that treats obesity through GLP-1 medications combined with behavioral coaching.

Our marketing website was on Framer. 13 pages including a blog where I share insights about digital health, obesity treatment, and building healthcare products.

Before migration

  • Platform: Framer
  • Monthly cost: €25/month (€300/year)
  • Load time: 2.8 seconds
  • Lighthouse performance score: 71
  • Main pain point: As a founder building a startup, €300/year bothered me. Also, I had used a lot of Framer's code override features for custom functionality (interactive calculators, custom forms), and I knew those wouldn't export cleanly if I ever wanted to leave.

The migration process

Week 1 (15 hours): Learning and building This was my first migration, so it took longer. I essentially taught myself the modern stack while building:

  • Set up Next.js with TypeScript (I already knew React from building our apps)
  • Learned Tailwind CSS (absolutely love it now)
  • Researched CMS options—chose Tina CMS for its simplicity
  • Recreated our design component by component

Week 2 (8 hours): Complex features The custom features I'd built with Framer code overrides needed to be rebuilt properly:

  • BMI calculator (interactive)
  • Treatment cost calculator
  • Newsletter signup integration with our email system
  • Contact forms that route to our CRM
  • Blog with proper SEO (critical for our content marketing)

Week 3 (5 hours): Migration and testing

  • Deployed to Cloudflare Pages
  • Configured DNS
  • Tested everything thoroughly
  • Set up analytics (we're very data-driven at Lumina)

Total time: 28 hours over 3 weeks (but I was learning as I went)

After migration

  • Platform: Next.js on Cloudflare Pages
  • Monthly cost: €0
  • Load time: 1.3 seconds
  • Lighthouse performance score: 96
  • Result: Saved €300/year. More importantly, I own every line of code. Can iterate quickly. Site is faster, which helps our SEO.

Here you can see the improvement in SEO:

Google search console results

Key challenge solved Those custom code overrides in Framer were actually limiting. Rebuilding them properly in React gave me more control. For example, our treatment cost calculator now:

  • Saves user inputs in local storage
  • Provides a shareable results link
  • Tracks calculator usage in analytics
  • Integrates with our booking flow

Framer's code overrides couldn't do all that. Now I can iterate on these features whenever we want.

Six months later We publish 2-3 blog posts per month using Tina CMS. I can write in markdown, preview instantly, and publish in one click. It's as easy as Framer's blog editor.


Common patterns across all 5 migrations

After doing this five times (plus two more that I haven't detailed here—both service businesses with similar results), clear patterns emerged:

Time investment

  • Simplest migration (6-page site, no complex features): 12 hours
  • Average migration: 15-18 hours
  • Complex migration (lots of custom features): 20-25 hours
  • My own site (learning curve included): 28 hours

For someone who knows the stack already, most small business sites can be migrated in 2-3 focused days.

SEO impact

This was a pleasant surprise. Within 2-3 months of migration, all five sites saw improved Google rankings for their target keywords. Why?


This Isn't Easy DIY (But It's Not Impossible)

I need to be honest about something: these migrations went smoothly because I have a technical background and I spent a lot of time learning and using many tools to improve my productivity. I understand version control, command lines and deployment pipelines.

Here's what's actually involved in a migration:

GitHub and version control

Your code lives in a Git repository. This means:

  • Setting up a GitHub account
  • Understanding commits and branches
  • Pushing code to remote repositories
  • Managing deployment workflows

For developers, this is second nature. but I understand that for anyone else, it's intimidating.

DNS configuration

Pointing your domain to the new hosting requires:

  • Understanding nameservers vs CNAME records
  • Knowing what an A record is
  • Not accidentally breaking your email (common mistake)
  • Testing before fully switching over

Content migration

This is tedious, not necessarily hard:

  • Manually copying text (most platforms don't export cleanly)
  • Downloading and organizing images
  • Preserving URL structure for SEO
  • Ensuring nothing is lost in translation

Budget 3-5 hours just for content organization on a typical 8-10 page site.

Custom feature implementation

If your current site has:

  • Contact forms
  • Photo galleries
  • Blog functionality
  • Booking systems
  • Custom calculators
  • Any interactive elements

Each needs to be rebuilt or properly integrated. This requires actual development work.

Testing across devices and browsers

Before going live, you need to verify:

  • Mobile responsiveness (phones, tablets)
  • Different browsers (Chrome, Safari, Firefox, Edge)
  • Form submissions work
  • All links function
  • Images load properly

This is time-consuming and requires attention to detail.

CMS training

Once the site is live, the client needs to know:

  • How to log into the admin panel
  • How to edit page content
  • How to add blog posts
  • How to upload images
  • Who to contact when confused

I create 10-15 minute Loom training videos for each client. Some need a live call to walk through it.

The learning curve

When I tell you my first migration took 25 hours, that's real. The subsequent ones got faster as I:

  • Created reusable component libraries
  • Developed a standard migration process
  • Built deployment templates
  • Knew which gotchas to avoid

For a business owner attempting DIY without technical background, realistic time investment: 30-50 hours for the first site.

If you have 50 hours to invest and enjoy learning technical skills, absolutely go for it. I'll even provide a guide to help.


DIY makes sense if:

You have technical background:

  • Comfortable with command line
  • Have used GitHub before
  • Know basic HTML/CSS
  • Understand how websites work

You have time:

  • Can dedicate 30-50 hours for learning and building
  • Not in a rush to launch
  • Enjoy troubleshooting

Your site is simple:

  • 3-6 pages
  • Minimal custom features
  • Mostly static content
  • Basic contact form

You enjoy learning new skills:

  • Interested in web development
  • Want to maintain the site yourself long-term
  • Like having full control and understanding

Budget is extremely tight:

  • €500 feels like a lot
  • You can trade time for money
  • You're in no rush

If you check 4-5 of these boxes, I'd actually encourage you to try DIY. You can check my other articles for more details, like how I built this website for free.

Hiring makes sense if:

You value your time:

  • Your hourly rate is €30-100+
  • 30-50 hours of your time = €1,500-5,000
  • €500 for professional migration is a bargain

You need it done fast:

  • Want to launch in 1-2 weeks
  • Can't dedicate weeks of evenings to this
  • Have other business priorities

Your site has complexity:

  • 7+ pages
  • Custom features (galleries, booking, forms)
  • E-commerce elements
  • Integrations with other tools

You want guaranteed results:

  • Professional-quality outcome
  • No risk of breaking things
  • Someone to fix issues if they arise
  • Training and support included

You'd rather focus on your business:

  • Time spent on migration = time not spent on customers
  • €500 investment pays for itself quickly
  • Peace of mind is valuable

If you check 3-4 of these boxes, hiring someone (like me) makes financial sense.


What I actually offer

Alright, enough case studies and theory. Here's what I actually do if you hire me:

The service

Complete migration package: €500

What's included:

  • Full site migration (up to 15 pages)
  • Matching design (I recreate your current look or improve it)
  • Content transfer (all text, images, and media)
  • Easy-to-use CMS setup (Tina CMS for blog/updates)
  • Contact form configuration
  • Mobile responsive design
  • SEO optimization (meta tags, sitemap, proper structure)
  • Cloudflare Pages deployment
  • Domain connection and DNS setup
  • 15-minute training video (how to edit your site)
  • 2 weeks of post-launch support
  • All source code (you own everything)

Timeline: 5-7 days from start to live site

What's NOT included:

  • E-commerce functionality (that needs Shopify)
  • Custom web applications
  • Complex database-driven features
  • Sites with 20+ pages (would quote separately)
  • Content writing (I migrate existing content)

Why €500?

Honest answer: It takes me 12-18 hours to do a quality migration. At my hourly rate, that's worth more than €500. But I've built systems and templates that make me efficient. And frankly, I enjoy doing this work—it's a nice break from building our healthcare platform.

Plus, helping 5 small businesses save €1,500/year collectively feels good. It's meaningful work.

The process

1. You contact me

  • Share your current site URL
  • Tell me what you need
  • I confirm scope and timeline

2. I analyze and plan (Day 1)

  • Audit your current site
  • Create migration plan
  • Share timeline with you

3. I build (Days 2-5)

  • Content extraction
  • Site development
  • CMS setup
  • Testing

4. You review (Day 6)

  • I show you the staging site
  • You request any changes
  • I make adjustments

5. We launch (Day 7)

  • Deploy to Cloudflare
  • Connect your domain
  • Train you on updates
  • Go live!

6. Support (Weeks 1-2)

  • Answer any questions
  • Fix any issues
  • Help with first content updates

Current availability

I'm doing this as a side project alongside running Lumina Salud. I can typically take on 2-3 migrations per month. If you're interested, reach out sooner rather than later.


The DIY alternative

Not ready to hire? Want to try it yourself? I respect that.

I'm working on a comprehensive technical guide that walks through the entire process: setting up Next.js, configuring Tina CMS, deploying to Cloudflare Pages, and handling DNS. It'll be free on my site.

In the meantime, here's my honest advice for DIYers:

1. Start with a simple project Don't migrate your business site first. Build a test site. Break things. Learn.

2. Use modern tools

  • Leverage Claude Code as your assitant for every step of the process. I have created specific skills for this purpose.
  • Next.js for the framework
  • Tailwind CSS for styling
  • Tina CMS for content management
  • Cloudflare Pages for hosting

3. Budget realistic time 30-50 hours for your first migration. It gets faster after that.

4. Have a backup plan Don't delete your old site until the new one is 100% working.


Ready to make the switch?

If you want me to handle your migration: I offer the same service I used for these five successful migrations. Complete site migration for €500, delivered in 5-7 days, with 2 weeks of support.

👉 See my service on Fiverr →

If you want to DIY: I'm building a comprehensive technical guide. It'll be free for all of my newsletter subscribers. In the meantime, feel free to reach out with specific questions—I'm happy to point you in the right direction.

Still not sure? That's fair. This is a real decision with real implications. Contact me with questions. I'm happy to discuss your specific situation and help you determine if migration makes sense for you.

Arnau Requena

Arnau Requena

Product guy and startup founder. Using AI to build beautiful and functional websites that convert. Helping others do the same.

Stay Updated

Subscribe to get notified about new articles, ways to leverage AI tools and learn from my mistakes.