Background Paths
Background Paths
Powered by browser-metro

Run React Native
in your browser

Write, bundle, and preview React Native apps instantly. browser-metro brings Metro's architecture to the browser — full HMR, Expo Router, npm support, all client-side.

Everything you need

browser-metro brings the Metro bundler experience to the browser. Full HMR, Expo Router, and any npm package.

0ms

Zero Setup

browser-metro runs in a Web Worker. No CLI, no Xcode, no Android Studio

Hot Module Replacement

Edit code and see changes instantly without losing component state. Full React Refresh support.

app/
routes
(tabs)/index.tsx(tabs)/explore.tsxmodal.tsx+api.ts

Expo Router

File-based routing with dynamic route addition via HMR. Add a route file and see it appear instantly.

API Routes

Write +api.ts files that run in-browser via fetch interception. No server or service worker needed.

export function GET(req) {
  return Response.json({
    message: "Hello!"
  });
}

Any npm Package

Import any package. Bundled on-demand by the ESM server and cached for instant reuse. No configuration required.

react@19.1.0
react-native-web@0.19.13
expo-router@4.0.17
lodash@4.17.21

Architecture

Two services work together: the browser-based bundler and the ESM package server.

Architecture diagram showing browser-metro client and reactnative-esm server

How it compares

reactnative.run vs other online development environments.

reactnative.runExpo SnackCodeSandbox
BundlingClient-sidePartially client-sideServer-side
npm packagesAny, on-demandCurated subsetAny, via server
HMRFull + React RefreshLive reloadFull HMR
Expo RouterFull + HMRLimitedBasic
API RoutesIn-browserNoVia server
Native previewWeb onlyiOS, Android, WebWeb
Open sourceYes (MIT)PartiallyNo
PriceFreeFreeFree tier + paid

Frequently asked questions

Is this an official React Native project?+

No. reactnative.run is an independent open-source project built by RapidNative. It is not affiliated with, endorsed by, or associated with Meta, Facebook, the React Native team, or the React Foundation. The domain name is simply a descriptive name for this tool. React Native is a trademark of Meta Platforms, Inc.

Can I preview on iOS or Android?+

Currently, reactnative.run only supports web preview. The bundler targets react-native-web, so your app renders as a web page. Native device preview is on the roadmap.

Does it work offline?+

Partially. Once npm packages are cached by the ESM server, subsequent requests are instant. The bundler itself runs entirely in the browser. However, the first load of any npm package requires a network request.

Can I use any npm package?+

Yes. Unlike some online editors that restrict which packages you can use, reactnative.run bundles any npm package on-demand via the ESM server. There's a cold-start delay on first use, but subsequent requests are cached.

How is this different from Expo Snack?+

The key difference is where bundling happens. Expo Snack compiles on their servers. reactnative.run bundles everything client-side in a Web Worker, giving you faster iteration cycles. Expo Snack supports native preview via Expo Go, which we don't (yet).

Is it open source?+

Yes. browser-metro (the bundler), reactnative-esm (the package server), and the playground are all open source under the MIT license.

Can I self-host it?+

Yes. You can run both the playground and the ESM server on your own infrastructure. See the docs for setup instructions.

Ready to try it?

Start writing React Native code in your browser right now.