This page gets you to a React Native app running on Meta Horizon OS. Start from the sample project for the fastest path, or add Horizon OS support to a new Expo project.
Start from the sample project
The easiest way to get started is to use the React Native Horizon OS sample as your template. It provides a working Expo project configured for Meta Quest.
Use the quest variants for Meta Quest and the mobile variants for other Android devices.
With a headset connected and in developer mode, build, install, and run the Quest development client:
npm run quest
This command also starts Metro. After the first build, JavaScript changes update through Fast Refresh. Rebuild when native dependencies or Expo configuration change.
Test your app
Choose the development loop that fits what you are testing:
Meta Horizon OS is based on AOSP and does not include Google Mobile Services. Some mobile hardware and Android permissions are also unavailable on Meta Quest.
If your app also targets mobile devices, use isHorizonDevice() from expo-horizon-core to select a Horizon OS integration or a mobile fallback.
Use Horizon-compatible integrations where available:
Some location functionality, including GPS, heading, geocoding, and background location, is not available on Meta Quest. Provide a fallback when your app depends on these capabilities.
Remove prohibited permissions before building. See Unsupported permissions for the requirements and review process.
Enhance your app
After your new app runs on Meta Quest, explore these features for VR:
Platform SDK: Add user management, notifications, and sharing with the Platform SDK.