- Point People: Mounir Dhahri
This is an Artsy OSS project.
Don't know what Artsy is? Check out this overview and more, or read our objc.io on team culture.
Want to know more about Eigen: our Artsy Mobile? Check it out here, read the mobile blog posts, or eigen's specifically.
This repo is a GitHub template, so you can spin up your own app from it:
- Get a copy — click “Use this template” → Create a new repository (clean
history). Or without GitHub:
npx degit artsy/react-native-starter my-app, or fork/clone. - Install & add keys —
yarn install, thencp keys.example.json keys.jsonand fill in your own values (realkeys*.jsonare gitignored). Artsy engineers runyarn setup:artsyfor fonts + env; outside Artsy, supply your own fonts/env. - Rebrand — edit
app.json(name,slug, iOSbundleIdentifier, Androidpackage, icons/splash). Don't hand-edit the generatedios//android/folders. - Point at your backend — swap
data/schema.graphqlfor your GraphQL API (yarn sync-schema) and replace the sample screens insrc/Scenes/. - Generate native projects & run —
yarn prebuild, thenyarn ios/yarn android.
See the Getting Started guide for details.
This project uses Expo with the prebuild (CNG) workflow. The native
ios/ and android/ folders are not committed — they are generated on
demand from app.json and the installed native dependencies.
For Artsy Engineers
# 1. Install the pinned toolchain (node, ruby, java, yarn)
mise install # or `asdf install`
# 2. Download fonts + environment variables and install dependencies
yarn setup:artsy
yarn install
# 3. Generate the native projects
yarn prebuild
# 4. Run the app
yarn ios # or: yarn androidFor OSS Contributors Instructions coming later
- Expo managed workflow with prebuild — no committed native folders
- TypeScript in strict mode 💜
- Artsy design system via @artsy/palette-mobile
- React Navigation boilerplate ready to be extended
- Relay 20 integrated (co-located fragments + Relay compiler)
- Global store management and state persistence with easy-peasy
- Functional Login screen already available
- ESLint + Prettier, and Jest via jest-expo /
@testing-library/react-native
📖 artsy.github.io/react-native-starter — full docs (VitePress).
The site is built from docs/ and deployed to GitHub Pages on every push to
main (yarn docs:dev to preview locally).
yarn start # Metro + Relay compiler
yarn ios # Prebuild + run on iOS
yarn android # Prebuild + run on Android
yarn prebuild # Regenerate native ios/ and android/ folders
yarn test # Jest
yarn type-check # Relay compile + tsc
yarn lint # ESLint (auto-fix)
yarn relay # Compile Relay artifacts
yarn sync-schema # Refresh data/schema.graphql from metaphysicsMIT License. See LICENSE.
This project is the work of engineers at Artsy, the world's leading and largest online art marketplace and platform for discovering art. One of our core Engineering Principles is being Open Source by Default which means we strive to share as many details of our work as possible.
You can learn more about this work from our blog and by following @ArtsyOpenSource or explore our public data by checking out our API. If you're interested in a career at Artsy, read through our job postings!