
If you already have a React app and want visual edits to land in your own code, use an editor that edits your files. Onlook is the open-source pick for Next.js and Tailwind. Builder Code works across more frameworks and turns edits into pull requests. Cursor Design Mode is the easy add if you already code in Cursor. Subframe adds a design canvas and side-by-side variations: you inspect your running app, change it, and its agent writes the change into your repo (macOS desktop app). If marketers need to build pages from your components without a release, pick Plasmic or Builder's visual CMS instead. To put an editor inside your own product, use Puck. Below, every tool is judged on the same three edits to one existing React + Tailwind app: where each change lands, and whether it uses your code.
| Tool | What it sees of your code | Where an edit lands | Frameworks | Starting price |
|---|---|---|---|---|
| Onlook | Your repo and its components | Your files | React (Next.js, Vite, Remix, Astro, CRA) | Free to self-host (open source); hosted version in closed beta |
| Builder Code | Your repo, connected through Git | A branch and pull request | React, Next.js, Vue, Svelte, Angular | Free (60 agent credits a month); Pro $24/user/month |
| Cursor Design Mode | Your open project, through Cursor's browser | Your files, written by the agent | Any web app Cursor can run | Free; Plus $8/month; Premium $30/month |
| Subframe | Your connected folder and running app | Your files, written by the agent; Subframe components sync one way | React + Tailwind output; Inspect works on any HTML and CSS page | Free; Pro $20 per editor per month |
| v0 Design Mode | A v0 project | The v0 project's code | v0's React stack | Free; Plus $30/user/month |
| Plasmic | Components you register | Pages stored in Plasmic, or generated code | React (Next.js, Gatsby, Remix) | Free; paid from $39/month billed yearly |
| Builder.io visual CMS | Components you register | Content stored in Builder | React and other frameworks | See Builder's pricing |
| Puck | Components you pass to it | JSON in your own backend | React | Free (MIT license) |
We judged every tool on one existing Next.js app styled with Tailwind, with a shared Button component, a page heading and two content sections, and the same three edits:
For each edit we looked at where the change landed (a file diff, a CMS entry or generated code), whether the tool used the app's existing classes and theme or wrote raw values, and how much setup the tool needed before the first edit.
Onlook is an open-source visual editor for React apps. You edit visually and "every change is real code in your repo," using your existing components (Onlook). Its React page lists Next.js, Vite, Remix, Astro and Create React App, with Tailwind, CSS Modules and styled-components. The code is Apache 2.0 and free to self-host; a hosted version is in closed beta (pricing).
Best for: developers and design engineers who want a free, open-source editor on their own repo.
Where an edit lands: your source files.
Pros:
Cons:
Builder Code is Builder.io's visual editor for your existing codebase (it was called Fusion until recently, and some of Builder's docs still use that name). You connect a repo on GitHub, GitLab or Bitbucket, edit visually or with prompts, and the work is packaged into branches and pull requests (Builder). It supports React, Next.js, Vue, Svelte and Angular.

Best for: teams on several frameworks who want visual edits to go through code review.
Where an edit lands: a branch and pull request in your repo.
Pros:
Cons:
Cursor's browser has a visual editor: drag elements to rearrange the layout, inspect components and their props, and adjust styles with visual controls and your own tokens (Cursor). In Design Mode you click an element, draw on the page or describe a change by voice, and the agent gets the element's code and a screenshot and edits the source (Design Mode docs).

Best for: people who already code in Cursor and want to fix UI by pointing at it.
Where an edit lands: your source files, written by Cursor's agent.
Pros:
Cons:
Subframe is a design tool for your codebase, built on HTML and CSS. It brings together a canvas, a built-in browser and an agent (Subframe docs). You connect a local folder in the desktop app, open your running app in Subframe's browser, and edit props, styles, classes or content on the live page with Inspect. "Send" passes the change, your comments and a screenshot to the agent, which edits files in the connected folder (Making live edits). The agent runs on your own Claude Code or Codex subscription, or on Subframe AI credits; Cursor connects through MCP.

For bigger changes, capture a page onto the canvas and ask for 1–4 variations, which land as real pages you can compare and combine (Generating designs).
Best for: builders who want precise edits on their running app plus a canvas to explore bigger changes, with their own coding agent doing the implementation.
Where an edit lands: your source files, written by the agent. Components you design in Subframe sync one way, from Subframe to your code, through the CLI.
Pros:
Cons:
v0 by Vercel generates apps from a prompt and has a design mode with visual controls and a live preview; it syncs with a GitHub repo and deploys to Vercel (v0).

Where an edit lands: the v0 project's code.
Pros:
Cons:
Plasmic is a visual builder for React. You register components from your codebase, and people build pages with them in Plasmic; your app loads those pages, or you generate React code into your repo (Plasmic). It has the deepest support for Next.js, Gatsby and Remix.

Best for: marketing and content pages that non-developers should be able to change without a release.
Pros:
Cons:
Builder's visual CMS works the same way as Plasmic: register your components, and editors build pages with them in Builder's visual CMS. It's the right choice when the job is content pages, not your app's UI.

Puck is an open-source page editor for React, under the MIT license. You pass it your components, it gives your users a drag-and-drop editor inside your app, and it stores the result as JSON in your own backend (Puck).

Best for: products that need to offer their own users a page builder.
Pros:
Cons:
Also worth knowing: UXPin Merge lets designers build prototypes with your real React components, synced from Git or Storybook (UXPin). It's a prototyping tool, not an editor for your app.
Many of these tools say they "sync" with your code. They mean different things:
If you want your existing code to stay the only source of truth, pick from the first group.
One that edits your code directly, so you don't end up with a separate copy of your app. Onlook and Cursor Design Mode let you point at the page and change it. Subframe does the same and adds variations you can pick from, which helps when you can't describe the design you want.
Onlook, Builder Code, Cursor Design Mode and Subframe's agent all write changes to your files. Plasmic and Builder's visual CMS keep pages in their own system.
The editors that work on your files avoid sync altogether: there's only one copy, your code. Onlook, Builder Code, Cursor Design Mode and Subframe's agent work this way. Subframe's own components sync one way, from Subframe to your code, through its CLI.
Yes. Onlook, Builder Code and Plasmic support Next.js, and Subframe's install guides cover Next.js, Vite and Astro with Tailwind.
Yes, with Onlook, Cursor Design Mode or Subframe's built-in browser. In Subframe you edit with Inspect and the agent writes the change to the files in your connected folder.
Edit your running app, explore a few directions, and let your agent write the code. Try Subframe free.