• Stars
    star
    28,276
  • Rank 620 (Top 0.02 %)
  • Language
    TypeScript
  • License
    MIT License
  • Created over 7 years ago
  • Updated about 1 month ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

An open-source platform for making universal native apps with React. Expo runs on Android, iOS, and the web.

expo sdk

Expo

Expo SDK version Chat or ask a question License: MIT Downloads

Try Expo in the Browser  •  Read the Documentation  •  Learn more on our blog  •  Request a feature

Follow us on

Expo on X   Expo on GitHub   Expo on Reddit   Expo on LinkedIn   Expo on LinkedIn

Introduction

Expo is an open-source platform for making universal native apps that run on Android, iOS, and the web. It includes a universal runtime and libraries that let you build native apps by writing React and JavaScript.

This repository includes the Expo SDK, Modules API, Go app, CLI, Router, documentation, and various other supporting tools. Expo Application Services (EAS) is a platform of hosted services that are deeply integrated with Expo open source tools. EAS helps you build, ship, and iterate on your app as an individual or a team.

Read the Expo Community Guidelines before interacting in the repository. Thank you for helping keep the Expo community open and welcoming!

Table of contents

📚 Documentation

Learn about building and deploying universal apps in our official docs!

🗺 Project Layout

  • packages All the source code for Expo modules, if you want to edit a library or just see how it works this is where you'll find it.
  • apps This is where you can find Expo projects which are linked to the development modules. You'll do most of your testing in here.
  • apps/expo-go This is where you can find the source code for Expo Go.
  • apps/expo-go/ios/Exponent.xcworkspace is the Xcode workspace. When developing iOS, always open this instead of Exponent.xcodeproj because the workspace also loads the CocoaPods dependencies.
  • docs The source code for https://docs.expo.dev
  • templates The template projects you get when you run npx create-expo-app
  • react-native-lab This is our fork of react-native used to build Expo Go.
  • guides In-depth tutorials for advanced topics like contributing to the client.
  • tools contains build and configuration tools.
  • template-files contains templates for files that require private keys. They are populated using the keys in template-files/keys.json.
  • template-files/ios/dependencies.json specifies the CocoaPods dependencies of the app.

🏅 Badges

Let everyone know your app can be run instantly in the Expo Go app!

runs with Expo Go

runs with Expo Go

[![runs with Expo Go](https://img.shields.io/badge/Runs%20with%20Expo%20Go-000.svg?style=flat-square&logo=EXPO&labelColor=f3f3f3&logoColor=000)](https://expo.dev/client)

[![runs with Expo Go](https://img.shields.io/badge/Runs%20with%20Expo%20Go-4630EB.svg?style=flat-square&logo=EXPO&labelColor=f3f3f3&logoColor=000)](https://expo.dev/client)

👏 Contributing

If you like Expo and want to help make it better then check out our contributing guide! Check out the CLI package to work on the Expo CLI.

❓ FAQ

If you have questions about Expo and want answers, then check out our Frequently Asked Questions!

If you still have questions you can ask them on our Discord and Forums or on Twitter @Expo.

💙 The Team

Curious about who makes Expo? Here are our team members!

License

The Expo source code is made available under the MIT license. Some of the dependencies are licensed differently, with the BSD license, for example.

Star the Expo repo on GitHub to support the project

More Repositories

1

create-react-native-app

Create React Native apps that run on iOS, Android, and web
TypeScript
13,151
star
2

expo-cli

Tools for creating, running, and deploying universal Expo and React Native apps
TypeScript
2,590
star
3

examples

Example projects that demonstrate how to use Expo APIs and integrate Expo with other popular tools
JavaScript
1,567
star
4

router

[ARCHIVE]: Expo Router has moved to expo/expo -- The File-based router for universal React Native apps
TypeScript
1,356
star
5

react-native-action-sheet

A cross-platform ActionSheet for React Native
TypeScript
1,301
star
6

xde

The Expo Development Environment
JavaScript
1,168
star
7

ex-navigation

Route-centric navigation for React Native
JavaScript
1,003
star
8

google-fonts

Use any of the 1000+ fonts (and their variants) from fonts.google.com in your Expo app.
JavaScript
709
star
9

expo-github-action

Expo GitHub Action makes it easy to automate EAS builds or updates
JavaScript
678
star
10

expo-server-sdk-node

Server-side library for working with Expo using Node.js
TypeScript
674
star
11

vector-icons

JavaScript
638
star
12

fyi

Little bits of information that you may find useful when interacting with Expo tools and service. Append the markdown filename to https://expo.fyi/ to get a quick link to it.
622
star
13

expo-three

Utilities for using THREE.js on Expo
TypeScript
619
star
14

eas-cli

Fastest way to build, submit, and update iOS and Android apps
TypeScript
588
star
15

react-native-read-more-text

JavaScript
572
star
16

ex-navigator

Route-centric navigation built on top of React Native's Navigator
JavaScript
522
star
17

react-native-infinite-scroll-view

An infinitely scrolling view that notifies you as the scroll offset approaches the bottom
JavaScript
520
star
18

awesome-expo

Useful resources for creating apps with Exponent
468
star
19

exp

JavaScript
465
star
20

react-native-invertible-scroll-view

An invertible ScrollView for React Native
JavaScript
460
star
21

turtle

Standalone app builder service
TypeScript
386
star
22

config-plugins

Out-of-tree Expo config plugins for packages that haven't adopted the config plugin system yet.
TypeScript
372
star
23

vscode-expo

Expo Tools keep you productive with debugging, IntelliSense, and prebuild previews
TypeScript
362
star
24

react-native-appearance

Access operating system appearance information (currently only light/dark mode) on iOS, Android, and web
Java
338
star
25

snack

Expo Snack lets you run Expo in the browser.
TypeScript
334
star
26

orbit

Accelerate your development workflow with one-click build launches and simulator management from your macOS menu bar
TypeScript
325
star
27

expo-pixi

Tools for using pixi.js in Expo
JavaScript
300
star
28

use-unmount-signal

A React Hook to cancel promises when a component is unmounted
TypeScript
290
star
29

web-examples

Examples of using Expo in the browser.
JavaScript
273
star
30

image-upload-example

Demonstration of how to upload images from the ImagePicker, using a node backend to upload to S3
JavaScript
228
star
31

snack-web

TypeScript
214
star
32

expo-phaser

Use Phaser.js on mobile with Expo GL
JavaScript
212
star
33

sentry-expo

TypeScript
197
star
34

fluxpybird

some ideas involving games and Redux
JavaScript
179
star
35

custom-expo-updates-server

TypeScript
161
star
36

stripe-expo

Use the Stripe HTTP API in Expo without the DOM, node, or native deps
JavaScript
160
star
37

react-native-responsive-image

A responsive Image component that chooses the best-resolution image for the current screen
JavaScript
160
star
38

react-native-loading-container

A container component that takes care of loading/catching timeouts/retrying
JavaScript
156
star
39

camerja

JavaScript
156
star
40

playlist-example

JavaScript
151
star
41

match-media

Universal polyfill for match media API using Expo APIs on mobile
TypeScript
128
star
42

react-native-fade-in-image

JavaScript
118
star
43

entity

Entity is a privacy-aware data layer for defining, caching, and authorizing access to application data models.
TypeScript
116
star
44

eslint-config-universe

Moved to https://github.com/expo/expo/tree/master/packages/eslint-config-universe
JavaScript
110
star
45

audio-recording-example

Audio Recording Example
TypeScript
109
star
46

redux-effex

Spin off async functions to perform side effects
JavaScript
108
star
47

auth0-example

This example has moved
JavaScript
108
star
48

results

An efficient, standards-compliant library for representing results of successful or failed operations
TypeScript
101
star
49

firebase-storage-upload-example

This example has moved
JavaScript
98
star
50

sqlite-example

This example has moved
JavaScript
97
star
51

expo-2d-context

A pure-js implementation of the W3C's Canvas-2D Context API that can be run on either Expo Graphics or WebGL
HTML
96
star
52

react-native-scrollable-mixin

A standard interface for your scrollable React Native components, making it easier to compose components.
JavaScript
94
star
53

expo-processing

Utilities for using Processing.js on Expo
JavaScript
93
star
54

dev-plugins

Out-of-tree Expo devtools plugins for packages that haven't adopted the Expo devtools plugin system yet.
TypeScript
90
star
55

videoplayer

Customizable controls for Expo video
JavaScript
83
star
56

snack-sdk

Snack SDK
JavaScript
83
star
57

react-apple-easing

Apple's default Core Animation easing functions for React
JavaScript
83
star
58

turtle-cli-example

Turtle CLI usage example (CircleCI & Travis CI)
Shell
82
star
59

dire-dire-ducks

Flood your room with water and rubber duckies!
JavaScript
77
star
60

status-bar-height

Listen to status bar changes during incoming calls and other multi-tasking events
JavaScript
73
star
61

react-native-image-gallery

JavaScript
71
star
62

pomodoroexp

https://expo.io/@community/pomodoro
JavaScript
70
star
63

expo-preview-action

With this preview action, you can test changes made in pull requests via Expo Go or custom development client (created with expo-dev-client) just by scanning QR code.
JavaScript
70
star
64

expo-three-ar

Utilities for using Expo AR with THREE.js
TypeScript
68
star
65

react-native-refreshable-scroll-view

A ScrollView that supports pull-to-refresh. You can customize it with the RefreshIndicator and type of ScrollView (ex: ListView) of your choice.
JavaScript
61
star
66

spawn-async

A Promise-based interface into processes created by child_process.spawn
TypeScript
59
star
67

react-native-for-curious-people

Available through the Exponent iPhone or Android app:
JavaScript
59
star
68

eas-build

TypeScript
54
star
69

browser-polyfill

Browser polyfill for making React Native compatible with web libs like pixi.js, three.js, phaser.js
JavaScript
52
star
70

xdl

The Expo Development Library
TypeScript
47
star
71

harvard-cs50-app

Harvard's mobile application for CS50.
JavaScript
46
star
72

hello-graphql

JavaScript
44
star
73

expo-graphics

Tools to help simplify working with three, pixi, phaser, ect...
JavaScript
44
star
74

detox-expo-helpers

JavaScript
43
star
75

expo-asset-utils

Utilities for parsing files references, and Expo Assets.
TypeScript
42
star
76

styleguide

Foundational styles for Expo interfaces.
TypeScript
41
star
77

hackathon-examples

40
star
78

with-detox-tests

This template is no longer maintained! See https://github.com/yaron1m/expo-detox-typescript-example instead
JavaScript
39
star
79

UpdatesAPIDemo

Demo app showing the useUpdates() API
TypeScript
38
star
80

react-native-scrollable-decorator

A standard interface for your scrollable React Native components, making it easier to compose components.
JavaScript
38
star
81

react-native-url-handler

Navigate to external URLs, handle in-app URLs, and access system URLs
Objective-C
36
star
82

rnplay

THIS REPOSITORY IS QUITE OLD AND NOT MAINTAINED! React Native Playground has been replaced by https://snack.expo.io. Look at this repository like you might look at tools in a museum, and don't touch it or actually use it
JavaScript
36
star
83

expo-twitter-login-example

This example has moved
JavaScript
34
star
84

react-native-image-picker-android

A camera and gallery image picker native module for Android, giving a subset of the API of https://github.com/marcshilling/react-native-image-picker
Java
34
star
85

react-loading-indicator

A loading indicator written purely in React that uses SVG and no images.
JavaScript
32
star
86

socket-io-example

This example has moved
29
star
87

expo-electron-adapter

This package wraps `electron-webpack` and adds support for Expo web and other universal React packages.
TypeScript
28
star
88

koa-graphiql

Koa middleware to display GraphiQL, the interactive GraphQL UI
JavaScript
27
star
89

video-background-example

This example has moved
JavaScript
27
star
90

eas-tests-example

Demo of running E2E tests on EAS Build
Java
26
star
91

gl-test

Examples and tests for OpenGL rendering in Expo.
JavaScript
26
star
92

three-ar-test

Using Expo's AR functionality with THREE.js
JavaScript
25
star
93

BrightSky

Learn how to use Expo with this simple weather app!
TypeScript
24
star
94

expo-postpublish-slack-notify

JavaScript
24
star
95

breakout

why not?
JavaScript
24
star
96

hyperinstall

Runs "yarn" and "npm install" in several directories with extreme speed when possible
JavaScript
23
star
97

pound-random

Expo Blue - a discussion app for small groups
JavaScript
22
star
98

electron-cookies

Provides document.cookie support for Electron
JavaScript
22
star
99

instapromise

Promisify node style async functions by putting a `.promise` after them (or after the object for methods)
JavaScript
21
star
100

floatyplane

JavaScript
21
star