A structured repository for creating and maintaining React Native Best Practices optimized for agents and LLMs. - rules/ - Individual rule files (one per rule) - sections.md - Section metadata (titles, impacts, descriptions) - template.md - Template for creating new rules - area-description.md - Individual rule files - metadata.json - Document metadata (version, organization, abstract) - AGENTS.md
Add this skill
npx mdskills install vercel-labs/react-native-skillsComprehensive React Native best practices organized by priority with clear categorization and examples
A structured repository for creating and maintaining React Native Best Practices optimized for agents and LLMs.
rules/ - Individual rule files (one per rule)
_sections.md - Section metadata (titles, impacts, descriptions)_template.md - Template for creating new rulesarea-description.md - Individual rule filesmetadata.json - Document metadata (version, organization, abstract)AGENTS.md - Compiled output (generated)rendering-text-in-text-component.md - Wrap strings in Text componentsrendering-no-falsy-and.md - Avoid falsy && operator in JSXlist-performance-virtualize.md - Use virtualized lists (LegendList,
FlashList)list-performance-function-references.md - Keep stable object referenceslist-performance-callbacks.md - Hoist callbacks to list rootlist-performance-inline-objects.md - Avoid inline objects in renderItemlist-performance-item-memo.md - Pass primitives for memoizationlist-performance-item-expensive.md - Keep list items lightweightlist-performance-images.md - Use compressed images in listslist-performance-item-types.md - Use item types for heterogeneous listsanimation-gpu-properties.md - Animate transform/opacity instead of layoutanimation-gesture-detector-press.md - Use GestureDetector for press
animationsanimation-derived-value.md - Prefer useDerivedValue over useAnimatedReactionscroll-position-no-state.md - Never track scroll in useStatenavigation-native-navigators.md - Use native stack and native tabsreact-state-dispatcher.md - Use functional setState updatesreact-state-fallback.md - State should represent user intent onlyreact-state-minimize.md - Minimize state variables, derive valuesstate-ground-truth.md - State must represent ground truthreact-compiler-destructure-functions.md - Destructure functions earlyreact-compiler-reanimated-shared-values.md - Use .get()/.set() for shared
valuesui-expo-image.md - Use expo-image for optimized imagesui-image-gallery.md - Use Galeria for lightbox/galleriesui-menus.md - Native dropdown and context menus with Zeegoui-native-modals.md - Use native Modal with formSheetui-pressable.md - Use Pressable instead of TouchableOpacityui-measure-views.md - Measuring view dimensionsui-safe-area-scroll.md - Use contentInsetAdjustmentBehaviorui-scrollview-content-inset.md - Use contentInset for dynamic spacingui-styling.md - Modern styling patterns (gap, boxShadow, gradients)design-system-compound-components.md - Use compound componentsmonorepo-native-deps-in-app.md - Install native deps in app directorymonorepo-single-dependency-versions.md - Single dependency versionsimports-design-system-folder.md - Import from design system folderjs-hoist-intl.md - Hoist Intl formatter creationfonts-config-plugin.md - Load fonts natively at build timerules/_template.md to rules/area-description.mdrendering- for Core Renderinglist-performance- for List Performanceanimation- for Animationscroll- for Scroll Performancenavigation- for Navigationreact-state- for React Statestate- for State Architecturereact-compiler- for React Compilerui- for User Interfacedesign-system- for Design Systemmonorepo- for Monorepoimports- for Third-Party Dependenciesjs- for JavaScriptfonts- for FontsEach rule file should follow this structure:
---
title: Rule Title Here
impact: MEDIUM
impactDescription: Optional description
tags: tag1, tag2, tag3
---
## Rule Title Here
Brief explanation of the rule and why it matters.
**Incorrect (description of what's wrong):**
```tsx
// Bad code example
```
Correct (description of what's right):
// Good code example
Reference: Link
## File Naming Convention
- Files starting with `_` are special (excluded from build)
- Rule files: `area-description.md` (e.g., `animation-gpu-properties.md`)
- Section is automatically inferred from filename prefix
- Rules are sorted alphabetically by title within each section
## Impact Levels
- `CRITICAL` - Highest priority, causes crashes or broken UI
- `HIGH` - Significant performance improvements
- `MEDIUM` - Moderate performance improvements
- `LOW` - Incremental improvements
Install via CLI
npx mdskills install vercel-labs/react-native-skillsVercel React Native Skills is a free, open-source AI agent skill. A structured repository for creating and maintaining React Native Best Practices optimized for agents and LLMs. - rules/ - Individual rule files (one per rule) - sections.md - Section metadata (titles, impacts, descriptions) - template.md - Template for creating new rules - area-description.md - Individual rule files - metadata.json - Document metadata (version, organization, abstract) - AGENTS.md
Install Vercel React Native Skills with a single command:
npx mdskills install vercel-labs/react-native-skillsThis downloads the skill files into your project and your AI agent picks them up automatically.
Vercel React Native Skills works with Claude Code, Claude Desktop, Cursor, Vscode Copilot, Windsurf, Continue Dev, Codex, Gemini Cli, Amp, Roo Code, Goose, Opencode, Trae, Qodo, Command Code. Skills use the open SKILL.md format which is compatible with any AI coding agent that reads markdown instructions.