Vercel React Native Skills
JetBrainsOfficialCreated by VercelDistributed by JetBrains
- Skill
- Guidelines
- Software development
- MIT
- No issues found
AutoGineer summary
Written by AutoGineer from the skill’s own files, not by the author
This skill provides a structured set of guidelines for React Native and Expo development. It covers a range of topics including list management, animation implementation, navigation, UI patterns, state management, and monorepo configuration. The rules are organized by priority to help developers maintain consistent coding standards and architectural patterns across their mobile projects.
What it does
- Provides rules for optimizing list and scroll behavior
- Offers guidance on implementing animations with Reanimated
- Defines patterns for UI components and native module usage
- Suggests state management and rendering practices
- Outlines configuration standards for monorepo projects
When to use it
- When building or maintaining React Native and Expo applications
- When implementing complex animations or list views
- When structuring projects with native dependencies
- When seeking standardized approaches to common mobile UI patterns
Advantages
- Categorized rules based on development priority
- Covers both core React Native and Expo-specific patterns
- Includes guidance for modern React compiler compatibility
- Provides clear prefixes for rule identification
Usage examples
- “How should I handle large lists in my React Native app?”
- The agent will provide guidelines on using FlashList, memoizing items, and stabilizing callback references to manage list rendering.
- “What are the best practices for animations in Expo?”
- The agent will suggest animating only transform and opacity properties and using specific gesture detectors for better interaction handling.
Install
Download the skill as a ZIP:
https://mp-staging.autogineer.com/agent-skills/jetbrains/vercel-react-native-skills/downloadUnzip it into the cross-client skills folder of your project:
mkdir -p .agents/skills && unzip vercel-react-native-skills.zip -d .agents/skills
Documentation by Vercel
React Native Skills
Comprehensive best practices for React Native and Expo applications. Contains rules across multiple categories covering performance, animations, UI patterns, and platform-specific optimizations.
When to Apply
Reference these guidelines when:
Building React Native or Expo apps
Optimizing list and scroll performance
Implementing animations with Reanimated
Working with images and media
Configuring native modules or fonts
Structuring monorepo projects with native dependencies
Rule Categories by Priority
| Priority | Category | Impact | Prefix |
|---|---|---|---|
| 1 | List Performance | CRITICAL | list-performance- |
| 2 | Animation | HIGH | animation- |
| 3 | Navigation | HIGH | navigation- |
| 4 | UI Patterns | HIGH | ui- |
| 5 | State Management | MEDIUM | react-state- |
| 6 | Rendering | MEDIUM | rendering- |
| 7 | Monorepo | MEDIUM | monorepo- |
| 8 | Configuration | LOW | fonts-, imports- |
Quick Reference
1. List Performance (CRITICAL)
list-performance-virtualize- Use FlashList for large listslist-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- Optimize images in listslist-performance-item-expensive- Move expensive work outside itemslist-performance-item-types- Use item types for heterogeneous lists
2. Animation (HIGH)
animation-gpu-properties- Animate only transform and opacityanimation-derived-value- Use useDerivedValue for computed animationsanimation-gesture-detector-press- Use Gesture.Tap instead of Pressable
3. Navigation (HIGH)
navigation-native-navigators- Use native stack and native tabs over JS navigators
4. UI Patterns (HIGH)
ui-expo-image- Use expo-image for all imagesui-image-gallery- Use Galeria for image lightboxesui-pressable- Use Pressable over TouchableOpacityui-safe-area-scroll- Handle safe areas in ScrollViewsui-scrollview-content-inset- Use contentInset for headersui-menus- Use native context menusui-native-modals- Use native modals when possibleui-measure-views- Use onLayout, not measure()ui-styling- Use StyleSheet.create or Nativewind
5. State Management (MEDIUM)
react-state-minimize- Minimize state subscriptionsreact-state-dispatcher- Use dispatcher pattern for callbacksreact-state-fallback- Show fallback on first renderreact-compiler-destructure-functions- Destructure for React Compilerreact-compiler-reanimated-shared-values- Handle shared values with compiler
6. Rendering (MEDIUM)
rendering-text-in-text-component- Wrap text in Text componentsrendering-no-falsy-and- Avoid falsy && for conditional rendering
7. Monorepo (MEDIUM)
monorepo-native-deps-in-app- Keep native dependencies in app packagemonorepo-single-dependency-versions- Use single versions across packages
8. Configuration (LOW)
fonts-config-plugin- Use config plugins for custom fontsimports-design-system-folder- Organize design system importsjs-hoist-intl- Hoist Intl object creation
How to Use
Read individual rule files for detailed explanations and code examples:
rules/list-performance-virtualize.md
rules/animation-gpu-properties.mdEach rule file contains:
Brief explanation of why it matters
Incorrect code example with explanation
Correct code example with explanation
Additional context and references
Full Compiled Document
For the complete guide with all rules expanded: AGENTS.md
Files
- AGENTS.md72.0 KiB
- ATTRIBUTION.mdAdded by AutoGineer861 B
- README.md4.9 KiB
- SKILL.md4.5 KiB
- metadata.json896 B
- rules/_sections.md2.2 KiB
- rules/_template.md631 B
- rules/animation-derived-value.md1.3 KiB
- rules/animation-gesture-detector-press.md2.5 KiB
- rules/animation-gpu-properties.md2.0 KiB
- rules/design-system-compound-components.md1.6 KiB
- rules/fonts-config-plugin.md1.4 KiB
- rules/imports-design-system-folder.md1.4 KiB
- rules/js-hoist-intl.md1.6 KiB
- rules/list-performance-callbacks.md1.0 KiB
- rules/list-performance-function-references.md4.0 KiB
- rules/list-performance-images.md1.4 KiB
- rules/list-performance-inline-objects.md2.3 KiB
- rules/list-performance-item-expensive.md2.4 KiB
- rules/list-performance-item-memo.md2.2 KiB
- rules/list-performance-item-types.md2.7 KiB
- rules/list-performance-virtualize.md1.7 KiB
- rules/monorepo-native-deps-in-app.md1.1 KiB
- rules/monorepo-single-dependency-versions.md1.3 KiB
- rules/navigation-native-navigators.md4.8 KiB
- rules/react-compiler-destructure-functions.md1.2 KiB
- rules/react-compiler-reanimated-shared-values.md1.2 KiB
- rules/react-state-dispatcher.md2.2 KiB
- rules/react-state-fallback.md1.7 KiB
- rules/react-state-minimize.md1.7 KiB
- rules/rendering-no-falsy-and.md1.8 KiB
- rules/rendering-text-in-text-component.md697 B
- rules/scroll-position-no-state.md1.9 KiB
- rules/state-ground-truth.md2.1 KiB
- rules/ui-expo-image.md1.6 KiB
- rules/ui-image-gallery.md2.5 KiB
- rules/ui-measure-views.md2.2 KiB
- rules/ui-menus.md4.5 KiB
- rules/ui-native-modals.md1.8 KiB
- rules/ui-pressable.md1.5 KiB
- rules/ui-safe-area-scroll.md1.5 KiB
- rules/ui-scrollview-content-inset.md1.3 KiB
- rules/ui-styling.md2.2 KiB
README.md
React Native Guidelines
A structured repository for creating and maintaining React Native Best Practices optimized for agents and LLMs.
Structure
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 files
metadata.json- Document metadata (version, organization, abstract)AGENTS.md- Compiled output (generated)
Rules
Core Rendering (CRITICAL)
rendering-text-in-text-component.md- Wrap strings in Text componentsrendering-no-falsy-and.md- Avoid falsy && operator in JSX
List Performance (HIGH)
list-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 lists
Animation (HIGH)
animation-gpu-properties.md- Animate transform/opacity instead of layoutanimation-gesture-detector-press.md- Use GestureDetector for press animationsanimation-derived-value.md- Prefer useDerivedValue over useAnimatedReaction
Scroll Performance (HIGH)
scroll-position-no-state.md- Never track scroll in useState
Navigation (HIGH)
navigation-native-navigators.md- Use native stack and native tabs
React State (MEDIUM)
react-state-dispatcher.md- Use functional setState updatesreact-state-fallback.md- State should represent user intent onlyreact-state-minimize.md- Minimize state variables, derive values
State Architecture (MEDIUM)
state-ground-truth.md- State must represent ground truth
React Compiler (MEDIUM)
react-compiler-destructure-functions.md- Destructure functions earlyreact-compiler-reanimated-shared-values.md- Use .get()/.set() for shared values
User Interface (MEDIUM)
ui-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 (MEDIUM)
design-system-compound-components.md- Use compound components
Monorepo (LOW)
monorepo-native-deps-in-app.md- Install native deps in app directorymonorepo-single-dependency-versions.md- Single dependency versions
Third-Party Dependencies (LOW)
imports-design-system-folder.md- Import from design system folder
JavaScript (LOW)
js-hoist-intl.md- Hoist Intl formatter creation
Fonts (LOW)
fonts-config-plugin.md- Load fonts natively at build time
Creating a New Rule
Copy
rules/_template.mdtorules/area-description.mdChoose the appropriate area prefix:
rendering-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 Fonts
Fill in the frontmatter and content
Ensure you have clear examples with explanations
Rule File Structure
Each 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 exampleReference: 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 improvementsRequirements and compatibility
Works with: Claude Code, Claude apps, OpenAI Codex, GitHub Copilot, Cursor, Gemini CLI, Kiro, OpenCode, Goose, Amp, Roo Code, JetBrains Junie, Factory Droid, Devin (ex-Windsurf), Mistral Vibe, OpenHands, Letta
“Works with” means the tool reads the open Agent Skills format; a skill written for one tool may use features others lack.
Security
No issues found by our static scan· No issues found
A static scan is not a guarantee. Skills are third-party content: review a skill before you let an agent use it.
Attribution and licence
- Created by
- Vercel
- Publisher
- JetBrains (Official)
- Distributed by
- JetBrains
- Source
- JetBrains/skills · react-native-skills · commit 3f53782
- Licence
- MIT License (redistribution allowed)
- ATTRIBUTION.md (written by AutoGineer)
- Synced
AutoGineer is not affiliated with or endorsed by Vercel or JetBrains.
Download ZIP
The ZIP holds the skill’s files, its licence files and an ATTRIBUTION.md. Download vercel-react-native-skills.zip