SootSim

SootSim lets you develop, test, and share React Native iOS apps without a Mac, Xcode, or a native build step in the inner loop.

We’ve re-implemented React Native and iOS in Skia/CanvasKit, the engine Chrome and Flutter pioneered, based on WebAssembly and HTML canvas.

SootSim is designed to work much like the official iOS simulator, except you run it with sootsim open after the global install. It loads right in your browser, with an optional desktop app that gives you the authentic iOS simulator experience all the way down to the menu items. The Electron app can read your device dimensions better to give you pixel-perfect physical sizing.

Quick start

terminal

curl -fsSL https://sootsim.com/install.sh | sh
sootsim open

Start your app normally, then point SootSim at the dev server port. No per-app SootSim install is needed, and no iOS native build is needed; Metro, Expo, or One serving the bundle is enough. The installer registers the background daemon so later commands reuse one bridge instead of spinning up a server.

Use cases

We think SootSim can drive a good chunk of your development today, but it’ll take some more time to get to a completely “iOS simulator free” world for large apps.

We’ve invested heavily in conformance testing, with pixel-diffing tests against real iOS; see the Compatibility page for the breakdown by library.

That said, outside of development, there’s a host of interesting use cases for a web-only React Native simulator:

  • Fast, cheap shareable live-demos: Host live links to your actual interactive app in CI/CD, or record a quick demo to share with teammates or clients.
  • Build faster with AI agents: The sootsim CLI is 10x faster than the Xcode CLI or Chrome MCP, with automatic multi-agent isolation, React Native-specific inspection, and settling logic.
  • Automatic PR previews: Plug in our GitHub bot and it will learn your repo and generate custom flows with a live preview link and video for every PR based on the specific git diff.
  • App store screenshots: Pose your app, add text, and choose some colors in Screenshot Mode to get your App Store screens ready in minutes. One plan renders every required canvas size and locale, and pushes the finished frames straight to App Store Connect.
  • 3D demos for social media: 3D Mode comes with many settings, pre-scripted movement, and because it runs your real app, you can pose and record gorgeous demos fast.

So, does it work?

SootSim simulates iOS, React Native, and many React Native libraries. The natural concern is how accurate it is, and how well it runs.

We set out early to build compatibility through automation. We now run pixel-diff testing even across animations for a huge amount of React Native, and all the most popular libraries.

We also set out to get the biggest OSS React Native projects in the world “pixel-perfect”, starting with Bluesky, Uniswap, Expensify, Artsy, and Joplin. Today, they all work well, and render nearly every screen within a percent of native.

This means you can post on Bluesky or trade tokens on Uniswap in your browser, with the real native apps, which we show in the home page demo.

But

Rebuilding iOS, React Native, and all the popular React Native native libraries to a level where we’re confident most apps will work without a problem will still take more time.

What we are confident about is the viability. SootSim is an idea that wasn’t possible before capable coding agents. But now, with a great harness and CLI, it is. We’ve built the hardest parts, and now it’s a matter of iteration.

SootSim and Soot

SootSim is its own thing. Install it and you can drive any React Native app with no other setup. It also powers the native preview inside Soot, a browser-native full-stack app builder we’re building alongside it.

Ready to build?

Run your React Native app in the browser. No simulators, no native toolchain, no waiting.

curl -fsSL https://sootsim.com/install.sh | sh