Build AR apps with
React Native and Expo.
Everything you need for AR in React Native: ViroReact, the open-source AR library in production since 2017, the ViroReact MCP Server so your AI coding agent writes scenes that run first time, and a Starter Kit with working demos. Native ARKit and ARCore performance, no Unity.
How to build an AR app with React Native
Four steps from empty project to AR running on a phone, using ViroReact, the open-source AR library for React Native.
Install ViroReact
Start from the Starter Kit, an Expo + TypeScript template with working AR demos, or add ViroReact to an existing React Native or Expo app with npm install @reactvision/react-viro.
Create a development build
AR runs on native ARKit and ARCore modules, so ViroReact cannot run in Expo Go. Add the Viro config plugin to app.json, then build a development client with EAS Build or npx expo run.
Write your first AR scene
Render a ViroARSceneNavigator with a ViroARScene inside. Declare 3D text, models, lights, and animations as React components with typed props. The code below is a complete working app, or connect the ViroReact MCP Server and let your coding agent write it.
Run it on a phone
AR needs a physical iOS or Android device, simulators and emulators are not supported. Install your development build, point the camera at a surface, and your scene renders in the room.
import React, { useState } from 'react';
import {
ViroARScene,
ViroARSceneNavigator,
ViroText,
ViroTrackingStateConstants,
} from '@reactvision/react-viro';
function HelloArScene() {
const [text, setText] = useState('Initializing AR...');
return (
<ViroARScene
onTrackingUpdated={(state) => {
if (state === ViroTrackingStateConstants.TRACKING_NORMAL) {
setText('Hello, React Native AR!');
}
}}
>
<ViroText
text={text}
scale={[0.5, 0.5, 0.5]}
position={[0, 0, -1]}
/>
</ViroARScene>
);
}
export default function App() {
return (
<ViroARSceneNavigator
autofocus
initialScene={{ scene: HelloArScene }}
/>
);
}Let your AI agent write the ViroReact
The ViroReact MCP Server connects your AI coding agent (Claude Code, Cursor, Copilot) to full, current context of the renderer: components, prop schemas, event handlers, valid scene patterns, and working examples, plus tools to validate and run the scenes it writes. Connect it and your agent ships React Native AR that runs first time, reviewed instead of debugged.

AR in React Native, on the stack you already use
ViroReact is a first-class React Native library. There is no new engine to learn, no new language to adopt.
Native performance, not WebAR
Compiles to true native ARKit and ARCore draw calls, not a browser canvas. Hardware-speed rendering, occlusion, PBR lighting, and shaders.
Full Expo support
Use Expo with development builds. The Starter Kit ships as an Expo + TypeScript project with working AR demos.
TypeScript and JSX, not C#
Declarative components, typed props, familiar React patterns. Your existing CI, linting, and testing all just work.
AI-friendly stack
Clean JSX and typed props, plus the ViroReact MCP Server feeding your agent live component knowledge. AI tools reason about your AR scene like any other React component.
Prefer no code? Design AR scenes in your browser
ReactVision Studio is the visual editor for the same renderer. Design a scene in your browser, publish it, and drop it into your app with the StudioSceneNavigator component. Connected apps pick up scene updates without a redeploy.
React Native AR vs Unity vs WebAR
Where ReactVision sits against a browser-based runtime and a full game engine, line by line.
| Capability | WebAR | Unity AR Foundation | ReactVision |
|---|---|---|---|
| Stack and language | JavaScript / WebGL | C# + Unity Engine | TypeScript + React Native |
| Visual scene editor | Varies by library | Unity Editor, C# scripting | Studio in your browser, no code |
| AI 3D asset generation | Third-party only | Third-party only | Built into Studio |
| Cloud + Geospatial Anchors | Third-party services | Self-managed Google Cloud | Built into Platform |
| Open source renderer | Mixed by library | Proprietary engine | ViroReact, MIT licensed |
| Rendering | Browser canvas (WebGL) | Native | Native via ARKit and ARCore |
| Cost at scale | Per-view fees common | $2,200 / seat / yr above $200K rev | Free renderer, tiered Platform |
| Team ramp-up | Days for web devs | Months, new engine | Days for React Native devs |
Common questions about React Native AR
Can you build AR apps with React Native?
How do I build an AR app with React Native?
What is the best AR library for React Native?
Does it work with Expo?
Can my AI coding agent write ViroReact code?
Do I need to know 3D modelling or shaders?
Can I update the AR scene without redeploying my app?
What does it cost?
How does this compare to Unity AR Foundation or 8th Wall?
Start building AR with ViroReact
Install ViroReact, connect the MCP Server to your coding agent, and ship native AR in your React Native or Expo app.
Support
Community
Have a quick question or need feedback? Jump into our Discord for real-time chat, or post on r/ReactVision to get answers, code samples, and tips from thousands of fellow builders.
ReactVision Partners
Need deeper help? Engage a trusted ViroReact Partner. Certified agencies and consultants can architect, build, or optimise your XR app, run performance audits, and guide store launches so you ship faster with confidence.