Move your Framer site to clean Next.js code

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.

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

  • 22 secondsAverage conversion
  • 236Sites converted
  • 100%TypeScript code

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.

What every project is built on

Every project Deframer writes is a standard Next.js app

  • Next.js 16
  • React 19
  • TypeScript
  • CSS Modules
  • motion
  • Metadata API
  • @font-face
  • No Framer runtime
Read the generated code

How it works

From your Framer site to a project you own

Four steps, shown on a real conversion: realmehdi.com, a Framer site we own.

01

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.

Read the output
02

Compare before you download

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.

What the compare view shows
03

Unlock the download

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.

How verification works
04

Download it, run it anywhere

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.

See pricing
realmehdi.comConverting
  1. Fetching the site (in progress)Downloading the published pages and Framer's site bundle.
  2. Reading modules (to do)
  3. Converting to Next.js (to do)
  4. Packaging the project (to do)
  5. Building the preview (to do)
35 components, 17 routesClick a folder in the tree to list its files.

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.

See pricing

What you get

A project a developer would have written

Every number below comes from realmehdi.com's conversion: 17 routes, 35 components, 256 files.

  • Every page, a route

    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.

  • Components with typed props

    35 components, each a .tsx file with typed props and its own CSS module, keeping the variants and hover states the designer set.

    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

Framer in. Next.js out. Read every line.

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>
  );
}

localhost:3000 390

The home page this file renders, from the converted build at 390 wide
tsc --noEmit · 167 files · 0 errors

Pricing

Free to convert, one credit to download

Convert free and see the result. Pay only when you download the code: one credit downloads one converted project, and credits never expire.

  • Single

    One download with site verification.

    $10one-time

    1 credit · $10.00 per credit

  • Starter

    Most popular

    Five verified downloads, or save toward a direct download.

    $25one-time

    5 credits · $5.00 per creditSave 50%

  • Studio

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

    $100one-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 Next.js code

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 page

Site protection

Prefer to keep your site here?

Verify ownership and block Deframer conversions, downloads and previews for 10 credits once. Optional inline capture deterrents have clear third-party limits.

Explore site protection

FAQ

Questions, answered

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.

Contact us
What does Deframer do?

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.

Which sites can I convert?

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.

Can I convert a site I don't own?

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.

How do I verify my site?

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.

  1. Convert your site, then choose Download. Deframer shows your verification code, a one-line meta tag.
  2. In Framer, open Site Settings → Custom Code and paste it at the end of the <head> tag.
  3. Publish your site, then click Check again. Once verified, use 1 credit to unlock the download.

Prefer to skip verification? Choose Download directly, confirm you own the site or have permission, and use 10 credits.

Why do you ask for verification?

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.

Who owns the code?

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.

What do I need to start?

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.

What are the limits?

A conversion can run for up to 10 minutes and produce a project of up to 1 GB.

  • 3 free conversions a day; 20 a day once you've bought credits (over a rolling 24 hours). Conversions that fail because the server was busy don't count.
  • Up to 5 conversions per 10 minutes, with up to 2 running at once.
  • Very large sites may not fit. Try again with "Include assets locally" off: images, fonts and videos then stay on Framer's CDN, which makes the download much smaller.
  • Conversions run a few at a time. When it's busy, yours waits in line and the page shows its place. Conversions from accounts that have bought credits go first; a free one that has waited about 10 minutes goes ahead.
What happens to my files?

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.

Should I include assets locally?

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.

How close is the result to the original?

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.

Can I convert the same site again?

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.

How do I run the project?

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.

What if someone converts my site?

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.

Is Deframer affiliated with Framer?

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

Your site. Your code.

  1. Convert
  2. Download
  3. Deploy anywhere