React Native Mmkv
margelo/react-native-skills
Fast synchronous key-value storage for React Native via react-native-mmkv (Nitro-backed).
Guides React Native and Expo work for cross-platform apps: Expo Router navigation, fast lists, Reanimated animation, platform-specific code and project structure.
$ npx skills add tech-leads-club/agent-skills --skill react-native-expert -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install tech-leads-club/agent-skills react-native-expert --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/tech-leads-club/agent-skills.git skills-src && mkdir -p .claude/skills && cp -r skills-src/'packages/skills-catalog/skills/(development)/react-native-expert' .claude/skills/react-native-expert && rm -rf skills-srcUse ~/.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/
Install the "react-native-expert" agent skill from https://github.com/tech-leads-club/agent-skills/tree/main/packages/skills-catalog/skills/(development)/react-native-expert into .claude/skills/react-native-expert/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "react-native-expert", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/tech-leads-club/agent-skills/tree/main/packages/skills-catalog/skills/(development)/react-native-expertType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add tech-leads-club/agent-skills --skill react-native-expert -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install tech-leads-club/agent-skills react-native-expert --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/tech-leads-club/agent-skills.git skills-src && mkdir -p .agents/skills && cp -r skills-src/'packages/skills-catalog/skills/(development)/react-native-expert' .agents/skills/react-native-expert && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "react-native-expert" agent skill from https://github.com/tech-leads-club/agent-skills/tree/main/packages/skills-catalog/skills/(development)/react-native-expert into .agents/skills/react-native-expert/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "react-native-expert", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add tech-leads-club/agent-skills --skill react-native-expert -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install tech-leads-club/agent-skills react-native-expert --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/tech-leads-club/agent-skills.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/'packages/skills-catalog/skills/(development)/react-native-expert' .cursor/skills/react-native-expert && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "react-native-expert" agent skill from https://github.com/tech-leads-club/agent-skills/tree/main/packages/skills-catalog/skills/(development)/react-native-expert into .cursor/skills/react-native-expert/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "react-native-expert", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/tech-leads-club/agent-skills.git --path 'packages/skills-catalog/skills/(development)/react-native-expert'--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add tech-leads-club/agent-skills --skill react-native-expert -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install tech-leads-club/agent-skills react-native-expert --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/tech-leads-club/agent-skills.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/'packages/skills-catalog/skills/(development)/react-native-expert' .gemini/skills/react-native-expert && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "react-native-expert" agent skill from https://github.com/tech-leads-club/agent-skills/tree/main/packages/skills-catalog/skills/(development)/react-native-expert into .gemini/skills/react-native-expert/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "react-native-expert", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install tech-leads-club/agent-skills react-native-expertInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add tech-leads-club/agent-skills --skill react-native-expert -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/tech-leads-club/agent-skills.git skills-src && mkdir -p .github/skills && cp -r skills-src/'packages/skills-catalog/skills/(development)/react-native-expert' .github/skills/react-native-expert && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "react-native-expert" agent skill from https://github.com/tech-leads-club/agent-skills/tree/main/packages/skills-catalog/skills/(development)/react-native-expert into .github/skills/react-native-expert/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "react-native-expert", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add tech-leads-club/agent-skills --skill react-native-expert -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install tech-leads-club/agent-skills react-native-expert --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/tech-leads-club/agent-skills.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/'packages/skills-catalog/skills/(development)/react-native-expert' .opencode/skills/react-native-expert && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "react-native-expert" agent skill from https://github.com/tech-leads-club/agent-skills/tree/main/packages/skills-catalog/skills/(development)/react-native-expert into .opencode/skills/react-native-expert/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "react-native-expert", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
react-native-expertGuides React Native and Expo work for cross-platform apps: Expo Router navigation, fast lists, Reanimated animation, platform-specific code and project structure.
The agent works as a senior mobile engineer for React Native and Expo apps. Five principles come first: clarify requirements and target platforms, write the least code that solves the problem, prefer native components over JavaScript equivalents, make surgical edits that match the existing style, and define success up front and verify on both platforms.
A technology table lists the recommended stack, including React Native with the New Architecture, Expo SDK 53 or later, Expo Router, TypeScript, React 19, Reanimated, Gesture Handler, LegendList with FlashList as the alternative, expo-image, Zustand or Jotai, and TanStack Query. Reference files cover Expo Router, performance rules, platform handling, project structure and storage patterns. It is not meant for Flutter, web-only React or backend Node.js work.
5 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit 120b676. It shows what the files ask for, not the result of running them.
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.
No scripts in the folder and no shell commands in SKILL.md (its code samples are typescript).
From the folder's file list and the shell code blocks in SKILL.md.
Links to these hosts (documentation or services it may open):
zeego.devFrom URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
React Native Expert loads about 3.2k tokens when it runs, and up to ~13k if it reads all its reference files. Until then it costs about 159 tokens; SKILL.md has 1,089 words of instructions outside code blocks.
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.
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.
The full file from tech-leads-club/agent-skills at commit 120b676, republished under its CC-BY-4.0 licence (© tech-leads-club). 1,089 words, ~3,214 tokens.
.claude/skills/react-native-expert/SKILL.md (or your agent's skills folder). This skill also uses 5 other files; get the full folder from GitHub.Senior mobile engineer building production-ready cross-platform applications with React Native and Expo. Specializes in performance optimization, native-feeling UI, and modern React patterns for mobile.
Apply these principles before writing any code:
| Layer | Technology | Version |
|---|---|---|
| Framework | React Native | 0.79+ (New Architecture default) |
| Platform | Expo | SDK 53+ |
| Router | Expo Router | 4+ |
| Language | TypeScript | 5.5+ |
| React | React 19 | React Compiler enabled |
| Animation | Reanimated | 4+ |
| Gestures | Gesture Handler | 2.20+ |
| Lists | LegendList (primary), FlashList (alternative) | Latest |
| Images | expo-image | Latest |
| State | Zustand (single store) or Jotai (atomic) | 5+ / 2.10+ |
| Data Fetching | TanStack Query | 5+ |
| Storage | MMKV (primary), SecureStore (sensitive data) | Latest |
| Navigation | Native Stack, Native Bottom Tabs | Latest |
| Styling | StyleSheet.create, NativeWind (optional) | Latest |
Key architectural facts for 2026:
memo(), useCallback(), and useMemo() are rarely needed for memoization purposes, but object reference stability still matters for lists..get() and .set() on Reanimated shared values, never .value directly.getBoundingClientRect() is available for synchronous measurement (RN 0.82+).boxShadow, gap, and experimental_backgroundImage replace legacy shadow/margin/gradient patterns.Follow this sequence for every implementation:
references/project-structure.md when setting up a new projectapp/ for routes, components/ for UI, hooks/, services/, stores/references/project-structure.md for the full recommended layoutPlatform.select() or .ios.tsx/.android.tsx filesreferences/platform-handling.md for platform-specific patternsreferences/expo-router.md for navigation and routing patternstransform and opacity — never layout propertiesreferences/performance-rules.md for the full 35+ rule catalogThese rules prevent crashes and severe performance issues. Always follow them without needing to consult reference files.
Never use && with potentially falsy values — React Native crashes if a falsy value like 0 or "" is rendered outside <Text>. Use ternary with null or explicit boolean coercion:
// CRASH: if count is 0, renders "0" outside <Text>
{
count && <Text>{count} items</Text>
}
// SAFE: ternary
{
count ? <Text>{count} items</Text> : null
}Always wrap strings in <Text> — strings as direct children of <View> crash the app.
Always use a virtualizer. LegendList is preferred. FlashList is an acceptable alternative. Never use ScrollView with .map() for dynamic lists:
import { LegendList } from '@legendapp/list'
;<LegendList
data={items}
renderItem={({ item }) => <ItemCard item={item} />}
keyExtractor={(item) => item.id}
estimatedItemSize={80}
/>Keep list items lightweight. No queries, no data fetching, no expensive computations inside list items. Pass pre-computed primitives as props. Fetch data in the parent.
Maintain stable object references. Do not .map() or .filter() data before passing to virtualized lists. Transform data inside list items using Zustand selectors.
Use native navigators only:
@react-navigation/native-stack or Expo Router's default <Stack> (uses native-stack)react-native-bottom-tabs or Expo Router's <NativeTabs> from expo-router/unstable-native-tabs@react-navigation/stack (JS-based) or @react-navigation/bottom-tabs when native feel matters// Expo Router native tabs (SDK 53+)
import { NativeTabs, Label } from 'expo-router/unstable-native-tabs'
export default function TabLayout() {
return (
<NativeTabs>
<NativeTabs.Trigger name="index">
<Label>Home</Label>
<NativeTabs.Trigger.Icon sf="house.fill" md="home" />
</NativeTabs.Trigger>
</NativeTabs>
)
}Animate only transform and opacity. Never animate width, height, top, left, margin, or padding — they trigger layout recalculation on every frame.
// CORRECT: GPU-accelerated
useAnimatedStyle(() => ({
transform: [{ translateY: withTiming(visible ? 0 : 100) }],
opacity: withTiming(visible ? 1 : 0),
}))Store state, derive visuals. Shared values should represent actual state (pressed, progress), not visual outputs (scale, opacity). Derive visuals with interpolate().
Use .get() and .set() for all Reanimated shared value access — required for React Compiler compatibility.
Always use expo-image instead of React Native's Image. It provides memory-efficient caching, blurhash placeholders, and better list performance:
import { Image } from 'expo-image'
;<Image
source={{ uri: url }}
placeholder={{ blurhash: 'LGF5]+Yk^6#M@-5c,1J5@[or[Q6.' }}
contentFit="cover"
transition={200}
style={styles.image}
/>// Use gap instead of margin between children
<View style={{ gap: 8 }}>
<Text>First</Text>
<Text>Second</Text>
</View>
// Use CSS boxShadow instead of legacy shadow objects
{ boxShadow: '0 2px 8px rgba(0, 0, 0, 0.1)' }
// Use borderCurve for smoother corners
{ borderRadius: 12, borderCurve: 'continuous' }
// Use native gradients instead of third-party libraries
{ experimental_backgroundImage: 'linear-gradient(to bottom, #000, #fff)' }setState(prev => ...)) when next state depends on current state.undefined initial state + ?? operator) for reactive defaults.<Modal presentationStyle="formSheet"> or React Navigation v7 presentation: 'formSheet' with sheetAllowedDetents. Avoid JS-based bottom sheet libraries.Pressable from react-native or react-native-gesture-handler. Never use TouchableOpacity or TouchableHighlight..map())contentInsetAdjustmentBehavior="automatic" for notchesPressable instead of Touchable componentsKeyboardAvoidingView with platform-appropriate behavior for formsDimensions API, flex, or percentage)setTimeout/waitFor for animations (use Reanimated).value on shared values (use .get()/.set())useAnimatedReaction for derivations (use useDerivedValue)TouchableOpacity or TouchableHighlight (use Pressable)@react-navigation/stack (use native-stack)Image component (use expo-image)Load detailed guidance based on context:
| Topic | Reference | Load When |
|---|---|---|
| Performance Rules | references/performance-rules.md | Optimizing lists, animations, rendering, state management, or reviewing code for performance issues |
| Expo Router | references/expo-router.md | Setting up navigation, tabs, stacks, deep linking, protected routes, or Expo Router 4+ patterns |
| Project Structure | references/project-structure.md | Setting up a new project, configuring TypeScript, organizing code, or defining dependencies |
| Platform Handling | references/platform-handling.md | Writing iOS/Android-specific code, SafeArea, keyboard handling, status bar, or back button |
| Storage Patterns | references/storage-patterns.md | Persisting data with MMKV, Zustand persist, SecureStore, or AsyncStorage migration |
When implementing React Native features, always provide:
© tech-leads-club, CC-BY-4.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
SKILL.md and 5 other files (references) in packages/skills-catalog/skills/(development)/react-native-expert of tech-leads-club/agent-skills.
Open the folder on GitHubat commit 120b676
React Native Expert 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.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| React Native Expert this skilltech-leads-club/agent-skills | 7k | — | ~3.2k | Automated safety check: Pass | CC-BY-4.0 | |
| React Native Mmkvmargelo/react-native-skills | 175 | — | ~2.1k | Automated safety check: Pass | MIT | |
| React NativeEliasOulkadi/shokunin | 114 | — | ~3k | Automated safety check: Pass | MIT | |
| React Native Best Practicesvercel-labs/openreview | 1.7k | 17 repos | ~1.1k | Automated safety check: Pass | MIT | |
| ThemingCode-with-Beto/skills | 141 | — | ~2.5k | Automated safety check: Pass | None | |
| Mobile AccessibilityCommunity-Access/accessibility-agents | 422 | — | ~1.1k | Automated safety check: Pass | MIT |
margelo/react-native-skills
Fast synchronous key-value storage for React Native via react-native-mmkv (Nitro-backed).
EliasOulkadi/shokunin
Build production React Native apps with Expo SDK 53+, Expo Router (file-based navigation), New Architecture (Fabric + TurboModules), FlashList, Reanimated 4, Zustand for state, Hermes, EAS Build…
vercel-labs/openreview
A prioritized rule set for React Native and Expo apps covering list performance, animation, navigation, UI patterns, state, rendering, monorepos and configuration.
Code-with-Beto/skills
Scaffold a unified, cross-platform color theme system into an Expo Router app.
Community-Access/accessibility-agents
React Native, Expo, iOS and Android: labels, roles and touch targets.
Community-Access/accessibility-agents
Reference data, not a reviewer. An agent skill from Community-Access/accessibility-agents.
tech-leads-club/agent-skills
Guides design of modular-monolith platforms with DDD, flat-by-aggregate modules, anti-corruption layers, outbox events and resilience, plus an architecture document with SVG diagrams.
tech-leads-club/agent-skills
Generates Excalidraw diagram files from plain descriptions, choosing among flowcharts, mind maps, architecture, swimlane, class, sequence and ER diagrams.
tech-leads-club/agent-skills
Creates, validates and renders Mermaid diagrams to SVG, PNG or ASCII, including C4 and AWS architecture-beta, flowcharts, sequence diagrams and ERDs.
tech-leads-club/agent-skills
Answers AWS architecture, security and service-selection questions by searching AWS documentation through MCP tools first, then adapting advice to your stack and team.
tech-leads-club/agent-skills
Evaluates a repository's agent harness (AGENTS.md, rules, skills) for broken paths, redundant instructions and usefulness, and stops at reports.
tech-leads-club/agent-skills
Designs scalable NestJS modular monoliths with domain-driven design, Clean Architecture layers and optional CQRS, defining bounded contexts and strict module boundaries.
Categories
Guides React Native and Expo work for cross-platform apps: Expo Router navigation, fast lists, Reanimated animation, platform-specific code and project structure. The agent works as a senior mobile engineer for React Native and Expo apps. Five principles come first: clarify requirements and target platforms, write the least code that solves the problem, prefer native components over JavaScript equivalents, make surgical edits that match the existing style, and define success up front and verify on both platforms.
React Native Expert fits situations like: building React Native screens and components for iOS and Android; setting up navigation with Expo Router; speeding up long lists and scrolling with LegendList or FlashList; handling code that differs between iOS and Android.
Run `npx skills add tech-leads-club/agent-skills --skill react-native-expert -a claude-code`. Or copy the skill folder (packages/skills-catalog/skills/(development)/react-native-expert in tech-leads-club/agent-skills) into .claude/skills/react-native-expert in your project. Claude Code loads it when a task matches its description.
Run `npx skills add tech-leads-club/agent-skills --skill react-native-expert -a codex`. Or copy the skill folder (packages/skills-catalog/skills/(development)/react-native-expert in tech-leads-club/agent-skills) into .agents/skills/react-native-expert in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add tech-leads-club/agent-skills --skill react-native-expert -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-expert, .gemini/skills/react-native-expert, .github/skills/react-native-expert and .opencode/skills/react-native-expert in your project.
SKILL.md names no scripts, command-line tools or credentials: React Native Expert is instructions for the agent only. Our summary lists: A React Native or Expo project.
SKILL.md names 1 domain. As links in the text: zeego.dev. This is read from the text; nothing was executed.
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.
React Native Expert is published under the CC-BY-4.0 licence (declared in SKILL.md). It allows redistribution, so the full SKILL.md is shown on this page.
About 3.2k tokens (SKILL.md is roughly 13k 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 9.7k tokens, read only when the agent opens those files.
Skills that share tags, products or a category with React Native Expert: React Native Mmkv (margelo/react-native-skills, 175 stars), React Native (EliasOulkadi/shokunin, 114 stars), React Native Best Practices (vercel-labs/openreview, 1.7k stars) and Theming (Code-with-Beto/skills, 141 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
tech-leads-club (a GitHub organization) maintains it in tech-leads-club/agent-skills, which has 7,041 GitHub stars. The repository holds 74 skills in this directory. The repository was last updated on September 20, 2026.
Source: tech-leads-club/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.