react-native
SKILL.md
React Native Complete Guide
The ultimate React Native optimization guide combining:
- Callstack - Profiling, measurement, and native optimization (27 references)
- Vercel - Code patterns, UI, and best practices (36 rules)
When to Apply
Reference these guidelines when:
- Debugging slow/janky UI or animations
- Optimizing list and scroll performance
- Investigating memory leaks (JS or native)
- Optimizing app startup time (TTI)
- Reducing bundle or app size
- Implementing animations with Reanimated
- Building UI with native components
- Working with React Compiler
- Structuring monorepo projects
Priority-Ordered Guidelines
| Priority | Category | Impact | Source |
|---|---|---|---|
| 1 | Core Rendering | CRITICAL | Vercel |
| 2 | List Performance | CRITICAL | Both |
| 3 | FPS & Re-renders | CRITICAL | Callstack |
| 4 | Bundle Size | CRITICAL | Callstack |
| 5 | Animation | HIGH | Both |
| 6 | Navigation | HIGH | Vercel |
| 7 | TTI Optimization | HIGH | Callstack |
| 8 | UI Patterns | HIGH | Vercel |
| 9 | Native Performance | HIGH | Callstack |
| 10 | State Management | MEDIUM | Vercel |
| 11 | React Compiler | MEDIUM | Both |
| 12 | Memory Management | MEDIUM | Callstack |
| 13 | Monorepo | MEDIUM | Vercel |
Quick Reference: Code Patterns (Vercel)
Core Rendering (CRITICAL)
rendering-no-falsy-and- Never use && with falsy values (crashes app)rendering-text-in-text-component- Wrap strings in Text components
List Performance (CRITICAL)
list-performance-virtualize- Use FlashList/LegendList for any listlist-performance-item-memo- Memoize list item componentslist-performance-callbacks- Stabilize callback referenceslist-performance-inline-objects- Avoid inline style objectslist-performance-function-references- Extract functions outside renderlist-performance-images- Use compressed, appropriately-sized imageslist-performance-item-expensive- Move expensive work outside itemslist-performance-item-types- Use item types for heterogeneous lists
Animation (HIGH)
animation-gpu-properties- Animate only transform and opacityanimation-derived-value- Use useDerivedValue for computed animationsanimation-gesture-detector-press- Use Gesture.Tap for press animations
Navigation (HIGH)
navigation-native-navigators- Use native stack/tabs over JS navigators
UI Patterns (HIGH)
ui-expo-image- Use expo-image for all imagesui-image-gallery- Use Galeria for lightboxesui-pressable- Use Pressable over TouchableOpacityui-safe-area-scroll- Use contentInsetAdjustmentBehaviorui-scrollview-content-inset- Use contentInset for dynamic spacingui-menus- Use native context menus (zeego)ui-native-modals- Use native modals over JS bottom sheetsui-measure-views- Use onLayout, not measure()ui-styling- Use StyleSheet.create, gap, borderCurve
State Management (MEDIUM)
react-state-minimize- Derive values, minimize statereact-state-dispatcher- Use dispatch updatersreact-state-fallback- Use fallback pattern for reactive defaultsstate-ground-truth- State represents truth, derive visuals
React Compiler (MEDIUM)
react-compiler-destructure-functions- Destructure functions earlyreact-compiler-reanimated-shared-values- Use .get()/.set() not .value
Monorepo (MEDIUM)
monorepo-native-deps-in-app- Install native deps in app packagemonorepo-single-dependency-versions- Single versions across packages
Configuration (LOW)
fonts-config-plugin- Load fonts at build timeimports-design-system-folder- Re-export from design systemjs-hoist-intl- Hoist Intl formatter creation
Quick Reference: Profiling & Measurement (Callstack)
FPS & Re-renders (CRITICAL)
# Open React Native DevTools
# Press 'j' in Metro, or shake device → "Open DevTools"
js-profile-react.md- React DevTools profilingjs-measure-fps.md- FPS monitoringjs-react-compiler.md- Automatic memoizationjs-atomic-state.md- Jotai/Zustand patternsjs-concurrent-react.md- useDeferredValue, useTransition
Bundle Size (CRITICAL)
npx react-native bundle \
--entry-file index.js \
--bundle-output output.js \
--platform ios \
--sourcemap-output output.js.map \
--dev false --minify true
npx source-map-explorer output.js --no-border-checks
bundle-barrel-exports.md- Avoid barrel importsbundle-analyze-js.md- JS bundle visualizationbundle-tree-shaking.md- Dead code eliminationbundle-r8-android.md- Android code shrinkingbundle-hermes-mmap.md- Disable bundle compression
TTI Optimization (HIGH)
native-measure-tti.md- TTI measurement setupbundle-hermes-mmap.md- Enable Hermes mmap- Defer non-critical work with
InteractionManager
Native Performance (HIGH)
- iOS: Xcode Instruments → Time Profiler
- Android: Android Studio → CPU Profiler
native-turbo-modules.md- Building fast native modulesnative-threading-model.md- Turbo Module threadsnative-profiling.md- Platform profiling guides
Memory Management (MEDIUM)
js-memory-leaks.md- JS memory leak huntingnative-memory-leaks.md- Native memory leaksnative-memory-patterns.md- C++/Swift/Kotlin memory
Animations (MEDIUM)
js-animations-reanimated.md- Reanimated worklets
Problem → Solution Mapping
| Problem | Vercel Rules | Callstack References |
|---|---|---|
| App crashes | rendering-no-falsy-and, rendering-text-in-text-component |
- |
| List scroll jank | list-performance-* |
js-lists-flatlist-flashlist.md |
| Animation drops frames | animation-gpu-properties |
js-animations-reanimated.md |
| Too many re-renders | react-state-minimize |
js-profile-react.md, js-react-compiler.md |
| Slow startup (TTI) | - | native-measure-tti.md, bundle-hermes-mmap.md |
| Large app size | - | bundle-analyze-app.md, bundle-r8-android.md |
| Memory growing | - | js-memory-leaks.md, native-memory-leaks.md |
| TextInput lag | - | js-uncontrolled-components.md |
| Native module slow | - | native-turbo-modules.md |
File Structure
react-native/
├── SKILL.md # This file
├── AGENTS.md # Full 74KB compiled Vercel guide
├── rules/ # 36 individual Vercel rule files
│ ├── list-performance-*.md
│ ├── animation-*.md
│ ├── ui-*.md
│ └── ...
└── references/ # 27 Callstack reference files
├── js-*.md
├── native-*.md
├── bundle-*.md
└── images/
Attribution
Combined from:
- "The Ultimate Guide to React Native Optimization" by Callstack
- React Native Skills by Vercel
Weekly Installs
21
Repository
gigs-slc/react-…e-skillsFirst Seen
Feb 13, 2026
Security Audits
Installed on
gemini-cli19
cursor19
opencode18
cline18
codex18
claude-code17