Skip to content

artsy/react-native-starter

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

60 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Meta

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.

Start a new project from this template

This repo is a GitHub template, so you can spin up your own app from it:

  1. 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.
  2. Install & add keysyarn install, then cp keys.example.json keys.json and fill in your own values (real keys*.json are gitignored). Artsy engineers run yarn setup:artsy for fonts + env; outside Artsy, supply your own fonts/env.
  3. Rebrand — edit app.json (name, slug, iOS bundleIdentifier, Android package, icons/splash). Don't hand-edit the generated ios//android/ folders.
  4. Point at your backend — swap data/schema.graphql for your GraphQL API (yarn sync-schema) and replace the sample screens in src/Scenes/.
  5. Generate native projects & runyarn prebuild, then yarn ios / yarn android.

See the Getting Started guide for details.

Getting Started

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 android

For OSS Contributors Instructions coming later

Features

  • 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

Documentation

📖 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).

Common Commands

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 metaphysics

License

MIT License. See LICENSE.

About Artsy

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!

About

This project is a React Native Boilerplate that can be used to kickstart a mobile app.

Resources

License

Security policy

Stars

5 stars

Watchers

22 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors