Oliver Edis

How to Build a VR App for Meta Quest in 2026

How to Build a VR App for Meta Quest: one codebase node linked to a Meta Quest headset and a phone on a wireframe floor

Short answer: Meta Quest apps are built with Unity, Unreal Engine, Meta's own Spatial SDK, WebXR, or ViroReact. Unity and Unreal suit game studios. If you want to build in React Native and TypeScript, or you want the same app to run as AR on phones too, ViroReact runs natively on Quest through OpenXR with stereoscopic rendering, 6DoF tracking, controllers, hand tracking, and passthrough mixed reality on Quest 3 and 3S.

Your options

OptionLanguageAlso runs on phonesBest for
Unity (Meta XR SDK)C#Yes, as a separate build setupGames and teams already in Unity
Unreal EngineC++ and BlueprintsLimitedHigh-end graphics and simulation
Meta Spatial SDKKotlinNo, Quest onlyAndroid developers building Quest-only apps
WebXR (Three.js, A-Frame, Babylon.js)JavaScriptIn the browserBrowser experiences without a store listing
ViroReact by ReactVisionTypeScript and React NativeYes, same codebase, native ARApp teams, React developers, AI-agent-led builds

Build a Quest app with ViroReact

1. Set up the project

npm install @reactvision/react-viro

Use an Expo development build or a bare React Native project, and build an Android APK for Quest. Enable developer mode on the headset to install builds while you work. For a longer walkthrough, see the ViroReact quickstart for Meta Quest.

2. One navigator for phone AR and headset VR

ViroXRSceneNavigator picks the right scene for the device: an AR scene on a phone, a VR scene on a headset.

import { ViroXRSceneNavigator } from "@reactvision/react-viro";

export default function App() {
  return (
    <ViroXRSceneNavigator
      arInitialScene={{ scene: PhoneARScene }}
      vrInitialScene={{ scene: HeadsetScene }}
    />
  );
}

3. Write the headset scene

import { ViroScene, ViroSkyBox, ViroAmbientLight, ViroBox } from "@reactvision/react-viro";

export function HeadsetScene() {
  return (
    <ViroScene>
      <ViroSkyBox color="#0B1020" />
      <ViroAmbientLight color="#FFFFFF" />
      <ViroBox position={[0, 0, -2]} scale={[0.3, 0.3, 0.3]} onClick={() => console.log("selected")} />
    </ViroScene>
  );
}

On Quest you get controller and hand input, two simultaneous pointers, and the full ViroReact component model: 3D models, physics, particles, spatial audio, and animations.

4. Go mixed reality on Quest 3 and 3S

The same ViroARScene you use for phone AR runs as passthrough mixed reality on Quest 3 and 3S, with room planes feeding the same plane callbacks. One scene, phone AR and headset MR.

5. Let your agent build and test it

Connect the ReactVision MCP server (https://mcp.reactvision.xyz/viro) to your coding agent. It checks which features each device supports, validates scenes, flags 3D models that are too heavy for the headset's performance budget, and renders scenes so you can review them before putting the headset on.

6. Ship it

Build a release APK and submit through the Meta Horizon Store, or distribute to testers. Teams can also test Editor scenes on Quest with the StudioGo app.

Why React Native for VR?

Most VR tooling assumes a game engine. Most app developers, and most AI coding agents, are fluent in React. ViroReact lets a React team build VR without a new engine, and keeps one codebase for phones and headsets instead of two projects.

Next steps

Oli

Frequently asked questions

What do I need to build a Meta Quest app?
A Quest headset in developer mode, a computer, and a toolkit: Unity, Unreal, Meta Spatial SDK, WebXR, or ViroReact for React Native.
Can I build a Quest VR app in React Native?
Yes. ViroReact runs natively on Meta Horizon OS via OpenXR. Use ViroXRSceneNavigator with a vrInitialScene.
Can the same app run on iPhone and Quest?
Yes, with ViroReact: phone AR via ARKit and ARCore, Quest VR and MR via OpenXR, from one codebase.
Does ViroReact support mixed reality passthrough on Quest?
Yes, on Quest 3 and 3S. The same ViroARScene used for phone AR runs as passthrough mixed reality, with room planes feeding the same plane callbacks.
Is ViroReact free for Quest development?
ViroReact is MIT licensed with no runtime fees or royalties. Hosted services such as Cloud Anchors and co-location have a free tier.