Lifetime deal: $197 $397Unlimited conversionsLaunch discount, 50% off until 8 December 2026Ends 8 December 2026

Get it

FramerHTML

Framer to HTML. Your site as files, ready to upload.

Paste your Framer site's address and download it as static HTML, CSS and JavaScript: every page built as its own HTML file, with its title and social tags, the same animations and interactions, and a page for every CMS item. Upload the folder to any host.

Your published site on *.framer.website, *.framer.app or your own domain.

  • Free to convert
  • No card to start
  • HTML picked for you
  • 5.9 secondsAverage conversion
  • 236Sites converted
  • 100%TypeScript code

How it works

Three steps, one HTML project

The same steps whatever the site. This page picks HTML; the converter lets you change it.

  1. 01

    Paste your site's address

    Your published site on *.framer.website, *.framer.app or your own domain. HTML is picked for you.

  2. 02

    Convert in seconds

    Conversions take 5.9 seconds on a typical day. Free, and you check the result before paying anything.

  3. 03

    Download and run it

    A .zip of the built site: 74 files. Upload the folder; nothing to install.

What you get

A folder of built pages ready to upload

realmehdi.com in HTML: 17 routes and 74 files. Each page is an HTML file at its URL, styled before its scripts run; the scripts then make it interactive. The README lists every page and how to put the folder on each host.

  • Every page, a route

    17 pages, each an HTML file at its URL with its own title, description and canonical link. Unknown paths get the site's 404.html.

  • Components with typed props

    The site's components, built into the pages' scripts: the variants and hover states the designer set work as they do on the published site.

    Props

    variant?
    answer?
    string
    question?
    string

    Files

    • faq-acordian.tsx300
    • faq-acordian.module.css211
  • Breakpoints kept

    Desktop, Laptop and Phone stay three layouts, as media queries. The converted home page is pixel-perfect: 0.00% of pixels differ at 1440, 768 and 390.

  • Fonts and text styles

    11 font stylesheets with @font-face rules, and 17 text styles as shared classes that change size at each breakpoint.

  • Code components come along

    2 of the site's own and 8 from the marketplace, as source in src/code and src/vendor. 3 run only in the browser.

  • Motion keeps its timing

    44 transitions, appear effects and hovers keep their springs: 35 of them stiffness 500, damping 60, played by motion.

The code

Open any page. It's all there.

Unedited files from realmehdi.com's HTML export, 74 files in all.

site/index.html

<!doctype html>
<html lang="en">
  <head>
    <meta charset="utf-8" />
    
    <!-- Fonts and images load from the asset CDN: connect early, as the published site does -->
    <link rel="preconnect" href="https://framerusercontent.com" />
    <link rel="preconnect" href="https://framerusercontent.com" crossorigin="" />
    <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin="" />
    <meta data-prerendered name="viewport" content="width=device-width"/><link data-prerendered rel="preload" as="image" href="https://fram…
.df-pointer-events-none, .df-pointer-events-none * { pointer-events: none !important; }
.ssr-variant { display: contents; }</style><style data-breakpoint-css="">@media(max-width: 1199px){.hidden-template-phone{display:none!impo…
	var w = window;
	var d = document;
	var state = w.__breakpointPruner;
	if (!state) {
		state = w.__breakpointPruner = {
			active: {},
			known: {},
			overrides: [],
			deferred: [],
			emptyWrappers: []
		};
		var isHidden = function(element) {
			var list = element.classList;
			for (var i = 0; i < list.length; i++) {
				var name = list[i];
				if (name.indexOf("hidden-") === 0 && state.active[name]) return true;
			}
			return false;
		};
		var isOverrideMarker = function(node, edge) {
			return node && node.nodeName === "TEMPLATE" && node.hasAttribute("data-breakpoint-override-" + edge);
		};
		var segmentId = /S:[0-9a-z]+$/;
		var targetId = /P:[0-9a-z]+$/;
		var inStreamSegment = function(node) {
			for (var parent = node.parentElement; parent; parent = parent.parentElement) if (parent.hidden && segmentId.test(parent.id)) return true;
			return false;
		};
… 1461 more lines

localhost:3000 390

The home page this file renders, from the converted build at 390 wide
17 pages · built, nothing to install
site/*.html
One file per page at its URL, CMS items included, each with its title, description, canonical link and social tags in its <head>.
site/assets/
The pages' JavaScript (React, motion and the site's own code) and CSS, named by their content, so a host can cache them for good.
README.md
How to put the folder on Netlify, Cloudflare Pages, GitHub Pages, Vercel, Amazon S3 or a shared server, and a table of every page and its file.
Images, fonts, videos
On Framer's CDN by default, as on the published site. Choose Assets in the project to have them in the folder too.

Run and deploy

Unzip, upload, done. Nothing to install.

Static HTML is the site, built: upload the site folder to any host that serves files, such as Netlify, Cloudflare Pages, GitHub Pages, Vercel, an S3 bucket behind a CDN or a shared server. No npm, no Node.js, no server code.

realmehdi-com

$

Only in Static HTML

Built for you, not a project to build

  • Nothing to install

    The conversion builds every page for you: there is no npm install, no build step and no Node.js. Unzip the download and upload the folder.

  • Interactive, not a screenshot

    Each page is prerendered HTML that its scripts then bring to life: animations, hover and tap effects, menus, sliders and code components work as on the published site, and links open the next page without reloading the layout it shares.

What comes with it

Everything the site had, as files

The pages are built from the same conversion as the Vite project: the same components, styles and content, compiled into the folder.

  • robots.txt · sitemap.xml

    Search engines

    Every page keeps its title, description, canonical link and social image. robots.txt, sitemap.xml and the site's redirects come with it.

  • <collection>.json

    CMS content

    Every CMS item published when you convert gets its own page. Items added later need a new conversion.

  • 17 text styles · 11 fonts

    Styles and fonts

    Colour and text styles are in the CSS, and every font family gets its @font-face rules.

  • framerusercontent.com

    Images and video

    They stay on Framer's CDN by default, or come into the folder when you convert with Assets in the project.

  • src/lib/deframer

    No Framer runtime

    The scripts are React, motion and the site's own code, with a small kit in place of Framer's runtime. The site doesn't depend on Framer.

  • npm run build

    Want to edit it?

    The HTML is generated. To change the site, convert it again with Vite selected (free), edit the code, and npm run build writes the same folder.

Pricing

Free to convert, one credit to download

Convert free and check the HTML result first. Pay only to download: one credit per project, credits never expire. Or pay once for the lifetime deal: unlimited conversions, and every site you verify downloads free.

Launch discount · 50% off until 8 December 2026

Lifetime deal

Verified sites

Pay once, then convert as many sites as you like and download every site you verify, free, for as long as Deframer runs.

  • Unlimited conversions and verified downloads, for life
  • Next.js, TanStack Start, Astro, React Router, Vite, Nuxt or static HTML
  • Priority in the conversion queue

Fair use: up to 100 conversions a day.

Regular price $397$197one-time

$197 until 8 December 2026, 23:59 UTC. Then $397.Ends 8 December 2026

Covers sites you verify with the meta tag. Downloading without verification still uses 10 credits (up to 30 for sites over 100 pages), and site protection uses credits too.

Launch prices: 50% off. Every pack doubles in price after 15 November.

  • Single

    One download with site verification.

    $10$20one-time

    1 credit · $10.00 per credit

  • Starter

    Most popular

    Five verified downloads, or save toward a direct download.

    $25$50one-time

    5 credits · $5.00 per creditSave 50%

  • Studio

    For studios moving their clients' sites, with their permission.

    $100$200one-time

    30 credits · $3.33 per creditSave 67%

  • Free to convert
  • Credits never expire
  • The whole project as one .zip
  • You own your site's code

Prices in USD. Checkout by Whop, our payment provider, which adds sales tax or VAT where it applies. Credits and the lifetime deal are added as soon as you pay and aren't refundable; see the refund policy.

Compare packs on the pricing page

Limits

What to expect

Plain facts before you convert.

  • The result is close to the original but not guaranteed to be identical. Check every page, in the compare view when a live preview is available or by running the project.
  • Code components and third-party embeds stay as the site's own code: they come across as source, not rewritten.
  • Very large sites may not fit a conversion. Keeping images, fonts and videos on Framer's CDN (the default) makes the download much smaller.
  • There is no server to receive forms: a submission shows the form's error state. To receive them, convert with Vite and build with a form service's URL, or Netlify Forms.
  • Text changed in an HTML file shows until the page's scripts run, then the built page returns. Edit the Vite project instead.
  • A split test ships its tested page's original version only: a static site can't pick a variant per visitor.

FAQ

Framer to HTML, answered

Limits, files and verification are in the main FAQ, credits on the pricing page.

Can I export a Framer site to HTML, CSS and JavaScript?

Framer itself doesn't export HTML. Deframer converts a published Framer site and builds it into static HTML, CSS and JavaScript, which you download as a .zip and own: one HTML file per page, CMS items included, ready to upload to any host.

Where can I host it?

Anywhere that serves files: Netlify (drag the folder onto Netlify Drop), Cloudflare Pages, GitHub Pages, Vercel, an S3 bucket behind a CDN or a shared server over FTP. The host should serve about.html at /about; Netlify, Cloudflare Pages, GitHub Pages and Vercel do, and the README shows the one line Apache or nginx needs.

Do animations and interactions still work?

Yes. Each page paints styled from its HTML, then its scripts make it interactive: animations, hover and tap effects, menus, sliders and code components work as on the published site.

Can I edit the HTML?

The files are build output, so edits to the HTML don't last once the scripts run. To change the site, convert it with Vite selected (converting again is free), edit the React code, and npm run build writes the same folder.

Does it still depend on Framer?

No Framer runtime and no Framer servers: the scripts are React, motion and the site's own code. Images, fonts and videos load from Framer's CDN unless you convert with Assets in the project, which puts them in the folder.

What does it cost?

Converting is free. Downloading the code is for your own site, or one whose owner allows it: verify the site for a 1-credit download, or confirm you own it or have permission and download for 10 credits. See pricing.

Get started

Your site. Your HTML code.

  1. Convert
  2. Download
  3. Deploy anywhere