vercel-react-native-skills
vercel-labs/agent-skills
React Native and Expo best practices for performant mobile apps, animations, and native integrations.
What is vercel-react-native-skills?
Comprehensive guidelines for building optimized React Native and Expo applications. Use when developing React Native components, optimizing list performance, implementing animations, working with native modules, or structuring monorepo projects with native dependencies.
- Provides critical list performance rules using FlashList, memoization, and callback stabilization
- Guides GPU-optimized animations with Reanimated using transform and opacity properties
- Recommends native navigation stacks and tabs over JavaScript navigators
- Covers UI patterns including Pressable, expo-image, safe areas, and native modals
- Addresses state management minimization and React Compiler compatibility
- Offers monorepo structure guidance for native dependencies and version consistency
How to install vercel-react-native-skills
npx skills add https://github.com/vercel-labs/agent-skills --skill vercel-react-native-skillsHow to use vercel-react-native-skills
- 1.Review the rule categories table to identify relevant guidelines for your task
- 2.Read the specific rule files in rules/ directory matching your use case (e.g., list-performance-virtualize.md for list optimization)
- 3.Study the incorrect and correct code examples in each rule file
- 4.Apply the recommended patterns to your React Native or Expo codebase
- 5.Reference AGENTS.md for the complete expanded guide with all rules
Use cases
- Optimizing FlatList or ScrollView performance with large datasets using FlashList
- Implementing smooth animations with Reanimated while maintaining 60fps performance
- Configuring native modules and custom fonts in Expo projects
- Structuring monorepo projects that share code across React Native apps
- Building image galleries and handling safe area layouts in mobile UIs
- React Native developers building production apps
- Mobile engineers optimizing list and animation performance
- Teams managing monorepo projects with native dependencies
- Expo developers implementing platform-specific features
- Developers using React Compiler with Reanimated shared values
vercel-react-native-skills FAQ
Use FlashList for large lists (50+ items) where performance is critical. FlashList provides better virtualization and recycling than FlatList, significantly improving scroll performance and memory usage.
Only animate transform and opacity properties for GPU-accelerated performance. Avoid animating layout properties like width, height, or position as they trigger expensive layout recalculations.
Prefer native stack and native tab navigators over JavaScript-based navigators. Native navigators provide better performance, smoother transitions, and platform-appropriate behavior.
Keep native dependencies in the app package only, not in shared library packages. Use single versions of dependencies across all packages to avoid conflicts and build issues.
Use expo-image for all images instead of Image component. It provides better caching, progressive loading, and memory management.
Full instructions (SKILL.md)
Source of truth, from vercel-labs/agent-skills.
name: vercel-react-native-skills description: React Native and Expo best practices for building performant mobile apps. Use when building React Native components, optimizing list performance, implementing animations, or working with native modules. Triggers on tasks involving React Native, Expo, mobile performance, or native platform APIs. license: MIT metadata: author: vercel version: '1.0.0'
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.md
Each 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
Related skills
More from vercel-labs/agent-skills and the wider catalog.
vercel-react-best-practices
70 React/Next.js performance rules from Vercel Engineering, prioritized by impact for writing, reviewing, and refactoring code.
web-design-guidelines
Review UI code against Web Interface Guidelines for accessibility, UX, and design best practices
vercel-composition-patterns
React composition patterns to scale components without boolean prop proliferation.
deploy-to-vercel
Deploy applications to Vercel with git integration or direct CLI deployment.
vercel-react-view-transitions
Implement smooth, native-feeling animations using React's View Transition API without third-party libraries.
vercel-cli-with-tokens
Deploy and manage Vercel projects using token-based authentication without interactive login.