React Native simulators as cheap as a browser tab

No Mac, no XCode, no expensive VM, no slow stream.
SootSim is a breakthrough for developing React Native iOS. 100x cheaper simulators, 10x faster agentic use.Delete the time, cost, and pain of native development with a brand new, ground-up simulator that runs entirely client-side using web technology. SootSim has near perfect, validated conformance across the most popular libraries and apps.
DownloadLive demo →Docs
npm i -g sootsim

Compatibility

top 500 native libraries by weekly downloads
verified
works
partial
not yet
How it works: Validation of popular native packages. We don't validate JS-only packages beyond a few high value ones as most "just work" due to high Core conformance.For native packages, we use unit and integration testing to estimate a baseline. Then, for React Native and other high value packages, we also run true pixel-diff. The final score combines both.
react-native
the framework itself · 81 pixel-checked surfaces
react-native-gesture-handler
DrawerLayout (passthrough noop), NativeViewGestureHandler still lacks native-scroll coupling and handlerTag semantics, cross-detector simultaneousWithExternalGesture/requireExternalGestureToFail, ForceTouch semantics are placeholder-only
react-native-screens
freezeEnabled/enableFreeze (always false), statusBarColor/navigationBarColor/navigationBarTranslucent ignored, replaceAnimation differentiation, formSheet detent fidelity, integrated search bar placements
react-native-svg
SVG filter primitives (Filter, FeBlend, FeColorMatrix, FeGaussianBlur, FeComposite, etc) — all fe* skipped; ClipPath/Mask/Use/Pattern/Symbol/Image listed as skipped in engine
react-native-reanimated
layout animation builders are exported but no enter/exit animation actually plays, useScrollViewOffset returns static 0, useAnimatedSensor static, useReducedMotion always false, useAnimatedKeyboard height tracking returns 0
react-native-keyboard-controller
per-frame keyboard progress events (smooth `onMove` requires SAB-backed shared values driven from the shell-side keyboard animation; deferred — see plans/real-worklets.md)
All Packages(8 of 364)
expo-linear-gradient
CanvasKit gradient shader via _gradientColors style prop, full API
react-native-pager-view
overdrag (accepted but ignored), offscreenPageLimit (accepted but ignored), pageMargin, keyboardDismissMode, native scroll fidelity (momentum physics differ)
expo-image
transition/animation effects, placeholder rendering, blurRadius, contentPosition, sfEffect/SFSymbol, allowDownscaling, autoplay (GIF), responsivePolicy
expo-video
player.duration stays 0 (no timeupdate listener), player.currentTime not synced from element, statusChange/volumeChange/timeUpdate events not emitted, useEvent hook not exported, DRM support absent
react-native-webview
actual web content rendering inside the canvas worker, onShouldStartLoadWithRequest, allowsBackForwardNavigationGestures, userAgent, dataDetectorTypes, cacheEnabled, incognito, scalesPageToFit, canGoBack/Forward in iframe-mode (always false), originWhitelist enforcement
@mozzius/expo-dynamic-app-icon
noop icon switching — correct for browser, useDynamicAppIcon hook is functional
@react-native-async-storage/async-storage
full localStorage-backed implementation
@react-native-community/checkbox
HTML checkbox input with accentColor tinting

Pricing

SootSim is free to use on desktop with a free trial of the Personal plan. For usage in CI/CD and for cloud features, see the plans below.

Personal

Desktop app, cloud share, auto PR previews. Billed yearly only. $99/year.

100 shares / month
10 PR previews / month
API key for local + personal CI/CD
Subscribe

Team

Team access, pooled cloud share and auto PR previews. 3-seat minimum, add more anytime. $19/seat/mo $14/seat/mo billed yearly.

100 shares / seat / mo, pooled
10 PR previews / seat / mo, pooled
Agentic automatic flows on PRs
Start Team