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
React and Next.js performance optimization guidelines from Vercel Engineering. This skill should be used when writing, reviewing, or refactoring React/Next.js code to ensure optimal performance patterns. Triggers on tasks involving React components, Next.js pages, data fetching, bundle optimization, or performance improvements.
web-design-guidelines
Review UI code for Web Interface Guidelines compliance. Use when asked to "review my UI", "check accessibility", "audit design", "review UX", or "check my site against best practices".
vercel-composition-patterns
Agent skill from vercel-labs/agent-skills.
deploy-to-vercel
Deploy applications and websites to Vercel. Use when the user requests deployment actions like "deploy my app", "deploy and give me the link", "push this live", or "create a preview deployment".
vercel-react-view-transitions
Guide for implementing smooth, native-feeling animations using React's View Transition API (`<ViewTransition>` component, `addTransitionType`, and CSS view transition pseudo-elements). Use this skill whenever the user wants to add page transitions, animate route changes, create shared element animations, animate enter/exit of components, animate list reorder, implement directional (forward/back) navigation animations, or integrate view transitions in Next.js. Also use when the user mentions view transitions, `startViewTransition`, `ViewTransition`, transition types, or asks about animating between UI states in React without third-party animation libraries.
vercel-cli-with-tokens
Deploy and manage projects on Vercel using token-based authentication. Use when working with Vercel CLI using access tokens rather than interactive login — e.g. "deploy to vercel", "set up vercel", "add environment variables to vercel".