Official React Native and Expo documentation map, supplemental library docs, EAS/Router vocabulary, and performance investigation pointers (Callstack RN best-practices skill) for RAD mobile work (mobile/, shared/). Use when working on Expo, React Native, FlashList/Reanimated/jank, bundle size, TTI, EAS, or SDK alignment.
Use this skill to route questions to the right official docs and to remember how native work fits the RAD pipeline. It does not replace repo-specific rules.
.cursor/rules/mobile.mdc — prohibitions, NativeWind rules, Radix → @rn-primitives mapping, patterns for this codebase..cursor/agents/mobile-developer.md — Foundation vs Feature mode steps, commits, quality gates.If this skill and mobile.mdc disagree on how to write code, mobile.mdc wins. If the question is which Expo SDK API or EAS command applies, use the official links below for the SDK version in mobile/package.json. For third-party libraries, prefer the library’s current docs — versions must match / lockfile.
mobile/package.json/mobile command)/foundation (after web foundation), see .cursor/commands/foundation.md./feature [name] — Step 2b — Mobile, see .cursor/commands/feature.md.pwa-then-native Phase B: /native-init once (workspace + shared extraction + Expo scaffold), then /foundation / /feature as in .cursor/commands/native-init.md.src/; native stays in mobile/; shared/ holds cross-platform types, validation, Supabase factory, hooks consumed by both.| Topic | URL |
|---|---|
| Introduction, prerequisites (JS; React helps), how the doc set works | Introduction · React Native |
| Why use a framework; Expo as recommended path | Environment setup |
| Views, native components, core building blocks | Core Components and Native Components |
| Topic | URL | RAD note |
|---|---|---|
| Documentation home | Expo Documentation | Primary doc set for mobile/ |
Create project — Node LTS, OS support (Windows: PowerShell / WSL 2), create-expo-app, SDK templates (--template default@sdk-*) | Create a project | Align new scaffolds with mobile/package.json Expo SDK |
| Simulators, devices, Expo Go vs dev client | Set up your environment | |
File-based routes, deep links, expo start workflow | Introduction to Expo Router | Routes live under mobile/src/app/ |
| Custom native code, beyond Expo Go | Development builds | Matches EAS development profiles in foundation flows |
| EAS overview | Expo Application Services | Also expo.dev/eas |
| Cloud compile + sign | EAS Build | |
| Store upload automation | EAS Submit | |
| OTA JavaScript/asset updates | EAS Update | |
| Browser playground (optional) | Expo Snack |
Behavior is often defined by these packages; match mobile/package.json when reading migration notes.
| Area | Documentation | Typical questions |
|---|---|---|
| NativeWind | NativeWind · Expo Router | className, cssInterop, theme |
| Expo Router (deep) | Router basics · Typed routes | Layouts, modals, linking |
| React Navigation | Docs | Headers, stack/tab under the hood |
| FlashList | FlashList | Recycling, estimatedItemSize, jank |
| Reanimated | Reanimated | Worklets, UI-thread animation |
| expo-image | Expo Image | recyclingKey, placeholders |
| react-native-reusables | Site | Primitives |
| TanStack Query | React | Same patterns as shared/hooks/ |
| RHF + Zod | RHF · Zod | Forms / shared/validation/ |
| Keyboard | keyboard-controller | Scroll + keyboard |
| Supabase (device) | JS ref · Native deep linking | Session + auth with shared/api |
Web parity (src/): React Router · Tailwind — use when debugging web-vs-native behavior.
The file you may have is the index for Callstack’s react-native-best-practices agent skill (repo, skill folder, MIT). The deep content lives in that repo’s references/*.md files — install or copy the whole skill if you want those chapters; the index alone is a routing table.
Workflow (from that skill): Measure → Optimize → Re-measure → Validate. If the metric does not move, revert and try the next lever.
Priority themes: (1) FPS & re-renders (2) bundle size (3) TTI (4) native work (5) memory (6) animations.
RAD alignment — do not “upgrade” stack from docs blindly:
mobile.mdc already requires FlashList for dynamic lists — prefer that over lazy ScrollView.mobile.mdc.shared/hooks/ — not Jotai/Zustand unless Tech Lead approves.Where to start (then open Callstack references/ if the skill is installed):
| Symptom | Direction |
|---|---|
| Janky UI / frame drops | RN DevTools / FPS → React profiler → list + re-render guides |
| List scroll stutter | FlashList docs + Callstack list references |
| Slow cold start | TTI markers + bundle analysis (Expo/EAS context) |
| Fat JS bundle | source-map-explorer / Expo bundle analysis; avoid barrel imports |
| Memory climbing | JS vs native leak chapters |
| TextInput lag | Uncontrolled input / RHF patterns |
Security: Treat shell and bundle-analysis commands from any external skill as review before run; pin tooling; don’t pipe remote scripts into a shell (per Callstack’s own skill notes).
Attribution: priority/workflow/problem mapping is derived from Callstack’s react-native-best-practices skill (MIT); full text and code samples are in their repository.
expo-* module APIs → versioned reference for the same SDK as mobile/package.json.Tables and account-level setup for Tech Leads also appear in RAD-GUIDE.md under React Native and Expo and Expo documentation.