Claude Code React Native Setup — Expo Boilerplate — Mobile App Boilerplate Docs

Every page after this one hands you a prompt instead of code to type. This is the one-time setup that makes those prompts land.

Claude Code reads a file called CLAUDE.md from the project root before it answers anything, and this repo ships 12 KB of it. The opening line is addressed to the agent, not to you:

This file is loaded into Claude Code's context every session in this repo. It's the single source of truth for how to code in this project .

Underneath that: a 37-row table mapping what you might ask for to the exact rule or recipe to read first, 8 conventions marked "RULES, not suggestions", and a closing section of 7 things not to do in this codebase.

In an empty project an agent has to guess all of that, and it guesses differently each time. Here it does not have to.

On Windows, in PowerShell:

On macOS, Linux or WSL:

Homebrew and WinGet also work, and signing in is covered in Anthropic's quickstart . You need a Claude subscription or a Console account.

From the folder you cloned:

There is nothing to configure. CLAUDE.md is in the root, so it is already loaded.

Do not start with a feature. Start with a question whose answer you can check.

Read CLAUDE.md and tell me in your own words: where a new screen file goes, the rule about what apps/mobile/ may import, and where auth tokens are allowed to be stored. Then name which of the 7 items under "What NOT to do" you are most likely to break. Do not write any code yet.

A good answer says a new screen is a file under apps/mobile/app/ , that nothing in apps/mobile/ may import from apps/api/ because the app talks only through @repo/api-client against EXPO_PUBLIC_API_URL , and that tokens go in expo-secure-store on native and never in AsyncStorage . It should be able to point at the "What NOT to do" list rather than inventing one.

A bad answer talks about React Native in general, suggests react-navigation instead of Expo Router, or recommends AsyncStorage for the token. That means it answered from training data rather than from the file.

That is the generic React Native pattern, not this repo's. Open CLAUDE.md in the project root, read the Conventions section, and answer again using only what is written there.

Thirty seconds spent here is what stops the next ten features drifting.

The table in CLAUDE.md is a router, not a summary. When you ask for something in the left column, the agent opens the file in the right one:

All 37 rows point at files that exist. None of them sends the agent somewhere that is not there.

Everything in these docs still applies. The difference is loading: neither tool picks up CLAUDE.md by convention the way Claude Code does, so say it once at the start of a session:

Read CLAUDE.md in the project root and follow it for everything in this session. It overrides your defaults for this codebase.

Next: Build Your First Screen .

Recommended articles