Back to comparisons
Cross-platform UI

Perry vs React Native

React Native lets you write JavaScript/TypeScript that drives native UI on iOS and Android — UI components map to platform widgets through a JS-to-native bridge (or, in the New Architecture, a JSI / Fabric layer with the same conceptual shape). Perry takes a different approach: TypeScript is compiled ahead-of-time to native machine code, and native UI is part of the compiled binary, not a runtime bridge.

What is React Native?

React Native is Meta's framework for building mobile apps using React. JavaScript runs in an embedded engine — Hermes by default, or JavaScriptCore — and interacts with native iOS/Android widgets through a bridge (legacy) or JSI/Fabric (New Architecture). The framework is mobile-first (iOS and Android); Microsoft maintains community forks for Windows and macOS. React Native has powered apps at Meta, Microsoft, Shopify, Discord, and many others.

What is Perry?

Perry compiles TypeScript directly to native machine code. Its perry/ui module is a SwiftUI-style declarative UI system that compiles to native platform widgets at build time — there is no JS runtime in the binary, no bridge, and no JSI. The same TypeScript codebase compiles to macOS, iOS, iPadOS, Android, Linux, Windows, watchOS, tvOS, Wear OS, WebAssembly, and the Web.

Side by side

FeaturePerryReact Native
Execution modelAOT-compiled native machine codeJS engine (Hermes/JSC) + native bridge (or JSI/Fabric)
JS engine in appNoneHermes (default) or JavaScriptCore
UINative widgets — SwiftUI-style declarative APINative widgets via React + bridge / Fabric
Primary targetsmacOS, iOS, iPadOS, Android, Linux, Windows, watchOS, tvOS, WASM, WebiOS, Android (Windows/macOS via community forks)
Server / CLI / desktop binariesYes (CLI tools, servers, desktop apps)No (mobile UI framework)
Bridge between JS and nativeNo bridge — native code is the programYes (legacy bridge or JSI/Fabric)
Hot reload during developmentperry dev (watch-mode auto-recompile)Fast Refresh (very fast)
MaturityPre-1.0Stable, widely-deployed in production
Component libraryperry/ui core widgets + perry-react React-compat layerVast — React Native + community packages

Where Perry wins

  • +No JS engine in the shipped app. Perry-compiled binaries don't carry Hermes or JSC; the TypeScript is the executable.
  • +No bridge / JSI cost. Native UI calls are direct compiled function calls, not JS-to-native marshaling.
  • +Broader platform reach. One Perry codebase compiles to desktop (macOS/Linux/Windows), mobile (iOS/iPadOS/Android), wearables (watchOS/Wear OS), TV (tvOS), WASM, and Web. React Native is mobile-first.
  • +Server-side and CLI binaries from the same compiler — Perry is also a server runtime, not just a UI framework.
  • +AOT-compiled compute performance — no warmup, no JIT, no bridge round trips.
  • +perry-react gives you React/JSX that compiles to native widgets, so the React mental model is available without a JS engine in the binary.

Where React Native wins

  • +Mature, battle-tested ecosystem with enormous community support, libraries, and tooling.
  • +Fast Refresh during development is best-in-class — code changes appear in milliseconds without rebuilding.
  • +Huge talent pool. Hiring React Native developers is easy; Perry is new.
  • +Established CI/CD, App Store / Play Store publishing pipelines and codepush-style OTA updates.
  • +JSI/Fabric and the New Architecture have closed much of the historical perf gap with native, while preserving the React programming model.
  • +Direct support from Meta and major adopters (Microsoft, Shopify, Amazon) keeps the framework moving.

When to choose Perry

Choose Perry if you want one TypeScript codebase across mobile, desktop, watch, TV, WASM, and the web; if you want no JS runtime in your shipped app; if you want native UI without a bridge; or if you're already invested in TypeScript and want native compilation rather than a JS engine.

When to choose React Native

Choose React Native if you're building mobile apps and want the most mature cross-platform native-UI framework, you have an existing React team, you depend on the React Native ecosystem of libraries, or you need today's industry-standard mobile cross-platform stack.

Verdict

React Native is a mobile-first framework with a JS runtime and a (now-improved) bridge. Perry is a compiler that produces native binaries from TypeScript, with native UI as part of the compile output. If you want React on mobile with the deepest ecosystem, React Native is the answer today. If you want one TypeScript codebase that compiles to mobile + desktop + watch + TV with no JS runtime in the app, Perry is the answer.

Try Perry

Compile your TypeScript to native today.

Get started