Rebuilt as a real project
Paste your published Framer URL and convert it free. Deframer reads the site and writes every page, component and style as readable TypeScript, filed where a developer would put it.
Paste your published Framer URL and convert it free. When you're happy, show it's yours and download a Next.js + TypeScript project you can read, run and deploy.

A 20-second film of Deframer converting realmehdi.com, a real Framer site: its address is pasted, the site is rebuilt as a Next.js project while its 256 files are written, the original and the rebuilt site are compared at 1440, 768 and 390 pixels wide; then ownership is checked with the code on its live page and 1 credit unlocks the download; a generated component's TypeScript is shown, and the project downloads as realmehdi.com.zip.
An example run: realmehdi.com converted to a Next.js project in 22 seconds, 256 files in 641 KB.
Every project Deframer writes is a standard Next.js app
How it works
Four steps, shown on a real conversion: realmehdi.com, a Framer site we own.
Paste your published Framer URL and convert it free. Deframer reads the site and writes every page, component and style as readable TypeScript, filed where a developer would put it.
When a live preview is available, open the original and the rebuilt site side by side at three widths, scrolling together, and see exactly where they differ.
Show it's your site. Paste your personal code into Custom Code and publish. Verify and unlock for 1 credit, or download directly for 10 credits after confirming you have permission.
A standard Next.js project in a zip: install it, run it, deploy it anywhere. Images and fonts stay on Framer's CDN unless you bring them home.
Paste your published Framer URL and convert it free. Deframer reads the site and writes every page, component and style as readable TypeScript, filed where a developer would put it.
When a live preview is available, open the original and the rebuilt site side by side at three widths, scrolling together, and see exactly where they differ.
Show it's your site. Paste your personal code into Custom Code and publish. Verify and unlock for 1 credit, or download directly for 10 credits after confirming you have permission.
A standard Next.js project in a zip: install it, run it, deploy it anywhere. Images and fonts stay on Framer's CDN unless you bring them home.
What you get
Every number below comes from realmehdi.com's conversion: 17 routes, 35 components, 256 files.
17 routes in src/app, each a page.tsx that sets its own title, description and canonical URL. Unknown paths get the site's 404.
35 components, each a .tsx file with typed props and its own CSS module, keeping the variants and hover states the designer set.
Props
stringstringFiles
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.
11 font stylesheets with @font-face rules, and 17 text styles as shared classes that change size at each breakpoint.
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.
44 transitions, appear effects and hovers keep their springs: 35 of them stiffness 500, damping 60, played by motion.
The code
Unedited files from realmehdi.com's project, 256 files in all. No Framer runtime: a small, readable kit in src/lib.
src/app/page.tsx
import type { Metadata } from "next";
import Template from "@/layouts/template";
import HomePage from "@/views/home";
export const metadata: Metadata = {
title: "Mehdi Hassan Portfolio",
openGraph: {
type: "website",
title: "Mehdi Hassan Portfolio",
description:
"Helping startups design & develop breathtaking products & websites. 🌟 Expert in copywriting, design, & development.",
images: ["https://framerusercontent.com/assets/h1lpVwE2dPBKzvByiXOr3ANSFDA.jpg"],
url: "/",
},
twitter: {
card: "summary_large_image",
title: "Mehdi Hassan Portfolio",
description:
"Helping startups design & develop breathtaking products & websites. 🌟 Expert in copywriting, design, & development.",
images: ["https://framerusercontent.com/assets/h1lpVwE2dPBKzvByiXOr3ANSFDA.jpg"],
},
alternates: {
canonical: "/",
},
};
export default function Page() {
return (
<Template>
<HomePage />
</Template>
);
}

Pricing
Convert free and see the result. Pay only when you download the code: one credit downloads one converted project, and credits never expire.
One download with site verification.
$10one-time
1 credit · $10.00 per credit
Five verified downloads, or save toward a direct download.
$25one-time
5 credits · $5.00 per creditSave 50%
For studios moving their clients' sites, with their permission.
$100one-time
30 credits · $3.33 per creditSave 67%
Prices in USD. Checkout by Polar, our merchant of record, which adds sales tax or VAT where it applies. Credits are added as soon as you pay and aren't refundable; see the refund policy.
Compare packs on the pricing pageSite protection
Verify ownership and block Deframer conversions, downloads and previews for 10 credits once. Optional inline capture deterrents have clear third-party limits.
FAQ
Credits and payments are covered on the pricing page, what we store in the privacy policy. Anything else: contact us.
Still have a question?
Write to a person. We answer by email.
Deframer converts a published Framer site into a clean Next.js project written in TypeScript, which you download as a .zip and own. Every page becomes a Next.js App Router route, components become React components with CSS modules, CMS collections become JSON files and native forms post to the project's own route handlers. There is no Framer runtime in the project, so it runs and deploys anywhere Next.js does.
Signed in, you can convert any published Framer site for free. It can be published on framer.website, framer.app or a custom domain: use the address visitors open, not the editor link. To download the code, the site must be yours, or its owner must have given you permission, such as a client. Verify for 1 credit, or confirm you have permission and download without verification for 10 credits.
You can convert it, but you can't download its code without the owner's permission. Deframer is for moving your own site to Next.js, Verify by asking the owner to publish your code for a 1-credit download, or confirm that you have their permission and download directly for 10 credits. Taking someone else's site without it breaks our terms, and we act on reports.
You add your personal verification meta tag to your Framer site's custom code and publish the site; Deframer then finds it on the live page.
<head> tag.Prefer to skip verification? Choose Download directly, confirm you own the site or have permission, and use 10 credits.
Verification lets you download for 1 credit by showing you control the site. Only someone who can publish a site can put the code on it, so finding it shows you control the site. Your code is personal and works for all your sites. We check it on the live page before each verified download. You can also download without verification for 10 credits by confirming you own the site or have permission. The converted project never contains the tag.
You own the converted code of your own site, and Deframer claims no rights in it: its content, design and code stay yours (or your client's), as they were. It includes Deframer's small helper kit, which you may use and change as part of the project, and open-source packages under their own licences. It doesn't include Framer's runtime.
You need a free Deframer account to convert a site, and credits to download: 1 with site verification, or 10 without it. Credits come in packs on the pricing page ($10 for 1 credit, $25 for 5, $100 for 30) and never expire. Converting, the live preview and compare view when they're available, and downloading the same project again are free, so a conversion that fails costs nothing.
A conversion can run for up to 10 minutes and produce a project of up to 1 GB.
Each conversion is private to your account, and its project and .zip are deleted 7 days after the conversion finishes. Only you can open its download, and its preview and compare view when there are any. Once deleted it shows as expired, and you can convert the site again. A live preview, when there is one, closes 10 minutes after it is ready.
To convert your site, Deframer reads the files it publishes, the same ones a browser loads; nothing in your Framer account is touched. A password-protected site is read with the password you enter, which is used once and never stored. The details are in the privacy policy.
Leave it off unless you want the converted site to stop depending on Framer's CDN. Off (the default), images, fonts and videos keep loading from Framer's CDN: the download is small and the conversion fast. On, they are downloaded into the project's public/ folder, so the site no longer depends on Framer at all. That takes longer and makes a bigger zip.
The converted Next.js site is close to the original but not guaranteed to be identical: layouts, breakpoints, animations, interactions and CMS pages are carried over from the published Framer site. 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.
Yes, whenever you like, for free. Every conversion is its own project, so converting again (after you republish, for example) makes a new project, and downloading that one uses a credit too. If you convert the same published version with the same options within 30 minutes, you get the same project back, so a download you already paid for stays free.
Unzip it and run npm install, then npm run dev: it is a standard Next.js App Router project that needs Node.js and nothing from Framer. Deploy it anywhere Next.js runs: Vercel, Netlify, a container or your own server.
Protect your site to block Deframer conversions, downloads and previews while active: verify ownership, then activate for 10 credits once. Both download options follow this block. The optional inline helper deters some capture tools, but third-party services may ignore it and public source remains accessible. Report misuse at mehdi@deframer.co as described in our terms.
No. Deframer is an independent tool. It is not affiliated with, endorsed or sponsored by Framer. "Framer" is a trademark of its owner and is used here only to describe which sites the tool converts.
Get started