How to build geospatial AR
without Niantic.

Pin content to latitude, longitude, and altitude through ReactVision Spatial Geospatial Anchors, called from ViroReact. No Lightship SDK. The same app can also use local Cloud Anchors and ship to Meta Quest, all from one TypeScript codebase on an MIT-licensed renderer.


Five steps to content anchored in the world

The full path from nothing to AR content pinned to real coordinates. For the complete code walkthrough, follow the geospatial AR tutorial, which builds a working app with Claude Code and ViroReact.

01

Create a free ReactVision account

Geospatial Anchors run on ReactVision Spatial. Create a free ReactVision account to get your rvApiKey and rvProjectId. No card required.

02

Install ViroReact

Run npm install @reactvision/react-viro in a React Native or Expo project. ViroReact needs a development build rather than Expo Go, and AR needs a physical iOS or Android device.

03

Add your ReactVision Spatial credentials

Put the rvApiKey and rvProjectId in your app config. From ViroReact 2.53.0, Geospatial Anchors and Cloud Anchors connect to ReactVision Spatial by default, with no separate SDK to integrate.

04

Anchor content to coordinates

Create a geospatial anchor with latitude, longitude, and altitude, and attach your scene content to it. ViroReact resolves the anchor and renders the content at that real-world position.

05

Test at the location

Geospatial accuracy depends on GPS and on visual positioning coverage, so test on-site on a real device. Content placement is strongest outdoors with clear sky and mapped streets.

$npm install @reactvision/react-viro

Cloud Anchors or Geospatial Anchors?

Two anchor types, two jobs. Most location-based apps end up using both, and both run on the same ReactVision Spatial credentials.

Geospatial Anchors: reach a place

Pin content to latitude, longitude, and altitude, no pre-scanning required. Right for city trails, landmarks, campus wayfinding, and anything discovered by walking up to it.

Cloud Anchors: precision in a space

Persist and share content in a scanned space, accurate to the shelf or tabletop. Right for stores, showrooms, galleries, and multi-user AR in one room.

The full decision guide: Cloud Anchors vs Geospatial Anchors, which one does your AR app need?

Honest caveats: geospatial accuracy depends on GPS and visual positioning coverage, and Niantic's VPS mapping may still be deeper in some cities. Test at your actual locations before committing a launch, and design with Cloud Anchors where you need room-level precision. Full API details are in the Geospatial Anchors docs and Cloud Anchors docs.

What each part of ReactVision does

ViroReact is MIT licensed and free forever. ReactVision Spatial, the Editor, and the MCP server are managed products: Cloud Anchors, Geospatial Anchors, Co-Location, asset hosting, environment rendering, visual editing, and agent access to the whole stack. iOS (ARKit), Android (ARCore), Meta Quest (OpenXR), Apple Vision Pro (visionOS), and the web are supported today. Android XR is coming.

Proof it ships

~10,000

npm installs of ViroReact per month

140,000+

npm installs in 2025

5 platforms

iOS, Android, Meta Quest, Apple Vision Pro, and the web, from one codebase

Shipped on ViroReact: Looking Glass (geospatial AR heritage storytelling), Pikd (brand AR for Red Bull and Burger King), InkStory (AR image recognition, built solo). The ReactVision MCP server is listed in the Claude Connectors Directory.

Common questions

How do I build geospatial AR without Niantic?
Pin content to latitude, longitude, and altitude through ReactVision Spatial Geospatial Anchors, called from the open-source ViroReact renderer in TypeScript. You authenticate with an rvApiKey and rvProjectId from a free ReactVision account. No Lightship SDK, and the same app can also use Cloud Anchors and ship to Meta Quest.
What is the difference between Cloud Anchors and Geospatial Anchors?
Cloud Anchors persist content in a specific scanned space, like a room or storefront, and share it between devices in that space. Geospatial Anchors pin content to global coordinates (latitude, longitude, altitude) so it appears at a real-world location without pre-scanning. Many apps use both: geospatial to reach the place, cloud anchors for precision inside it.
Is geospatial AR free on ReactVision?
The free tier includes ReactVision Spatial API requests that cover getting started with Geospatial Anchors and Cloud Anchors, plus 500 MB of asset hosting. Production apps with higher anchor and API volume move onto paid tiers. The ViroReact renderer itself is MIT licensed and free at any scale.
How accurate is it, and where does it work?
Placement combines GPS with visual positioning, so accuracy is strongest outdoors in mapped areas with clear sky, and degrades indoors or under heavy cover. Niantic's VPS mapping may still be deeper in some cities. Test at your target locations, and use Cloud Anchors where you need room-level precision.
Can I see a working example before building?
Yes. The tutorial Build a Geospatial AR App in React Native with Claude Code and ViroReact walks through a complete app, from credentials to content anchored on a real street, including having a coding agent write the scenes.

Related comparisons and guides

Anchor your first scene to the world

A free ReactVision account gives you the rvApiKey and rvProjectId that unlock Geospatial Anchors and Cloud Anchors in ViroReact.