We all know how Framer is notorious for vendor lock-in. No matter what you try, you cannot export the website out of Framer. This is the story of how I made the impossible export possible.
The cage
Build a site in Framer and it's yours, except it isn't. You can't export it. You can't lift its components into your own codebase. Your design lives in Framer's cloud, and Framer's cloud only. The moment you want to leave, your website becomes a hostage.
So what happens if you just… download the raw files anyway?
You get 50-60K lines of jargon per file. Not code, jargon. Minified, mangled, machine-generated soup. And here's the part that makes it truly hopeless: even with state-of-the-art AI models, you won't be able to decode it into reusable components. I tried. The models drown in it.
40,000 lines of nothing
The first thing I learned while digging through these files: roughly 40K lines of every file are unused code. Dead weight per page. That alone turns analysis into a living hell. You're not reverse engineering a system, you're archaeology-ing a landfill.
But the detail that broke people's brains (and mine) was the text.
Their texts were separated into characters. A line as innocent as:
I Hate Framer…is stored as:
`I` ` ` `H` `A` `T` `E` ` ` `F` `R` `A` `M` `E` `R` `.` `.` `.`Every string, chopped into single-character fragments and scattered across the file. Unless you know what you're working with, unless you've seen about 20-30 of these websites, you won't even know what you're looking for.
Months of pattern recognition
So that's what I did: I looked. For months.
- Their IDs: how they're structured, what's stable, what's noise.
- Their hashes: which ones repeat, which ones are per-build.
- Their patterns: how components nest, how styles attach, how the character-split text reassembles.
Reverse engineering at this scale isn't a eureka moment. It's staring at thousands of lines until the shapes start to rhyme, writing down every rule the machine-generated output follows, and throwing away maybe forty rules for every one that survives.
Slowly, the jargon stopped being jargon. It became a grammar.
Two scripts
That grammar eventually crystallized into two scripts:
- The Cloner takes an entire Framer website and clones it, every page, every asset, every layout decision, out of Framer's cloud and onto disk.
- The Cleaner takes the raw technical jargon and washes it. Dead code gone. Noise gone. Character-split text reassembled into real strings.
The pipeline: raw Framer dump → cloner → cleaner → beautiful, reusable React components. The kind of output you'd expect from a human developer, not extricated from a minified swamp.
The proof
The output isn't a demo. It's live, in production, on real websites:
- amplytic.dev, built with Framer components, running outside Framer.
- bridgemrkting.com, same story.
Both contain Framer components that were free but required Framer to build the website in. Free components, held hostage by a builder. After the pipeline: the same components, as clean React, on a site Framer doesn't own.
Why this matters
Vendor lock-in only works while the exit is technically impossible. I find "technically impossible" to be a personal invitation.
Your design, your content, your website: you should be able to take it with you. Now you can.
Imtiaz
