Expo

Open-source framework for building universal native apps with React that run on Android, iOS, and the web.

Framework
npm
v57.0.20
52,068stars
MIT License

Repository Health

Pre-computed score based on development activity, maintenance, community, maturity, and trend momentum.How we score it →
83/100Excellent
Development Activity100
Maintenance52
Community80
Maturity60
Momentum40

Technical Analysis

AI-assessed by reading the actual repository — architecture, code quality, innovation, and documentation.How we score it →
86/100Excellent
Architecture88
Code Quality78
Innovation88
Learning Curve72

Expo is an open-source framework that lets you build universal native applications for Android, iOS, and the web from a single JavaScript and TypeScript codebase written with React. It ships a universal runtime, a broad library of native modules, a powerful CLI, file-based routing via Expo Router, and the Expo Modules API for authoring your own native code.

Beyond the SDK, Expo scaffolds new projects with create-expo-app, bundles with a preconfigured Metro setup, and manages native configuration through config plugins so you rarely need to touch Xcode or Android Studio. It underpins a huge share of the React Native ecosystem and integrates deeply with Expo Application Services (EAS) for cloud builds, submissions, and over-the-air updates.

What You Get

  • A universal runtime plus the registerRootComponent entry point that boots your React app natively across Android, iOS, tvOS, and web.
  • The expo CLI for starting a dev server, running on simulators/devices, and prebuilding native projects, plus create-expo-app scaffolding.
  • A large library of first-party native modules (camera, file system, fonts, notifications, and more) with automatic native autolinking.
  • The Expo Modules API for authoring your own Swift/Kotlin native modules with a typed JavaScript bridge.
  • File-based navigation through Expo Router and a preconfigured Metro bundler, Babel preset, and config-plugin system for native setup.

Common Use Cases

  • Shipping a cross-platform mobile app to the App Store and Google Play from one React codebase.
  • Building a universal app that targets mobile and the web simultaneously with shared UI and logic.
  • Prototyping quickly with Expo Go and Snack, then graduating to custom native code via development builds.
  • Adding native capabilities (camera, notifications, secure storage) without writing platform-specific glue by hand.
  • Automating cloud builds, store submissions, and over-the-air updates through EAS integration.

Under The Hood

Architecture — The expo package is the entry point of a large pnpm/Turbo monorepo. Its public surface (src/Expo.ts) re-exports the runtime from expo-modules-core (EventEmitter, SharedObject, NativeModule, requireNativeModule) and adds framework glue: registerRootComponent wraps React Native’s AppRegistry.registerComponent, runs AppRegistry.runApplication on web, wires Fast Refresh and dev tooling, and polyfills globals via the Expo.fx side-effect module. Native modules are discovered through expo-modules-autolinking and configured declaratively with config plugins (@expo/config-plugins), while the expo binary shells into @expo/cli for the dev server, prebuild, and device runners.

Tech Stack — Written primarily in TypeScript (~57% of the repo) with substantial Kotlin, Swift, and Objective-C for the native layers. It depends on expo-modules-core, a curated set of first-party modules (expo-asset, expo-constants, expo-file-system, expo-font, expo-keep-awake), @expo/cli, @expo/metro/@expo/metro-config, and babel-preset-expo; React, React Native, react-dom, and react-native-web are peer dependencies. Builds run through expo-module-scripts, with Metro as the bundler and Babel as the transform pipeline.

Code Quality — The codebase is strictly typed and linted with oxlint and tsc typechecking, with platform-specific file variants (.web.tsx, .ios.tsx) cleanly separating targets. Tests exist and run under Jest, though the expo package itself carries a modest unit-test suite (a handful of specs in src/__tests__); the bulk of testing lives across sibling packages and app fixtures in the monorepo. Naming is consistent and public APIs are documented with JSDoc annotations.

API Design — Developer experience is a core strength: a new app is one create-expo-app command, and booting is a single registerRootComponent(App) call. The public API is small and well-named, native capabilities are added by installing a module rather than editing native projects, and documentation at docs.expo.dev is extensive with an API reference, guides, and in-browser Snack examples. Deprecated exports are annotated with migration hints, easing upgrades.

Used by 398 apps in this directory

TypeScript
95%
Apache 2.0

AionUi

AI Agents · Productivity

32,622

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
87
Repo Health
76
Technical
66
Dependency
Built with
TypeScript95%
Updated 5 days ago
TypeScript
95%
Apache 2.0

AionUi

AI Agents · Productivity

32,622

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
87
Repo Health
76
Technical
66
Dependency
Built with
TypeScript95%
Updated 5 days ago
TypeScript
95%
Apache 2.0

AionUi

AI Agents · Productivity

32,622

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
87
Repo Health
76
Technical
66
Dependency
Built with
TypeScript95%
Updated 5 days ago
TypeScript
95%
Apache 2.0

AionUi

AI Agents · Productivity

32,622

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
87
Repo Health
76
Technical
66
Dependency
Built with
TypeScript95%
Updated 5 days ago
TypeScript
95%
Apache 2.0

AionUi

AI Agents · Productivity

32,622

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
87
Repo Health
76
Technical
66
Dependency
Built with
TypeScript95%
Updated 5 days ago
TypeScript
95%
Apache 2.0

AionUi

AI Agents · Productivity

32,622

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
87
Repo Health
76
Technical
66
Dependency
Built with
TypeScript95%
Updated 5 days ago
TypeScript
95%
Apache 2.0

AionUi

AI Agents · Productivity

32,622

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
87
Repo Health
76
Technical
66
Dependency
Built with
TypeScript95%
Updated 5 days ago
TypeScript
95%
Apache 2.0

AionUi

AI Agents · Productivity

32,622

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
87
Repo Health
76
Technical
66
Dependency
Built with
TypeScript95%
Updated 5 days ago
TypeScript
95%
Apache 2.0

AionUi

AI Agents · Productivity

32,622

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
87
Repo Health
76
Technical
66
Dependency
Built with
TypeScript95%
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

Search