PluginBench
Skill
Official
Review
Audit score 70

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-skills
Claude Code
Cursor
Windsurf
Cline

How to use vercel-react-native-skills

  1. 1.Review the rule categories table to identify relevant guidelines for your task
  2. 2.Read the specific rule files in rules/ directory matching your use case (e.g., list-performance-virtualize.md for list optimization)
  3. 3.Study the incorrect and correct code examples in each rule file
  4. 4.Apply the recommended patterns to your React Native or Expo codebase
  5. 5.Reference AGENTS.md for the complete expanded guide with all rules

Use cases

Good for
  • 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
Who it's for
  • 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

When should I use FlashList instead of FlatList?

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.

What properties should I animate in React Native?

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.

Should I use native or JavaScript navigators?

Prefer native stack and native tab navigators over JavaScript-based navigators. Native navigators provide better performance, smoother transitions, and platform-appropriate behavior.

How do I handle native dependencies in a monorepo?

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.

What image library should I use in React Native?

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

PriorityCategoryImpactPrefix
1List PerformanceCRITICALlist-performance-
2AnimationHIGHanimation-
3NavigationHIGHnavigation-
4UI PatternsHIGHui-
5State ManagementMEDIUMreact-state-
6RenderingMEDIUMrendering-
7MonorepoMEDIUMmonorepo-
8ConfigurationLOWfonts-, imports-

Quick Reference

1. List Performance (CRITICAL)

  • list-performance-virtualize - Use FlashList for large lists
  • list-performance-item-memo - Memoize list item components
  • list-performance-callbacks - Stabilize callback references
  • list-performance-inline-objects - Avoid inline style objects
  • list-performance-function-references - Extract functions outside render
  • list-performance-images - Optimize images in lists
  • list-performance-item-expensive - Move expensive work outside items
  • list-performance-item-types - Use item types for heterogeneous lists

2. Animation (HIGH)

  • animation-gpu-properties - Animate only transform and opacity
  • animation-derived-value - Use useDerivedValue for computed animations
  • animation-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 images
  • ui-image-gallery - Use Galeria for image lightboxes
  • ui-pressable - Use Pressable over TouchableOpacity
  • ui-safe-area-scroll - Handle safe areas in ScrollViews
  • ui-scrollview-content-inset - Use contentInset for headers
  • ui-menus - Use native context menus
  • ui-native-modals - Use native modals when possible
  • ui-measure-views - Use onLayout, not measure()
  • ui-styling - Use StyleSheet.create or Nativewind

5. State Management (MEDIUM)

  • react-state-minimize - Minimize state subscriptions
  • react-state-dispatcher - Use dispatcher pattern for callbacks
  • react-state-fallback - Show fallback on first render
  • react-compiler-destructure-functions - Destructure for React Compiler
  • react-compiler-reanimated-shared-values - Handle shared values with compiler

6. Rendering (MEDIUM)

  • rendering-text-in-text-component - Wrap text in Text components
  • rendering-no-falsy-and - Avoid falsy && for conditional rendering

7. Monorepo (MEDIUM)

  • monorepo-native-deps-in-app - Keep native dependencies in app package
  • monorepo-single-dependency-versions - Use single versions across packages

8. Configuration (LOW)

  • fonts-config-plugin - Use config plugins for custom fonts
  • imports-design-system-folder - Organize design system imports
  • js-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