Official agent skill

React Native Best Practices

by callstackincubator in callstackincubator/agent-skills

Provides React Native performance optimization guidelines for FPS, TTI, bundle size, memory leaks, re-renders, and animations.

OfficialMITAuto-check passedMobile

Install React Native Best Practices

skills CLI
$ npx skills add callstackincubator/agent-skills --skill react-native-best-practices -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install callstackincubator/agent-skills react-native-best-practices --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/callstackincubator/agent-skills.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/react-native-best-practices .claude/skills/react-native-best-practices && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
react-native-best-practices
GitHub stars
1.7k
Used in
4 other repos
Token cost
~3.1k tokens
SKILL.md length
946 words
Files
44 (incl. references)
Skills in repo
12
Repo updated
First seen
Licence
MIT

At a glance

Provides React Native performance optimization guidelines for FPS, TTI, bundle size, memory leaks, re-renders, and animations.

  • Works in 4 steps: Measure: Capture baseline metrics before… → Optimize: Apply the targeted fix from… → Re-measure: Run the same measurement to… → …
  • Tasks that involve Cross-platform mobile apps
  • SKILL.md covers Overview, When to Apply, Security Notes and Priority-Ordered Guidelines, plus 4 more sections
  • Calls npx

What it does

React Native Best Practices is an agent skill from callstackincubator/agent-skills, published by the product's own GitHub organization. Provides React Native performance optimization guidelines for FPS, TTI, bundle size, memory leaks, re-renders, and animations. Applies to tasks involving Hermes optimization, JS thread blocking, bridge overhead, FlashList, native modules, or debugging jank and frame drops.

Its SKILL.md is about 3.1k tokens, which your agent loads only when the skill is triggered. The skill folder holds 46 other files, including reference files (for example `POWER.md`, `agents/openai.yaml` and `references/bundle-analyze-app.md`).

It sits in Mobile, covering Cross-platform mobile apps, Performance optimization and Web performance. It works with React Native. The repository describes itself as: A collection of agent-optimized React Native skills for AI coding assistants. The licence is MIT.

When your agent uses it

  • Tasks that involve Cross-platform mobile apps
  • Tasks that involve Performance optimization
  • Tasks that involve Web performance

Example prompts

  • “Use the react-native-best-practices skill to provide React Native performance optimization guidelines for FPS, TTI, bundle size, memory leaks…”
  • “/react-native-best-practices”

Requirements

  • Node.js

Workflow steps

4 steps, taken from the first numbered list in SKILL.md.

  1. Measure: Capture baseline metrics before changes. For runtime issues, prefer commit timeline, re-render counts, slow components…
  2. Optimize: Apply the targeted fix from the relevant reference
  3. Re-measure: Run the same measurement to get updated metrics
  4. Validate: Confirm improvement (e.g., FPS 45→60, TTI 3.2s→1.8s, bundle 2.1MB→1.6MB)

What it can do on your machine

Read from SKILL.md and the folder at commit 61e6e7d. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Shell commands in SKILL.md call:

    • npx

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    Links to these hosts (documentation or services it may open):

    • github.com

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

React Native Best Practices loads about 3.1k tokens when it runs, and up to ~1.7M if it reads all its reference files. Until then it costs about 75 tokens; SKILL.md has 946 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~75
When it runs · the whole SKILL.md, loaded when a task matches
~3.1k
With references · SKILL.md plus every file in references/, read only if the agent opens them
~1.7M

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from callstackincubator/agent-skills at commit 61e6e7d, republished under its MIT licence (© callstackincubator). 946 words, ~3,080 tokens.

Download SKILL.mdSave it as .claude/skills/react-native-best-practices/SKILL.md (or your agent's skills folder). This skill also uses 43 other files; get the full folder from GitHub.
name
react-native-best-practices
description
Provides React Native performance optimization guidelines for FPS, TTI, bundle size, memory leaks, re-renders, and animations. Applies to tasks involving Hermes optimization, JS thread blocking, bridge overhead, FlashList, native modules, or debugging jank and frame drops.
license
MIT

React Native Best Practices

Overview

Performance optimization guide for React Native applications, covering JavaScript/React, Native (iOS/Android), and bundling optimizations. Based on Callstack's "Ultimate Guide to React Native Optimization".

When to Apply

Reference these guidelines when:

  • Debugging slow/janky UI or animations
  • Investigating memory leaks (JS or native)
  • Optimizing app startup time (TTI)
  • Reducing bundle or app size
  • Writing native modules (Turbo Modules)
  • Profiling React Native performance
  • Reviewing React Native code for performance

Security Notes

  • Treat shell commands in these references as local developer operations. Review them before running, prefer version-pinned tooling, and avoid piping remote scripts directly to a shell.
  • Treat third-party libraries and plugins as dependencies that still require normal supply-chain controls: pin versions, verify provenance, and update through your standard review process.
  • Treat remote chunk loading as first-party artifact delivery only. Prefer app-bundled chunks or signed CI release manifests; hosted chunks must come from trusted HTTPS origins you control and be pinned to the current app release.

Priority-Ordered Guidelines

PriorityCategoryImpactPrefix
1FPS & Re-rendersCRITICALjs-*
2Bundle SizeCRITICALbundle-*
3TTI OptimizationHIGHnative-*, bundle-*
4Native PerformanceHIGHnative-*
5Memory ManagementMEDIUM-HIGHjs-*, native-*
6AnimationsMEDIUMjs-*

Impact labels are triage hints: CRITICAL first, HIGH next, MEDIUM when evidence points there.

Quick Reference

Optimization Workflow

Follow this cycle for any performance issue: Measure → Optimize → Re-measure → Validate

  1. Measure: Capture baseline metrics before changes. For runtime issues, prefer commit timeline, re-render counts, slow components, heaviest-commit breakdown, and startup/TTI when available. Component tree depth or count are optional context, not substitutes. Do not recommend memoization, atomic state, or compiler changes without a measured render or FPS problem.
  2. Optimize: Apply the targeted fix from the relevant reference
  3. Re-measure: Run the same measurement to get updated metrics
  4. Validate: Confirm improvement (e.g., FPS 45→60, TTI 3.2s→1.8s, bundle 2.1MB→1.6MB)

If metrics did not improve, revert and try the next suggested fix.

Review Guardrails
  • Check library versions before suggesting API-specific fixes. Example: FlashList v2 deprecates estimatedItemSize, so do not flag it as missing there.
  • Do not suggest useMemo or useCallback dependency changes unless behavior is demonstrably incorrect or profiling shows wasted work tied to that value.
  • Do not report stale closures speculatively. Show the stale read path, a repro, or profiler evidence before calling it out.
  • When profiling a flow, measure the target interaction itself. Do not treat component tree depth or component count as the main performance evidence.
Critical: FPS & Re-renders

Profile first:

bash
agent-device react-devtools status
agent-device react-devtools wait --connected
agent-device react-devtools profile start
agent-device react-devtools profile stop
agent-device react-devtools profile slow --limit 5
agent-device react-devtools profile rerenders --limit 5
agent-device react-devtools profile timeline --limit 20

Drive the target interaction with normal agent-device commands between profile start and profile stop.

Manual fallback when agent-device is unavailable: open React Native DevTools from Metro (j) or the Dev Menu, use the Profiler tab, and record the same interaction.

For release-build React component profiling, connect @callstack/inspector first so React DevTools can attach to the release app, then run the agent-device react-devtools flow above.

Common fixes:

  • Replace ScrollView with FlatList/FlashList/Legend List for long lists
  • After profiling shows cascading re-renders, use React Compiler for automatic memoization
  • After profiling shows broad store/context updates, use atomic state (Jotai/Zustand) to reduce re-renders
  • Use useDeferredValue for expensive computations
Critical: Bundle Size

Analyze bundle:

bash
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

Verify improvement after optimization:

bash
# Record baseline size before changes
ls -lh output.js  # e.g., Before: 2.1 MB

# After applying fixes, re-bundle and compare
npx react-native bundle --entry-file index.js --bundle-output output.js \
  --platform ios --dev false --minify true
ls -lh output.js  # e.g., After: 1.6 MB  (24% reduction)

Common fixes:

  • Avoid barrel imports (import directly from source)
  • Remove unnecessary Intl polyfills only after checking Hermes API and method coverage
  • Evaluate tree shaking (Expo SDK 52+ experimental unused import/export removal, or Re.Pack only if already configured)
  • Enable R8 for Android native code shrinking
Show full SKILL.md (382 more words)Show less
High: TTI Optimization

Measure TTI:

  • Use react-native-performance for markers
  • Only measure cold starts (exclude warm/hot/prewarm)

Common fixes:

  • For React Native 0.78 and earlier, disable Android JS bundle compression to enable Hermes mmap
  • Use native navigation (react-native-screens)
  • Preload commonly-used expensive screens before navigating to them
High: Native Performance

Profile native:

  • iOS: Xcode Instruments → Time Profiler
  • Android: Android Studio → CPU Profiler

Common fixes:

  • Use background threads for heavy native work
  • Prefer async over sync Turbo Module methods
  • Use C++ for cross-platform performance-critical code

References

Full documentation with code examples in references/:

JavaScript/React (js-*)
FileImpactDescription
js-lists-flatlist-flashlist.mdCRITICALReplace ScrollView with virtualized lists
js-profile-react.mdMEDIUMagent-device react-devtools profiling
js-measure-fps.mdHIGHFPS monitoring and measurement
js-memory-leaks.mdMEDIUMJS memory leak hunting
js-atomic-state.mdHIGHJotai/Zustand patterns
js-concurrent-react.mdHIGHuseDeferredValue, useTransition
js-react-compiler.mdHIGHAutomatic memoization
js-animations-reanimated.mdMEDIUMReanimated worklets
js-bottomsheet.mdHIGHBottom sheet optimization
js-uncontrolled-components.mdHIGHTextInput optimization
Native (native-*)
FileImpactDescription
native-turbo-modules.mdHIGHBuilding fast native modules
native-sdks-over-polyfills.mdHIGHNative vs JS libraries
native-measure-tti.mdHIGHTTI measurement setup
native-threading-model.mdHIGHTurbo Module threads
native-profiling.mdMEDIUMXcode/Android Studio profiling
native-platform-setup.mdMEDIUMiOS/Android tooling guide
native-view-flattening.mdMEDIUMView hierarchy debugging
native-memory-patterns.mdMEDIUMC++/Swift/Kotlin memory
native-memory-leaks.mdMEDIUMNative memory leak hunting
native-android-16kb-alignment.mdCRITICALThird-party library alignment for Google Play
Bundling (bundle-*)
FileImpactDescription
bundle-barrel-exports.mdCRITICALAvoid barrel imports
bundle-analyze-js.mdCRITICALJS bundle visualization
bundle-tree-shaking.mdHIGHDead code elimination
bundle-analyze-app.mdHIGHApp size analysis
bundle-r8-android.mdHIGHAndroid code shrinking
bundle-hermes-mmap.mdHIGHDisable bundle compression
bundle-native-assets.mdHIGHAsset catalog setup
bundle-library-size.mdMEDIUMEvaluate dependencies
bundle-code-splitting.mdMEDIUMRemote chunk loading safeguards

Problem → Skill Mapping

Attribution

Based on "The Ultimate Guide to React Native Optimization" by Callstack.

© callstackincubator, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

SKILL.md and 43 other files (references) in skills/react-native-best-practices of callstackincubator/agent-skills.

  • SKILL.md
  • POWER.md
  • agents/openai.yaml
  • references/bundle-analyze-app.md
  • references/bundle-analyze-js.md
  • references/bundle-barrel-exports.md
  • references/bundle-code-splitting.md
  • references/bundle-hermes-mmap.md
  • references/bundle-library-size.md
  • references/bundle-native-assets.md
  • references/bundle-r8-android.md
  • references/bundle-tree-shaking.md
  • references/images/bundle-treemap-source-map-explorer.png
  • references/images/controlled-textinput-pingpong.png
  • references/images/devtools-flamegraph.png
  • references/images/emerge-xray-ios.png
  • references/images/expo-atlas-treemap.png
  • references/images/flashlight-flatlist-vs-flashlist.png
  • … and 26 more

Open the folder on GitHubat commit 61e6e7d

Used in 4 other repositories

We found 4 copies of this SKILL.md (exact, near-identical or edited) in other folders, from 4 other GitHub owners. This page covers the copy in callstackincubator/agent-skills, which our catalogue first saw on October 7, 2026.

Compare with similar skills

React Native Best Practices next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

React Native Best Practices compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
React Native Best Practices this skillcallstackincubator/agent-skills1.7k4 repos~3.1kAutomated safety check: PassMIT
Argent React Native Optimizationbbplayer-app/BBPlayer1.1k—~1.3kAutomated safety check: PassMIT
PerformanceSidiora-Labs/centra-llm-agents115—~778Automated safety check: PassCustom licence
React Native Best Practicesvercel-labs/openreview1.7k17 repos~1.1kAutomated safety check: PassMIT
React Native Experttech-leads-club/agent-skills7k—~3.2kAutomated safety check: PassCC-BY-4.0
Perf BenchmarkingGetStream/stream-chat-react-native1.2k—~5.6kAutomated safety check: PassCustom licence

Similar skills

  • Optimizes a React Native app by profiling first to find real bottlenecks, then sweeping for mechanical issues.

    1.1k GitHub stars~1.3k tokensUpdated today
    MobileAuto-check passed
  • Performance

    Sidiora-Labs/centra-llm-agents

    Performance optimization guidelines for React/React Native applications.

    115 GitHub stars~778 tokensUpdated 19 days ago
    MobileAuto-check passed
  • React Native Best Practices

    vercel-labs/openreview

    Official

    A prioritized rule set for React Native and Expo apps covering list performance, animation, navigation, UI patterns, state, rendering, monorepos and configuration.

    1.7k GitHub starsUsed in 17 repos~1.1k tokens
    MobileAuto-check passed
  • React Native Expert

    tech-leads-club/agent-skills

    Guides React Native and Expo work for cross-platform apps: Expo Router navigation, fast lists, Reanimated animation, platform-specific code and project structure.

    7k GitHub stars~3.2k tokensUpdated 17 days ago
    MobileAuto-check passed
  • Perf Benchmarking

    GetStream/stream-chat-react-native

    Measure React Native performance on-device for stream-chat-react-native — Hermes CPU profiles, deterministic call/listener counting, component render profiling, and memory/jank capture.

    1.2k GitHub stars~5.6k tokensUpdated today
    MobileAuto-check passed
  • React Native Expert

    Jeffallan/claude-skills

    Builds React Native and Expo apps for iOS and Android: Expo Router navigation, FlatList tuning, platform-specific code and build error recovery.

    12k GitHub stars~1.7k tokensUpdated 4 days ago
    MobileAuto-check passed

More from callstackincubator/agent-skills

All 12 skills in this repo
  • Dogfood

    callstackincubator/agent-skills

    Official

    Systematically explore and test a mobile app on iOS/Android with agent-device to find bugs, UX issues, and other problems.

    1.7k GitHub starsUsed in 1 repo~1.7k tokens
    Auto-check passed
  • Upgrading React Native

    callstackincubator/agent-skills

    Official

    Upgrades React Native apps to newer versions by applying rn-diff-purge template diffs, updating package.json dependencies, migrating native iOS and Android configuration, resolving CocoaPods and…

    1.7k GitHub starsUsed in 1 repo~1.1k tokens
    Auto-check passed
  • Create React Native Library

    callstackincubator/agent-skills

    Official

    Scaffolds React Native libraries with create-react-native-library for standalone libraries or local native modules and views.

    1.7k GitHub stars~684 tokensUpdated yesterday
    Auto-check passed
  • React Native Testing

    callstackincubator/agent-skills

    Official

    Write tests using React Native Testing Library (RNTL) v13 and v14 (@testing-library/react-native).

    1.7k GitHub stars~1.8k tokensUpdated yesterday
    Auto-check passed
  • Assess React Native Migration

    callstackincubator/agent-skills

    Official

    Assesses whether and how an existing mobile product should migrate to React Native.

    1.7k GitHub stars~3.6k tokensUpdated yesterday
    Auto-check passed
  • GitHub Actions

    callstackincubator/agent-skills

    Official

    GitHub Actions workflow patterns for React Native iOS simulator and Android emulator cloud builds with downloadable artifacts.

    1.7k GitHub starsUsed in 1 repo~703 tokens
    Auto-check passed

Works with

Categories

Questions about React Native Best Practices

What does React Native Best Practices do?

Provides React Native performance optimization guidelines for FPS, TTI, bundle size, memory leaks, re-renders, and animations. React Native Best Practices is an agent skill from callstackincubator/agent-skills, published by the product's own GitHub organization. Provides React Native performance optimization guidelines for FPS, TTI, bundle size, memory leaks, re-renders, and animations.

When should I use React Native Best Practices?

React Native Best Practices fits situations like: tasks that involve Cross-platform mobile apps; tasks that involve Performance optimization; tasks that involve Web performance.

How do I install React Native Best Practices in Claude Code?

Run `npx skills add callstackincubator/agent-skills --skill react-native-best-practices -a claude-code`. Or copy the skill folder (skills/react-native-best-practices in callstackincubator/agent-skills) into .claude/skills/react-native-best-practices in your project. Claude Code loads it when a task matches its description.

How do I install React Native Best Practices in Codex?

Run `npx skills add callstackincubator/agent-skills --skill react-native-best-practices -a codex`. Or copy the skill folder (skills/react-native-best-practices in callstackincubator/agent-skills) into .agents/skills/react-native-best-practices in your project. Codex loads it when a task matches its description.

Can I use React Native Best Practices in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add callstackincubator/agent-skills --skill react-native-best-practices -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/react-native-best-practices, .gemini/skills/react-native-best-practices, .github/skills/react-native-best-practices and .opencode/skills/react-native-best-practices in your project.

What does React Native Best Practices need to run?

Going by SKILL.md and its folder, React Native Best Practices needs the command-line tools its instructions call (npx). Our summary lists: Node.js.

Does React Native Best Practices access the network?

SKILL.md names 1 domain. As links in the text: github.com. This is read from the text; nothing was executed.

Is React Native Best Practices safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does React Native Best Practices use?

React Native Best Practices is published under the MIT licence (declared in SKILL.md). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does React Native Best Practices use?

About 3.1k tokens (SKILL.md is roughly 12k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 1.7M tokens, read only when the agent opens those files.

What are the alternatives to React Native Best Practices?

Skills that share tags, products or a category with React Native Best Practices: Argent React Native Optimization (bbplayer-app/BBPlayer, 1.1k stars), Performance (Sidiora-Labs/centra-llm-agents, 115 stars), React Native Best Practices (vercel-labs/openreview, 1.7k stars) and React Native Expert (tech-leads-club/agent-skills, 7k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains React Native Best Practices?

callstackincubator (a GitHub organization, an official publisher) maintains it in callstackincubator/agent-skills, which has 1,663 GitHub stars. The repository holds 12 skills in this directory. The repository was last updated on October 6, 2026.

Source: callstackincubator/agent-skills on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.