React Now Runs Native on Salesforce. LWC Just Got Company.

React now runs native on the Salesforce platform through Multi-Framework. Here is the architecture decision every Salesforce team faces: React or LWC, and when to pick which.

Platform · Developer Experience · Multi-Framework

React Now Runs Native on Salesforce. LWC Just Got Company.

For 17 years, building on Salesforce meant Aura or LWC. That just changed. Multi-Framework lets you ship native React apps on the Agentforce 360 Platform with GraphQL, Apex, and platform security built in. Here is the architecture decision your team now has to make.

Reading time: ~9 minutes | Published: July 2026 | Published By: Sandip Patel, Salesforce Architect
FRAMEWORK React Now a native, first-class option on the platform
STATUS Open Beta Live in scratch orgs and sandboxes today
SDK GraphQL Plus Apex and UI API, auth handled for you
LWC Stays Runs side by side, no migration required
TL;DR

Salesforce Multi-Framework, announced at TDX 2026 and now in open beta, lets you build native React apps that run on the Agentforce 360 Platform with the same sharing rules, CRUD, and FLS your LWC already respects. It is additive, not a replacement. LWC is not going anywhere. The real work for architects is knowing when to reach for React and when LWC is still the better call, and setting that guardrail before your teams start picking on vibes alone.

1
The Trade-Off That Just Disappeared
For years you picked the platform or the ecosystem. Not both.

Here is a conversation I have had more times than I can count. A team lead walks in with three strong React developers, a shipping deadline, and a Salesforce project. And the first two weeks get spent teaching those React developers Lightning Web Components. Decorators. Wire adapters. SLDS. The base component library. Good people, slowed to a crawl, relearning things they already knew how to do in a framework they already knew.

That tax is what Multi-Framework just removed.

Announced at TDX 2026 and now in open beta, Multi-Framework is a framework-agnostic runtime on the Agentforce 360 Platform. It lets you build native Salesforce apps in React, running on the platform, with authentication, security, and governance already wired in. Not React bolted on through an iframe or a Visualforce hack. Native. Your GraphQL queries respect sharing rules. Your data calls honor CRUD and field-level security. The platform is still the platform.

Why This Matters Now

Before this, using an open-source library on Salesforce meant wrestling it into a static resource and giving up platform features. React developers were a hiring bottleneck, not an asset. Multi-Framework changes the math: the global React talent pool can now build on Salesforce without a months-long detour through LWC first.

Salesforce’s front-end story has moved in long, deliberate steps. Visualforce in 2008. Aura in 2015. LWC in 2019, built on real web standards and eventually open-sourced. Each was a genuine step up. But every one of them was Salesforce-only. You learned the framework to build on the platform, full stop.

Multi-Framework breaks that pattern for the first time. React is not the endgame either. Vue, MCP UI, and A2UI are on the roadmap. React just happens to be the door that opened first, and it is a big door.

2
How React Actually Runs on the Platform
The interesting part is not React. It is the governance underneath it.

Anyone can host a React bundle somewhere and call a few APIs. That is not what this is. The whole point is that the React app runs as native platform metadata and inherits the org’s security model without you writing a line of auth code.

Salesforce treats your entire React project as a new metadata type called a UI Bundle. You generate a starter app, and it comes preconfigured with a real toolchain: the Multi-Framework SDK for platform access, Vite for bundling, Vitest for testing, shadcn/ui for components, and Tailwind for styling. If you have shipped a React app in the last three years, none of this is foreign.

💾
Data via GraphQL

The @salesforce/sdk-data package queries and mutates records through GraphQL. It manages requests so your app stays inside API limits instead of hammering the org.

🔑
Auth Handled for You

The createDataSDK() utility handles authentication automatically. No token juggling, no refresh logic, no secrets in your React code. This is the part that usually goes wrong, and it is gone.

Apex When You Need It

Call Apex methods directly through the SDK for server-side logic that goes past simple CRUD. Your existing business logic stays where it is and stays callable.

🔐
Security Inherited

Every GraphQL query and mutation runs against the org’s sharing rules, object-level security, and field-level security. React does not get a bypass. The platform still decides who sees what.

That last card is the one to sit with. When a React component asks for records, it does not get a private side channel to the database. It goes through the same permission checks an LWC component would. Your security model is doing the work, not the framework. For an architect, that is the difference between a toy and something you would actually approve for production.

“Choosing React does not mean leaving behind the platform capabilities that make Salesforce worth building on. The SDK carries them with you.”

Data access works through a GraphQL query shaped like the UI API you already know: an object, its edges, its nodes, the fields you name. If you have written a GraphQL query before, you can read a Multi-Framework one on sight. Fetch a list of Cases, map them, render them. The auth you would normally sweat over is already solved before you type the first hook.

3
React or LWC: The Real Decision Matrix
Neither one wins across the board. That is the whole point.

The mistake I already see teams making is treating this as a winner. React won, LWC lost, rip it all out. Wrong read. This is an expansion of the toolkit, not a replacement, and the orgs that get value from it will be the ones that decide, on purpose, which tool fits which job.

Here is how the two actually line up.

R
React (Multi-Framework)
Reach for the open ecosystem
  • Data access through GraphQL, Apex invocation, and UI API
  • Bring your own components: shadcn, MUI, Ant Design, or an internal design system
  • Style with Tailwind, CSS Modules, or any CSS-in-JS you like
  • Full npm, Vite, Vitest, and React DevTools tooling
  • Best when: your team is React-strong or components are shared across Salesforce and non-Salesforce surfaces
L
Lightning Web Components
Reach for the declarative platform
  • Declarative data with @wire and Lightning Data Service caching
  • 80+ Salesforce base components out of the box
  • SLDS tokens and classes built in, accessibility baked into the compiler
  • Full drag-and-drop Lightning App Builder support with property panels
  • Best when: admins configure pages, you want App Builder placement, or you need LDS caching

The Two Questions That Actually Decide It

Strip away the feature lists and the choice comes down to two questions. First: who maintains this after launch? If the answer includes admins dragging components onto record pages in App Builder, that points to LWC, because React placement in App Builder is not there yet. If the answer is a developer team owning a standalone app, React is on the table.

Second: does this UI live only on Salesforce, or does it need to show up elsewhere too? A component you want to share across a Salesforce app and an external portal is a React story. A component that reads and writes standard record fields inside Lightning Experience is still an LWC story, and a good one.

Architect’s Take

Do not let this become a religious war on your team. LWC has 80+ base components, LDS caching, and native App Builder placement that React cannot match yet. React has the ecosystem and the talent pool. Write down which surfaces use which framework, and why, before anyone opens Vibes. That one page of guidance will save you a year of drift.

4
Agentforce Vibes Writes the React For You
Fast is good. Ungoverned fast is how tech debt scales.

The React-on-Salesforce story does not stop at “you can write React now.” Agentforce Vibes 2.0 generates Multi-Framework React apps from plain-language prompts. Describe a dashboard showing open Opportunities by stage, and Vibes produces the React code, the GraphQL queries, and the Salesforce metadata to back it.

The tooling around it is genuinely useful. React and Apex templates to scaffold from, a Salesforce MCP server to pull and deploy metadata straight from the IDE, live preview as you build, and the Einstein Trust Layer keeping your prompts and responses out of model training. For getting a working app in front of stakeholders on day one, this is a real speed jump.

Step 1
Describe
Plain-language prompt for the app you want
Step 2
Generate
Vibes writes React, GraphQL, and metadata
Step 3
Preview
Live preview updates as you refine
Step 4
Deploy
Push the UI Bundle to your org

Now the part nobody puts on the slide. When generating a working React app drops from days to minutes, the volume of code your org has to review, secure, and maintain goes up, not down. Speed does not remove the review. It moves it, and it makes skipping it tempting.

Real Talk

Vibes-generated React is still React you own forever. If five teams each vibe up their own dashboard with their own component library and their own query patterns, you have not saved time. You have bought yourself five codebases to reconcile later. Governed generation, shared templates, and a review gate are not optional overhead here. They are the thing that keeps speed from turning into sprawl.

Used with a house style and a review step, Vibes is a strong accelerant. Used as a free-for-all, it is automation sprawl with better syntax highlighting. The tool is fine. The discipline around it is the architecture.

5
What Will Bite You in Beta
This is open beta, and the constraints are real. Plan around them.

I like this feature. I am also not going to pretend it is production-ready everywhere, because it is not, and finding that out mid-project is expensive. Here is what to know before you commit a roadmap to it.

SCOPE
No Prod

Beta apps cannot deploy to production orgs. Scratch orgs and sandboxes only, English default language.

APP BUILDER
Not Yet

No drag-and-drop placement for React components in Lightning App Builder. Planned for GA.

APIs
Partial

Some platform APIs are not available in the beta runtime. Check the beta docs for the current list.

The production limitation is the big one. You can prototype, demo, and pressure-test with real sandbox data, but you cannot ship to production yet. So this belongs in your evaluation and internal-tools track right now, not on the critical path for a customer-facing launch this quarter.

The Micro-Frontend Question

A lot of the excitement is about embedding React components inside existing Lightning pages as micro-frontends, sitting next to your LWC on the same record page, sharing the platform’s data and permission layer. That is the pattern most enterprise teams actually want. It is also the least mature piece. Micro-frontend support is in early preview, with the full drag-and-drop experience targeted further out on the roadmap.

So if your plan depends on dropping React islands into Lightning Experience pages tomorrow, slow down. Standalone React apps are the beta that is live today. The embedded story is coming, but coming is not shipped.

Architect’s Warning

Do not let a slick TDX demo turn into a production commitment. Standalone React apps in sandbox: try them now. Production customer apps and embedded micro-frontends: put them on the roadmap, watch the release notes, and hold the line until the beta tag comes off. The gap between demo and GA is exactly where projects overpromise.

6
What Architects Should Do This Quarter
The move is experimentation, not migration.

If you lead a Salesforce practice, the wrong reaction to this is a migration plan. There is nothing to migrate. Your LWC works, keeps working, and stays the right tool for a large share of what you build. The right reaction is smaller and smarter: run a real pilot and write the rules before your teams write them for you.

PILOT DECIDE GOVERN
1
Spin up one React app in a sandbox
Generate the starter UI Bundle, wire it to real data through the SDK, and have a React developer who has never touched LWC build something small. Time it. The onboarding speed is the whole business case, so measure it instead of guessing.
One week, one developer
2
Try the recipes before you build from scratch
Salesforce ships 20+ code samples in the Multi-Framework recipes repo. Start there. You will learn the SDK patterns and the GraphQL shape faster from working examples than from a blank editor.
Learn the SDK fast
3
Write your React-vs-LWC guidance on one page
Which surfaces default to LWC, which are open to React, and who signs off on the exception. Base it on the two questions from section three: who maintains it, and does it live only on Salesforce. Do this before the pilot ships, not after ten teams have improvised ten answers.
Highest-impact hour
4
Set the Vibes guardrails now
Pick a default component library. Agree on a query pattern. Put a human review gate between generated code and the org. If you wait until Vibes is in wide use to decide this, you are cleaning up instead of preventing.
Prevent the sprawl

The UI layer on Salesforce is entering a genuinely plural period. LWC is not going anywhere. React is now a first-class native option. And the Agentforce experience layer adds a third dynamic where agents assemble interfaces on the fly. Knowing which tool fits which job is turning into a core architectural skill, not a matter of taste.

So here is the question I would put to any team evaluating this right now. Not “should we use React?” The better one: if a new React developer joined your team on Monday, how long until they ship something real on your org? For the first time, the honest answer might be measured in days. That is the shift worth paying attention to.

7
Frequently Asked Questions
React, LWC, beta scope, and getting started with Multi-Framework
Does Multi-Framework replace Lightning Web Components?
No. It runs alongside LWC and is additive, not a migration mandate. Your existing Lightning Web Components keep working exactly as they do now. React becomes a second native option for the cases where it fits better, and LWC stays the right choice for declarative data access, base components, and App Builder placement.
Can I use Multi-Framework React apps in production today?
Not yet. As of the open beta, apps run in scratch orgs and sandboxes with English as the default language, and cannot be deployed to production. Use it now for evaluation, internal prototypes, and learning the SDK. Keep production customer apps on the roadmap until Salesforce lifts the beta production restriction.
How does a React app get data without exposing credentials?
The createDataSDK() utility handles authentication automatically, so there is no token management in your React code. Data flows through GraphQL queries and Apex calls, and every request respects the org’s sharing rules, CRUD, and field-level security. The framework does not get a bypass around your permission model.
When should I still choose LWC over React?
Choose LWC when admins need to place components in Lightning App Builder, when you want declarative data access with @wire and Lightning Data Service caching, or when the 80+ base components and SLDS get you there faster. React shines when your team already knows it, when you need an open-source component library, or when a component has to be shared across Salesforce and non-Salesforce surfaces.
Do I need Agentforce Vibes to build React apps on Salesforce?
No. You can generate a starter app with the Salesforce CLI using the ui-bundle template and build with your normal React toolchain: Vite, Vitest, Tailwind, and shadcn/ui come preconfigured. Vibes speeds up generation from natural-language prompts, but the underlying project is a standard React app you can run and preview locally.
Can I embed React components inside existing Lightning pages?
That is the micro-frontend pattern, and it is the least mature part right now. Embedding React as islands next to LWC on the same page, sharing the platform’s data and permission layer, is in early preview, with full drag-and-drop placement targeted later on the roadmap. Standalone React apps are what the current open beta supports. Watch the release notes for the embedded timeline.

Leave a reply

Your email address will not be published. Required fields are marked *