Back to tips

Best Visual Editors for React and Tailwind CSS (2026, Tested)

For an existing React app, pick an editor that writes to your code: Onlook, Builder Code, Cursor Design Mode or Subframe. Plasmic and Puck fit other jobs.

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.

The short version

  • Onlook: open-source visual editor that writes every change to your React repo.
  • Builder Code: Builder.io's visual editor for your codebase, with edits packaged as branches and pull requests.
  • Cursor Design Mode: point at an element in Cursor's browser and the agent edits the source.
  • Subframe: inspect and edit your running app, explore variations on a canvas, and let Claude Code or Codex write the change.
  • v0 Design Mode: visual controls for apps you build in v0.
  • Plasmic: a visual page builder and CMS that uses components you register from your code.
  • Builder.io visual CMS: the same idea from Builder, for content and marketing pages.
  • Puck: an open-source page editor you embed in your own React app.

At a glance

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)

How we tested

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:

  1. Change the padding of the shared Button.
  2. Change the page heading's color to a color from the Tailwind theme.
  3. Swap the order of the two sections.

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.

Editors that change your code

Onlook

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:

  • Open source, so you can run it yourself and see exactly what it does.
  • Edits your existing components; there's nothing to import or register.

Cons:

  • No canvas for exploring several directions side by side; you edit the page you have.
  • The hosted version is still a closed beta.

Builder Code

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.

Builder.io Code product page hero reading "Build in your existing codebase" with customer logos below.
Builder Code's product page

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:

  • The widest framework support here.
  • Pull requests fit the review process engineers already use.

Cons:

  • Setup is more technical than the other editors here.
  • Agent credits are limited on the free plan (60 a month).

Cursor Design Mode

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).

Cursor's homepage hero reading "Cursor is your coding agent for building ambitious software" above a screenshot of the Cursor Desktop app and CLI.
Cursor's homepage

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:

  • No new tool: visual edits and the code are in the same window.
  • Works on Mac, Windows and Linux.

Cons:

  • No design canvas, so you can't compare several directions side by side.
  • Each change is a prompt to the agent, so results can vary from run to run.

Subframe

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.

Subframe's homepage hero with the headline "Design & build in one tool." above Download for macOS and Open in web buttons.
Subframe's homepage

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:

  • Edit the running app directly, then hand the exact change to your agent instead of describing it.
  • Pick from variations side by side for bigger redesigns.
  • Inspect works on any HTML and CSS page, not just React.

Cons:

  • Connecting a codebase, the built-in browser and using your own agent need the desktop app, which is macOS only today.
  • Component sync is one way: edits to synced component files are overwritten on the next sync unless you turn sync off for that component.

v0 Design Mode

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).

v0 homepage hero with the "What do you want to create?" prompt box, starter suggestions and a row of templates below.
v0's homepage

Where an edit lands: the v0 project's code.

Pros:

  • Quick visual tweaks without leaving v0.

Cons:

  • Built around v0's own projects; it's not an editor for an app you built elsewhere.

Editors that keep pages in their own system

Plasmic

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.

Plasmic's React page hero reading "The drag-and-drop page builder and headless CMS for React" with a Try Plasmic for free button.
Plasmic's React page

Best for: marketing and content pages that non-developers should be able to change without a release.

Pros:

  • Marketers publish page changes without a deploy.
  • Uses your real components once they're registered.

Cons:

  • Registering components is setup work for developers.
  • Pages live in Plasmic, so it isn't an editor for the UI you've already written.

Builder.io visual CMS

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.

Builder.io's homepage hero reading "Build software with your team and agents" with collaborative cursor labels and customer logos.
Builder.io's homepage

Puck

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).

Puck's homepage hero reading "The agentic visual editor for React" with an npx install command and Try demo and Read docs links.
Puck's homepage

Best for: products that need to offer their own users a page builder.

Pros:

  • Free, open source and fully in your control.

Cons:

  • You build and host the editing experience yourself.
  • It edits content made from your components, not your app's source code.

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.

Code as the source of truth: what "sync" means for each tool

Many of these tools say they "sync" with your code. They mean different things:

  • Writes to your files: Onlook, Cursor Design Mode and Subframe's agent change your source directly. Builder Code does too, through a pull request. Your repo stays the source of truth.
  • Keeps pages in its own system: Plasmic, Builder's visual CMS and Puck store pages as content made from your registered components. Your components live in code; the pages live in the tool or your database.
  • Generates code one way: Subframe components sync one way, from Subframe to your codebase, through its CLI. Plasmic can generate React code into your repo. In both, the tool is the source of truth for what it generates, and edits to those generated files are overwritten.

If you want your existing code to stay the only source of truth, pick from the first group.

Which should you choose?

  • You want a free, open-source editor for your Next.js + Tailwind repo: Onlook.
  • Your team uses several frameworks and wants edits as pull requests: Builder Code.
  • You already code in Cursor: Cursor Design Mode.
  • You want precise edits on your running app and a canvas with variations for bigger changes, with Claude Code or Codex doing the work: Subframe, on a Mac.
  • You build in v0: v0 Design Mode.
  • Marketers need to build pages from your components without a release: Plasmic or Builder's visual CMS.
  • You want to give your own users a page editor: Puck.

Doing it in Subframe

  1. Connect your codebase in the Subframe desktop app and choose Claude Code, Codex or Subframe AI credits as the agent (Connecting your codebase).
  2. Open your running app in the built-in browser.
  3. Select an element with Inspect and change its props, styles, classes or content on the live page.
  4. Click Send. The agent gets the change, your comments and a screenshot, and edits the files in your folder. Review the diff as you would any change.
  5. For a bigger change, capture the page onto the canvas, ask for variations, pick or combine one, and send it to the agent (Capturing as designs).

FAQ

What's a good visual editor for my existing React app if I'm not a designer?

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.

Which visual development tools keep code as the single source of truth?

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.

Is there a visual builder that syncs directly with my React codebase?

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.

Do these tools work with Next.js and Tailwind?

Yes. Onlook, Builder Code and Plasmic support Next.js, and Subframe's install guides cover Next.js, Vite and Astro with Tailwind.

Can I edit my running app visually and update the actual source files?

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.

Try it

Edit your running app, explore a few directions, and let your agent write the code. Try Subframe free.

Join thousands of builders.

Subframe lets you build stunning UI with beautifully crafted components and a drag-and-drop visual editor.