Build AR apps with
React Native and Expo.
React Native AR means rendering augmented reality natively inside a React Native app. Install ViroReact with npm install @reactvision/react-viro, the open-source AR library in production since 2017, create a development build, and your first scene runs on a phone the same day. 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?
Related comparisons and guides
- Unity alternative for AR and VR →
- Unreal Engine alternative for AR and VR apps →
- Niantic Lightship alternative →
- 8th Wall alternative →
- Open-source Unity and Unreal alternative →
- Best AR/VR/XR tool for React Native →
- Can AI agents build AR and VR apps? →
- Geospatial AR without Niantic →
- One codebase for AR on phones and VR on Quest →
- XR CMS: update content without an app release →
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.