react-native-screens

Native navigation container primitives that make React Native screens render faster and use less memory.

Library
npm
v4.28.0
3,732 stars
MIT License

Repository Health

Pre-computed score based on development activity, maintenance, community, maturity, and trend momentum. How we score it →
94 /100 Excellent
Development Activity 96
Maintenance 100
Community 80
Maturity 60
Momentum 40

Technical Analysis

AI-assessed by reading the actual repository — architecture, code quality, innovation, and documentation. How we score it →
86 /100 Excellent
Architecture 90
Code Quality 82
Innovation 85
Learning Curve 78

react-native-screens exposes the platform’s native navigation container primitives to React Native, so each screen in your app is backed by a real native view (UIViewController on iOS, Fragment on Android) instead of a plain JavaScript-managed View. This lets the operating system take over view lifecycle, memory management, and transition animations, delivering smoother navigation and lower memory usage.

It is not a standalone navigation library but the low-level foundation that popular libraries like react-navigation and Expo build on. Once installed, screen optimizations are enabled automatically, and advanced components such as native stacks, search bars, and full-window overlays become available across iOS, Android, tvOS, visionOS, Windows, and Web.

What You Get

  • Native-backed screen components (Screen, ScreenStack, ScreenContainer) that replace JavaScript-managed Views with real native containers
  • A native stack implementation with platform-standard headers, back gestures, and transition animations
  • Extra native building blocks such as SearchBar, FullWindowOverlay, and form-sheet/modal presentation
  • Automatic memory optimization that detaches off-screen views via react-freeze
  • Broad platform coverage: iOS, Android, tvOS, visionOS, Windows, and Web

Common Use Cases

  • Powering react-navigation or Expo Router so stack, tab, and drawer navigators use native screens
  • Adopting a native stack navigator for platform-authentic push/pop transitions and headers
  • Reducing memory footprint in apps with deep navigation trees by freezing off-screen screens
  • Adding native iOS search bars or full-window overlays to navigation headers

Under The Hood

Architecture

The library is a thin TypeScript surface (src/index.tsx re-exporting components from src/components/) sitting on top of a substantial native implementation. Each JS component like Screen.tsx or ScreenStack.tsx renders a codegen-generated Fabric native component; src/fabric/NativeScreensModule is imported for its side effect of registering the TurboModule. On the native side, iOS is written in Objective-C++/Swift under ios/ (e.g. RNSScreenView, RNSScreenStackView), Android in Kotlin under android/src/main/java/com/swmansion/rnscreens (Fragment-based screen restoration, custom toolbars, bottom sheets), and shared logic in C++ under cpp/. The codegenConfig in package.json declares dozens of native component specs that React Native’s codegen turns into the Fabric bindings the JS layer talks to.

Tech Stack

Written in TypeScript with only two runtime JS dependencies — react-freeze (to unmount off-screen subtrees) and warn-once. React and react-native are peer dependencies. Native code spans Kotlin, Swift/Objective-C++, and C++, built through the React Native Fabric renderer and codegen pipeline, with a CocoaPods podspec (RNScreens.podspec) and Gradle for distribution. Tooling includes Jest, ESLint, Prettier, clang-format, swift-format, and Husky git hooks.

Code Quality

The codebase is fully typed and platform-aware, with dedicated .web.tsx, .windows.tsx, and native variants per component signalling careful cross-platform separation. Linting and formatting are enforced across every language layer (JS, Android, Swift, C++) via separate scripts and Husky pre-commit hooks, and an AGENTS.md/CLAUDE.md documents contributor conventions. A test:unit Jest script exists, though automated coverage is light relative to the native surface — most verification happens through the extensive example apps (apps/, FabricExample/, TVOSExample/) rather than unit tests.

API Design

The public API is intentionally low-level, exporting native primitives (Screen, ScreenStack, ScreenContainer, SearchBar, FullWindowOverlay) plus toggles like enableScreens and enableFreeze. Most app developers never touch it directly — it is consumed transitively through react-navigation — so ergonomics favor library authors. For direct users, installation is largely automatic via auto-linking, though Android requires a documented MainActivity override to avoid state-restoration crashes, and the fast-moving version-to-react-native compatibility matrix demands attention.

Used by 25 apps in this directory

Go
59%
Apache 2.0

agent-orchestrator

AI Agents · AI Code Assistants · Developer Tools

12,440

A local desktop workspace that gives every coding task its own agent, Git branch, and worktree, then tracks tasks, pull requests, CI, and reviews for 27 coding agents on one live Kanban board.

View details
86
Repo Health
83
Technical
68
Dependency
Built with
Go 59%
TypeScript 38%
Updated 4 days ago
TypeScript
95%
Apache 2.0

AionUi

AI Agents · Productivity

33,179

Free, open-source Cowork desktop app that unifies Claude Code, Codex, Gemini CLI, and 20+ AI agents into a single platform with multi-agent teams, 24/7 cron automation, and zero-config built-in agent.

View details
85
Repo Health
76
Technical
66
Dependency
Built with
TypeScript 95%
Updated 3 weeks ago
Rust
67%
MIT

Bun

Developer Tools

96,068

An all-in-one JavaScript and TypeScript toolkit — one Rust-and-JavaScriptCore binary that replaces Node.js, npm, a bundler, and a test runner with faster equivalents.

View details
92
Repo Health
91
Technical
64
Dependency
Built with
Rust 67%
C++ 19%
TypeScript 10%
Updated 5 days ago
Rust
54%
Other

Cap

Team Chat · Video Conferencing

22,884

Open source Loom alternative with GPU-accelerated recording, instant share links, AI summaries, and full self-hosting via Docker Compose.

View details
89
Repo Health
81
Technical
64
Dependency
Built with
Rust 54%
TypeScript 42%
Updated 4 days ago
TypeScript
45%
Other

Convex Backend

Databases · Developer Tools

12,617

Open-source reactive database that lets developers build live-updating apps with pure TypeScript, strong consistency, and real-time subscriptions—no separate API layer required.

View details
87
Repo Health
82
Technical
68
Dependency
Built with
TypeScript 45%
Rust 43%
Updated 6 days ago
TypeScript
71%
Other

highlight.io

Analytics · Developer Tools · Monitoring

9,378

Open-source full-stack monitoring that unifies session replay, error tracking, logging, and distributed tracing so you can stop context-switching between tools.

View details
67
Repo Health
78
Technical
65
Dependency
Built with
TypeScript 71%
Go 16%
Updated 1 months ago
TypeScript
74%
Apache 2.0

Jitsi Meet

Collaboration · Team Chat · Video Conferencing

30,004

Open-source, end-to-end encrypted video conferencing you can self-host or embed into any web or mobile app.

View details
95
Repo Health
85
Technical
66
Dependency
Built with
TypeScript 74%
JavaScript 10%
Updated 6 days ago
TypeScript
98%
AGPL 3.0

Karakeep

Bookmarks Archiving

29,321

Self-hosted bookmark manager that captures links, notes, images, and PDFs with AI tagging, full-text search, and automatic archiving.

View details
88
Repo Health
76
Technical
66
Dependency
Built with
TypeScript 98%
Updated 5 days ago
Python
58%
MIT

LibrePhotos

File Storage

8,083

Self-hosted photo library with AI-powered face recognition, semantic search, and automatic event albums — no cloud required.

View details
83
Repo Health
78
Technical
65
Dependency
Built with
Python 58%
TypeScript 40%
Updated 5 days ago

Join founders buildingwith open source

Opinionated takes, migration guides, cost-saving tips, and insights from the open source ecosystem.

Subscribe on Substack
Join 750+ subscribers