FNJ

Framer to React

Framer runs on React, but there's no button that exports a site as React. Here are the tools that do, what each one actually exports, and what a converted Framer site looks like as a component project.

The short answer

There's no button in Framer that exports a site as React. Framer is built on React, which is why people expect one, but a published site runs on Framer's runtime and hosting. Third-party tools fill the gap, and they come in two kinds that do different jobs:

  • Component exporters (React Export with the unframer CLI, Reframe) copy components you pick into a React app you already have. Good for reusing a Framer-designed section inside an existing codebase; they don't export a site.
  • Whole-site converters (FNJ, ConvertFramer, and the Full Site Export plugin's readable mode) turn a published site into a React project.

Among the whole-site options, what matters is whether the result is still your site. FNJ gives one file per section, named as you named it in Framer, composed by a view and rendered by a route, and it still renders the original page exactly, animations and breakpoints included: a project a developer can open and continue.

Framer to React tools, compared

ToolWhat it exportsWorks fromPrice
React Export + unframerComponents you pick, as typed React files for an app you already haveA plugin inside the Framer project, then a CLI$50/month hobby, $250/month commercial
ReframeComponents you publish, installed into your React appA plugin inside the Framer project, then a CLIStarter, Pro and one-time Lifetime Pro plans
Full Site Export (readable mode)A whole site rebuilt as React/Next.js components, close to the original but not identicalA plugin inside the Framer project3 free exports of 3 pages, then $10/month or $99/year
ConvertFramerOne page per export, as JSX with extracted CSSA file from its Chrome extension, uploaded$15 per page
FNJThe whole site as a Next.js project, one named component per section, rendering the original exactlyThe site's public URL; no Framer project access neededOne payment (FNJ Lifetime)

Read off each tool's own page on 20 October 2026; prices and features change, so check before you buy. Full Site Export also has exact static and Next.js copies of a site; its readable React mode is the one listed here. ConvertFramer's automated tier doesn't keep Framer's responsive behaviour, and puts animations in its paid migration service.

What you actually get

A Next.js App Router project. The parts that matter:

src/sections/home/Hero.tsx        one file per Framer section
src/sections/home/Pricing.tsx     named from your Framer section names
src/sections/shared/Footer.tsx    sections reused across pages, emitted once
src/views/HomePage.tsx            composes that page's sections
src/styles/custom.css             your CSS, last in the cascade
app/route.ts                      serves the page, prerendered at build
app/work/project/route.ts         nested routes preserved as authored

Section names come straight from Framer, so the file tree reads like your layer panel. That is the whole trick: the names you already chose become the API of the codebase, instead of a developer having to invent them after the fact from a wall of generated markup.

Text lives apart from markup

Each section's copy is hoisted into a named copy export, so changing a headline is editing a string, not editing JSX:

import { copy } from "@/src/sections/home/Hero/copy";

This is also what makes the MCP tools safe on a converted site — an agent rewriting a headline changes one string and cannot disturb the layout around it.

One caveat: Framer's runtime, which still loads from Framer's CDN, re-renders the text it controls after the page loads. Editing a string changes the HTML search engines read, but visitors can still see Framer's original until you change it in Framer and convert again. Styles you write in the exported CSS always apply.

What this is not

Worth being blunt, because the category oversells here. The components are your original markup and inline styles organised into files— not a hand-written rewrite. Class names are Framer's generated ones. Framer's runtime still runs the page, loaded from Framer's CDN, which is what keeps every animation identical and also what keeps this mode off the top of the Lighthouse chart.

The honest framing: this is a conversion optimised for ownership and fidelity. The HTML modemakes the same trade as plain static files instead of components; neither mode removes Framer's runtime. No converter turns a Framer design into code that looks hand-authored, and any that claims to is describing a rewrite you would still have to check line by line.

Related: All routes from Framer to code Ā· How to export a Framer site Ā· Convert Framer to Next.js Ā· Framer to HTML converter Ā· Framer vs owning your code

Starting a new site instead?

FNJ also makes an AI website builder. Describe the site and show it one you like: it designs every page for desktop, tablet and phone on a canvas you can edit, then gives you the code, a Next.js project or static HTML, to host wherever you want.

See the AI website builder →

FAQ

Can you export a Framer site to React?

Not with Framer itself. Framer is built on React internally, which is why people assume an export exists, but there is no button that exports a published site. Third-party tools fill the gap: plugins such as React Export and Reframe copy individual components into a React app you already have, while whole-site converters such as FNJ turn the published site into a React project from its public URL.

What do the exported React components actually look like?

One file per section, named from the section names you set in Framer. A Hero section on the home page becomes src/sections/home/Hero.tsx. Each page gets a view that composes its sections at src/views/HomePage.tsx, and an App Router route renders that view. Sections used on more than one page are emitted once into src/sections/shared/ rather than duplicated.

Is it real React or just HTML wrapped in a component?

Real components with real boundaries — one file per section, composed by a view, imported by a route. What it is not is a hand-written rewrite: the markup and inline styles are the ones Framer authored, organised into files, so the rendered DOM matches the original exactly. Measured element parity with the source is 100%. You get code you can extend and move; you do not get code that looks like a developer wrote it from scratch, and no converter can honestly promise that.

Can I edit the text without touching the markup?

Yes. Each section's text is hoisted into a named copy export, so changing a headline means editing a string rather than hunting through generated JSX. MCP tools can also update supported copy without disturbing the layout around it.

Do animations survive the React conversion?

Yes, in the Next.js Converter. It keeps Framer's runtime intact on purpose, so every animation, scroll effect and interaction behaves as authored. The trade is performance: that runtime still ships. The HTML mode keeps the runtime as well; neither mode is a runtime-free rebuild.

Can I use the exported components in an existing React project?

Section files are ordinary React components, so they can be imported elsewhere — but be realistic about it. They carry Framer's generated class names and expect the runtime and stylesheet that ship with the project, so lifting one section into an unrelated codebase means bringing that context along. Moving whole pages, or extending the exported project itself, is the path that works cleanly.

Is it Next.js or plain React?

A Next.js App Router project — one route per page, prerendered. Next.js is React, so anything you know about React components applies; you additionally get routing, prerendering and a build that deploys to Vercel, Netlify or Cloudflare Pages without configuration. There is no plain-CRA output, because a bare React bundle would lose the per-page routes and the prerender that keeps the DOM identical.

What does a Framer to React conversion cost?

Conversion is included with FNJ Lifetime, a one-time purchase. See the pricing page for the current offer and terms; conversions are counted per site, not per page.

See your own site as components

Paste your published Framer URL and get a Next.js project with one named component per section — yours to extend, host and keep.

Example: https://your-site.framer.website

Ready to convert your website? Production-ready in minutes.

Paste your published Framer URL to generate a production-ready project in minutes.

Example: https://your-site.framer.website— your published site’s address. A custom domain works too.