LayerPort

Guide · Start here

How to export a Framer website without rebuilding it.

Framer has no export button, on any plan. That is not a bug you can wait out; it is the hosting model. This guide is the run I use to take an authorized Framer site into files you own, and the honest list of what the files cannot carry.

In brief

  1. Framer does not export code

    The editor copies a component as React and exports assets; the published site only exists on Framer hosting. Every plan, Free to Pro, is the same on this point.

  2. The page you see is three pages

    Framer renders one layout per breakpoint and swaps them with media queries. A rebuild means redoing all three; a capture takes them as they are.

  3. The run is five steps

    Confirm the site is yours to move, capture, review at three widths, edit and optimize, export a sanitized ZIP with host configs. About an hour for a marketing site.

  4. What does not carry

    Forms that post to Framer, CMS pages as anything but rendered HTML, site search, and Framer-hosted analytics. The page says so instead of pretending.

  5. Maintenance is a recapture

    When the Framer source changes, Source Sync captures it again and reapplies your edits and history on top.

What Framer actually hands you

Search “export Framer to HTML” and you get a page of tools promising a one-click download. Start from the source instead: Framer's editor has no code export on any plan. What it does have is *copy component as code* (a React component for your own project, not a page), an asset exporter for JPG/PNG/SVG, and CMS export to CSV through plugins. The published website -- the thing your visitors load -- is rendered and served by Framer, and the pricing page never lists “code export” because it does not exist.

That is the whole reason this guide exists. If you want the site on a host you control, you either rebuild it by hand (weeks, and it will drift) or you capture the page the browser already receives and localize everything it depends on. The second is what LayerPort does; the rest of this page is how, and where it stops.

Source: Framer Help — Can I export my website to HTML and self-host it?

Framer's site plans, with the column that matters

Prices are per month billed yearly, as listed on framer.com/pricing on 28 Sep 2026. They move; check before you decide.
PlanPrice (yearly billing)PagesBandwidthCustom domainCode export
Free$0Design pages only1 GBNo — framer.website subdomainNo
Basic$10 / mo3050 GBYesNo
Pro$30 / mo150, then $20 per 100100 GB, then $40 per 100 GBYesNo
EnterpriseCustomCustomCustomYesNo

Source: Framer — Pricing

What a published Framer page is made of

Open DevTools on any Framer site and you will see three things a naive copy never handles. First, the HTML you get is a hydration target: the DOM is there, but the interactivity, appear effects and scroll animations arrive as ES modules from framerusercontent.com/modules/… and framer.com/m/…, importing each other several levels deep. Second, every image is served from framerusercontent.com in multiple sizes through srcset, so one picture is five files. Third, the page ships one layout per breakpoint and a small <script id="__framer__breakpoints"> tag listing the media queries that decide which one is visible.

A rebuild means re-authoring all of that. A capture means taking it exactly as served and rewriting every reference so it resolves from your own folder. LayerPort's module resolver walks the import graph until it is closed -- with a ceiling of 1,500 modules per site, which no marketing site gets near -- and reports any edge it could not resolve rather than leaving a silent 404.

Where the bytes of a median page go

ShareValue
Images911 KB
JavaScript632 KB
Fonts122 KB
CSS77 KB
HTML22 KB
Median kilobytes per resource type on a mobile home page, July 2025 crawl. A Framer site sits above the JavaScript median, which is exactly why “Save page as” misses so much of it.

Source: HTTP Archive — Web Almanac 2025, Page Weight

The thing you are copying, over ten years

ItemValue
2014505 KB
20222037 KB
20232171 KB
20242311 KB
20252559 KB
Median mobile home page, October of each year (July for 2025) — roughly five times heavier than a decade ago, and almost none of that growth is HTML. A copy that saves the markup and stops is saving the 22 KB and losing the rest.

Source: HTTP Archive — Web Almanac 2025, Page Weight · HTTP Archive — Web Almanac 2024, Page Weight

The run, in the order it happens

  1. Say the site is yours to move

    Before a capture can be exported or synced you tick one box for that site: you own it, or you have permission to copy and transform it. Nothing is added to the source and no proof is demanded -- the confirmation is your statement, stored with the time and the run. It records what you told us; it does not create a right you did not already have, and capturing material you are not entitled to move breaches the acceptable use policy.

  2. Capture the live URL

    Paste the URL. Framer is detected from the markup, routes are discovered within your plan's page limit, and stylesheets, scripts, fonts, images and video posters come down into a portable tree. The capture is what the browser painted, at desktop, tablet and phone widths.

  3. Review at three widths

    Open the private preview and walk every route at the three breakpoints. Look at the things Framer does at runtime: sticky headers, appear effects, hover states. The compatible ones are preserved; anything that still needs the Framer runtime to *decide* something is flagged in the capture manifest.

  4. Edit and optimize in place

    Live Edit works on the real DOM: text, images, links, spacing, hiding or reordering sections. The optimizer re-encodes JPEG and PNG to WebP (and AVIF when it wins) at quality 82, only keeping a conversion that saves at least 10%, and adds loading="lazy" below the fold. Every save is a version you can restore.

  5. Export the ZIP and deploy it

    The sanitized export folds the mirrored hosts into assets/{css,js,img,fonts,media,data} and adds vercel.json (cleanUrls, no trailing slash), netlify.toml, a _headers file Netlify and Cloudflare Pages both read, and a README written for someone who has never deployed anything. Drop it on Vercel, Netlify, Cloudflare Pages or an Nginx box -- the self-hosting guide below covers each.

What the files cannot carry

Before you hand it to anyone

  • Every route in the sitemap opens from the exported folder on a local server, offline.
  • DevTools Network, filtered to -domain:127.0.0.1, shows nothing after load except services you chose (analytics you added, a form endpoint).
  • The three breakpoints match the live site at 1280, 1024 and 390 px -- especially the phone menu.
  • Fonts render as the design intended; no Georgia or Arial fallback where a Framer font should be.
  • The README.md in the ZIP describes the host you actually chose.

Keeping it alive after the export

The site will change in Framer; that is fine. Source Sync captures it again, keeps the pre-sync tree as a same-volume backup, and puts your saved layers -- text edits, uploaded images, hidden sections, renamed routes -- back on top of the new capture. Anything it cannot place with confidence lands on a review list instead of being guessed. How Source Sync preserves your edits walks the order it applies things in.

For a single site that will not change much, the Site Pass ($49 once) is the whole run. If you maintain several client sites, Solo ($19 / mo) adds Source Sync and ten saved versions; Studio ($49 / mo) adds the forms inbox and larger limits. Prices are on the pricing page and in the plan catalogue the app enforces -- this guide does not invent its own.

Sources

  1. Framer Help — Can I export my website to HTML and self-host it? — “Framer does not offer HTML export for self-hosting” (article updated 15 Sep 2026). Read 28 Sep 2026.
  2. Framer — Pricing — Site plans, bandwidth and page limits as listed on 28 Sep 2026, yearly billing.
  3. HTTP Archive — Web Almanac 2025, Page Weight — Median bytes per resource type across ~16M pages, July 2025 crawl.
  4. HTTP Archive — Web Almanac 2024, Page Weight — Median page weight for October 2022 and October 2024. Read 11 Sep 2026.
  5. Vercel — Project configuration (vercel.json) — cleanUrls, trailingSlash, headers. Read 28 Sep 2026.
  6. MDN — <img>: srcset and sizes — Why a page can reference five files for one picture.

FAQ

Does Framer have a code export I am missing?

No. The editor copies individual components as React and exports assets and CMS data, but the published website is only ever served by Framer. Check framer.com/pricing: no plan lists code export.

Will the exported site look like the original?

It is the captured page with references rewritten, not a regenerated approximation, so there is no visual drift to fix. What can differ is behaviour that needs Framer's servers -- forms, CMS queries, search -- and the capture manifest lists it.

Do I need to code?

No. Capture and editing are visual, and the ZIP ships with a README that walks a non-developer through Vercel. A developer will find vercel.json, netlify.toml and _headers ready.

How long does it take?

A ten-page marketing site is usually an hour end to end, most of it reviewing routes at three widths. The capture itself is minutes.

Can I keep editing after export?

Yes, in Live Edit, with every save versioned. And when the Framer source changes, Source Sync recaptures it and reapplies your edits.

Features · Workflow · Pricing · FAQ