React Navigation

Routing and navigation for React Native and web apps, with stack, tab, and drawer navigators

Library
npm
v7.5.1
24,511 stars
MIT License

Repository Health

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

Technical Analysis

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

React Navigation is the de facto standard routing and navigation library for React Native applications, providing a component-based API for building stack, tab, and drawer navigation patterns that feel native on iOS, Android, and web. It is organized as a monorepo of composable packages (@react-navigation/native, native-stack, bottom-tabs, drawer, stack, and more) so apps only install the navigators they actually use.

The library handles deep linking, URL-based navigation on web, state persistence, and TypeScript-typed route params out of the box, making it the default choice recommended by Expo and the wider React Native ecosystem for anything beyond a single-screen app.

What You Get

  • Native-feeling stack navigation (native-stack) backed by platform APIs (UINavigationController/Fragment) for authentic transitions and performance
  • Bottom tab, material top tab, and drawer navigators that compose with any stack navigator
  • Deep linking and URL-based routing configuration shared between native and web builds
  • Full TypeScript support with typed navigation props and route params via generics
  • Static navigation API (createStaticNavigation) for declaring the entire navigation tree in one place with less boilerplate
  • DevTools package for inspecting and debugging navigation state during development

Common Use Cases

  • Building the primary tab-bar + stack navigation shell of a mobile app (e.g. Home/Search/Profile tabs, each pushing detail screens)
  • Implementing authentication flows that swap between an auth stack and an app stack based on login state
  • Supporting deep links and universal links that route directly to a specific screen and params
  • Sharing a single navigation structure between a React Native app and its React Native Web build

Under The Hood

Architecture — The repo is a pnpm/lerna monorepo under packages/, with @react-navigation/core implementing the framework-agnostic navigation state machine (routers, actions, state persistence) and @react-navigation/native layering React Native-specific concerns (linking, back-button handling, container component) on top via NavigationContainer. Navigator packages (native-stack, bottom-tabs, drawer, material-top-tabs, stack) each wrap either a native platform primitive (native-stack uses react-native-screens bindings to native view controllers) or a pure-JS/Reanimated implementation (stack), all consuming the shared @react-navigation/routers package for route-state transitions. Tech Stack — Written in TypeScript (98%+ of the codebase), built with a Babel-based build pipeline via Bob/lerna, tested with Jest and React Native Testing Library, and using react-native-screens/react-native-safe-area-context as peer dependencies for native-stack. The monorepo uses pnpm workspaces and lefthook for git hooks, with an example app under example/ used for manual and Detox-driven E2E testing. Code Quality — Each package carries a src/__tests__ directory with substantial unit test coverage (e.g. native’s tests cover linking, deep-link parsing, static navigation, and hooks like useLinkBuilder); the code favors small, well-named hooks (useLinkTo, useScrollToTop, useBackButton) and platform-specific file extensions (.native.tsx) to isolate platform branching cleanly. API Design — The public API is idiomatic React (components + hooks), with NavigationContainer as the single native-specific wrapper and everything else composed declaratively; TypeScript generics for typed params add some upfront learning curve but pay off with autocomplete and compile-time route safety, and the newer static API (createStaticNavigation) further reduces boilerplate for straightforward navigation trees.

Used by 45 apps in this directory

TypeScript
94%
AGPL 3.0

Papra

Bookmarks Archiving

5,587

Self-hosted document archiving with email ingestion, OCR full-text search, and pluggable storage — store once, find anything.

View details
86
Repo Health
82
Technical
69
Dependency
Built with
TypeScript 94%
Updated 6 days ago
TypeScript
94%
AGPL 3.0

Papra

Bookmarks Archiving

5,587

Self-hosted document archiving with email ingestion, OCR full-text search, and pluggable storage — store once, find anything.

View details
86
Repo Health
82
Technical
69
Dependency
Built with
TypeScript 94%
Updated 6 days ago
TypeScript
94%
AGPL 3.0

Papra

Bookmarks Archiving

5,587

Self-hosted document archiving with email ingestion, OCR full-text search, and pluggable storage — store once, find anything.

View details
86
Repo Health
82
Technical
69
Dependency
Built with
TypeScript 94%
Updated 6 days ago
TypeScript
98%
AGPL 3.0

paseo

AI Agents · AI Code Assistants

21,830

One unified interface to orchestrate Claude Code, Codex, Copilot, OpenCode, and Pi agents in parallel from desktop, mobile, or the terminal.

View details
88
Repo Health
83
Technical
66
Dependency
Built with
TypeScript 98%
Updated 5 days ago
Python
62%
Apache 2.0

Polar

Developer Tools · Ecommerce · Invoicing Finance

10,410

Open source payments infrastructure that turns software into a business — subscriptions, usage-based billing, digital products, and merchant-of-record compliance in one platform.

View details
90
Repo Health
82
Technical
66
Dependency
Built with
Python 62%
TypeScript 31%
Updated 6 days ago
Python
62%
Apache 2.0

Polar

Developer Tools · Ecommerce · Invoicing Finance

10,410

Open source payments infrastructure that turns software into a business — subscriptions, usage-based billing, digital products, and merchant-of-record compliance in one platform.

View details
90
Repo Health
82
Technical
66
Dependency
Built with
Python 62%
TypeScript 31%
Updated 6 days ago
Rust
79%
AGPL 3.0

Spacedrive

Collaboration · File Storage

39,292

One file manager for all your devices and clouds — powered by a Virtual Distributed File System built in Rust.

View details
84
Repo Health
84
Technical
63
Dependency
Built with
Rust 79%
TypeScript 18%
Updated 2 weeks ago
Rust
79%
AGPL 3.0

Spacedrive

Collaboration · File Storage

39,292

One file manager for all your devices and clouds — powered by a Virtual Distributed File System built in Rust.

View details
84
Repo Health
84
Technical
63
Dependency
Built with
Rust 79%
TypeScript 18%
Updated 2 weeks ago
Rust
79%
AGPL 3.0

Spacedrive

Collaboration · File Storage

39,292

One file manager for all your devices and clouds — powered by a Virtual Distributed File System built in Rust.

View details
84
Repo Health
84
Technical
63
Dependency
Built with
Rust 79%
TypeScript 18%
Updated 2 weeks 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