
Builder.io's Visual Editor lets a team that already has a React or Next.js codebase hand routine page and content changes to non-developers, without moving the codebase itself into Builder. Developers register the components that already exist in the app; Builder becomes a place to compose pages from those components and publish content changes without a code deploy. It's a content layer next to your codebase, not a replacement for it.
A developer calls registerComponent() on an existing React component to make it "appear in the Visual Editor as a custom block" (Builder.io, "Register Custom Components", checked September 2026). Registering it means defining which props are editable: "If you have a prop you'd like to make editable in the Visual Editor, be sure to define an input for it" (same source). Once registered, the component shows up in the editor's Insert tab, where someone without a coding background can drag it into a page and adjust its registered inputs — nothing beyond what the developer exposed.
Under the hood, Builder keeps a map of registered component names to references, and content itself is stored as JSON with a blocks field listing which components to render and with what props (Builder.io, "How Builder Works", checked September 2026). Your app renders that JSON by walking the blocks and instantiating the matching registered components — the component's actual code, behavior, and styling all still live in your repository. Builder is explicit that it "integrates with your front-end code, not with your hosting platform, and pushes content to your site or app using APIs or generated code. You control your site, code, and hosting" (same source).
Content in Builder moves through a draft-and-publish cycle, not a code deploy. Builder's own steps: "Go to a draft content entry, or create a new one," "Update text, styles, and more within the content entry," then "Click the Publish button" (Builder.io, "Publish your content", checked September 2026). The effect is immediate at the data layer — "Publishing a content entry makes it accessible to standard API calls and should make it visibly accessible on your web application, if integrated correctly" (same source) — but "if integrated correctly" is doing real work in that sentence. Your app has to actually be pulling from Builder's Content API and pointed at the right preview or production URL for a published change to show up; publishing in Builder's dashboard doesn't push a new deploy of your app on its own.
Builder ships two different AI features that solve different problems, and it's easy to conflate them.
Visual Editor AI works inside the content-editing flow you already have. Builder describes it as handling "various tasks, such as generating and editing content, styling components based on style guides, and adding interactivity by connecting content to data or responding to user actions" (Builder.io, "Generate content with Visual Editor AI", checked September 2026). Critically, it works only with what's already registered: it "can use your Space's registered design tokens, custom components, templates, and Symbols" (same source), and Builder is direct about the dependency — "For Visual Copilot to have something to work with, you must have a selection of custom components" (same source). No registered components, no useful AI generation; this is the same component-registration step from above, not a separate setup.
Visual Copilot is a different, Figma-facing product: an AI Figma-to-code plugin that converts a selected Figma design into React, Vue, Svelte, Angular, or other framework code. For a team with an existing component library, Builder says "this feature in Visual Copilot uses AI to map reusable components in your Figma file to those in your code repository and generates code using your existing components when you have them" (Builder.io, "Introducing Visual Copilot", checked September 2026) — but that specific component-mapping capability is "currently available only through a private beta program for organizations with maintained design systems and component libraries" (same source), so don't assume it's turned on by default. It's a design-to-code generator you run once per design, not an ongoing content-editing tool like Visual Editor AI.
| Stays in your codebase | Moves into Builder |
|---|---|
| Component code, logic, styling internals | Which components appear on a given page, and in what order |
| Hosting and deployment (Netlify, Vercel, AWS, etc.) | The registered inputs' values (text, images, links) for each page |
| Which props are exposed as editable inputs | Draft/publish state and content history for those entries |
| Build pipeline and framework choice | AI-generated content and styling, scoped to registered components/tokens |
A team that already has developers, a component library, and a reason to let non-developers ship pages without a deploy. Builder's own marketing page for this audience describes the split directly: developers handle "system integrations with existing tools," "approved components and templates," and "brand governance frameworks," while marketers then "create landing pages, campaign pages, site updates, and reusable sections in the Visual Editor" within that structure (Builder.io, "Marketing Teams", checked September 2026). The page also names roles, locales, and permissions as part of the model — cross-functional teams, not a single person wearing every hat.
That's also exactly where it stops fitting. A solo site owner with no codebase and no developer has nothing to register a component against — there's no existing React or Next.js app for Builder to sit beside. A hosted builder, or a design-to-publish tool like Figment, solves a different problem for that person: getting a site live at all, not giving a non-developer controlled editing rights inside an app that already exists. If your team is on the other side of that line — you have AI-generated app code from Bolt, v0, or Lovable and you're turning it into a real, owned codebase — our guide on moving an AI builder project into your own codebase covers that earlier step. Builder.io's job starts once that codebase and its components already exist.
Example (hypothetical): A Next.js team registers a PricingSection component with plan, price, and features as editable inputs. For a pricing update, a growth marketer opens that content entry in the Visual Editor, edits the price and feature list through the registered inputs — no code change, no deploy — and clicks Publish. The updated section appears on the live pricing page because the Next.js app's Content API integration is already pointed at Builder's production endpoint. If the team later wants an AI-generated first draft of a new landing page section, they'd ask Visual Editor AI to build it from the same registered PricingSection and other approved components, then a marketer edits the result before publishing. This is illustrative only, not a test we ran.
Bottom line: Builder.io doesn't ask a React or Next.js team to give up their codebase — it asks them to register the components worth exposing, then hands page composition and publishing to people who aren't writing code. Both of its AI features run on top of that same registration step. It's built for a team that already has developers and a component library to point at; a site with neither has nothing for Builder to connect to yet.