React Native simulators as cheap as a browser tab

No Mac, no XCode, no expensive streaming VM
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

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.
top 500 native libraries by weekly downloads
verified
works
partial
not yet
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 · 76 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), statusBarStyle/Hidden/navigationBarColor/Hidden ignored, replaceAnimation differentiation, formSheet/pageSheet modal differences, 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 334)
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