Contributing
August 21, 2025 ยท View on GitHub
Thanks for contributing! ๐ Here are some rules that will make your example last as long as possible in the constantly changing React ecosystem.
Rules
-
It's important to keep examples concise.
- Start with the blank example.
- We use a unified
.gitignore - No
package.jsonorapp.config.jsvalues that aren't completely necessary- Avoid
scriptsas these get added bycreate-expo.
- Avoid
- Use the new
app.config.jsinstead ofapp.json - Do not include an
app.config.jsunless it has values that are relevant to the example - Use remote files for the default assets in the
app.config.js: - Don't use the
"sdkVersion"field in yourapp.config.js, this should be inferred from the installed version ofexpoin thepackage.json. - If your example
README.mdrequires assets like images, place them in a hidden.gh-assetsfolder, ex:with-your-example/.gh-assets. - Limit package versions to patches only in the
package.json:
+ "expo-three": "~1.0.0" - "expo-three": "^1.0.0" -
Each example can be used as example in
create-exposo try to consider what a fresh template should look like:- No TODO, NOTE(), or otherwise.
- No personal references to your name or other contextual info in comments.
Format
Every example needs a README.md that explains how to setup, the motivation behind the example, and what platforms it supports.
# <TITLE> Example
<p>
<!-- iOS -->
<img alt="Supports Expo iOS" longdesc="Supports Expo iOS" src="https://img.shields.io/badge/iOS-4630EB.svg?style=flat-square&logo=APPLE&labelColor=999999&logoColor=fff" />
<!-- Android -->
<img alt="Supports Expo Android" longdesc="Supports Expo Android" src="https://img.shields.io/badge/Android-4630EB.svg?style=flat-square&logo=ANDROID&labelColor=A4C639&logoColor=fff" />
<!-- Web -->
<img alt="Supports Expo Web" longdesc="Supports Expo Web" src="https://img.shields.io/badge/web-4630EB.svg?style=flat-square&logo=GOOGLE-CHROME&labelColor=4285F4&logoColor=fff" />
</p>
description
## Launch your own
[](https://launch.expo.dev/?github=<GH_URL>)
## How to use
<!-- Setup instructions -->
## ๐ Notes
<!-- Link to related Expo or library docs -->
Add a File Structure section (between "How to use" and "Notes") if the example reflects a custom workflow:
### ๐ File Structure
\```
Expo Gatsby
โโโ src
โ โโโ pages โก๏ธ Routes
โ โโโ index.tsx โก๏ธ Entry Point for Gatsby
โโโ .cache โก๏ธ Generated Gatsby files (should be ignored)
โโโ public โก๏ธ Generated Gatsby files (should be ignored)
โโโ assets โก๏ธ All static assets for your project
โโโ App.tsx โก๏ธ Entry Point for Mobile apps
โโโ app.config.js โก๏ธ Expo config file
โโโ gatsby-config.js โก๏ธ Gatsby config file
โโโ babel.config.js โก๏ธ Babel config (should be using `babel-preset-expo`)
\```