Generated banner for Vercel React Native Skills
Generated logo for Vercel React Native Skills

Vercel React Native Skills

VercelOfficialCreated by vercel

  • Skill
  • Guidelines
  • Software development
  • MIT
  • No issues found

From the author

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.
— the description by vercel

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 wide range of topics including list performance, animation techniques, navigation, UI patterns, state management, and monorepo configuration. The rules are organized by priority to help developers maintain consistent and efficient codebases when building mobile applications.

What it does

  • Provides prioritized rules for React Native and Expo development
  • Offers guidance on optimizing list and scroll performance
  • Defines best practices for implementing animations and gestures
  • Outlines standards for UI patterns and native component usage
  • Suggests strategies for state management and rendering efficiency
  • Includes configuration advice for monorepo structures and fonts

When to use it

  • When building or maintaining React Native and Expo applications
  • During the optimization phase of mobile app development
  • When implementing complex animations or list views
  • When structuring projects with native dependencies
  • When establishing coding standards for a mobile development team

Advantages

  • Centralizes best practices for React Native and Expo
  • Prioritizes critical performance areas like list rendering
  • Provides clear prefixes for categorizing and identifying rules
  • Offers actionable guidance for common mobile development challenges

Usage examples

“How should I optimize a long list in my React Native app?”
The agent will suggest using FlashList, memoizing list items, and stabilizing callback references based on the list performance guidelines.
“What is the recommended way to handle animations in React Native?”
The agent will provide rules for animating only transform and opacity properties and using specific gesture detectors.

Install

  1. Download the skill as a ZIP:

    https://autogineer.com/agent-skills/vercel-labs/vercel-react-native-skills/download
  2. Unzip 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

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

Files

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 rules

    • area-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 components

  • rendering-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 references

  • list-performance-callbacks.md - Hoist callbacks to list root

  • list-performance-inline-objects.md - Avoid inline objects in renderItem

  • list-performance-item-memo.md - Pass primitives for memoization

  • list-performance-item-expensive.md - Keep list items lightweight

  • list-performance-images.md - Use compressed images in lists

  • list-performance-item-types.md - Use item types for heterogeneous lists

Animation (HIGH)
  • animation-gpu-properties.md - Animate transform/opacity instead of layout

  • animation-gesture-detector-press.md - Use GestureDetector for press animations

  • animation-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 updates

  • react-state-fallback.md - State should represent user intent only

  • react-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 early

  • react-compiler-reanimated-shared-values.md - Use .get()/.set() for shared values

User Interface (MEDIUM)
  • ui-expo-image.md - Use expo-image for optimized images

  • ui-image-gallery.md - Use Galeria for lightbox/galleries

  • ui-menus.md - Native dropdown and context menus with Zeego

  • ui-native-modals.md - Use native Modal with formSheet

  • ui-pressable.md - Use Pressable instead of TouchableOpacity

  • ui-measure-views.md - Measuring view dimensions

  • ui-safe-area-scroll.md - Use contentInsetAdjustmentBehavior

  • ui-scrollview-content-inset.md - Use contentInset for dynamic spacing

  • ui-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 directory

  • monorepo-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

  1. Copy rules/_template.md to rules/area-description.md

  2. Choose the appropriate area prefix:

    • rendering- for Core Rendering

    • list-performance- for List Performance

    • animation- for Animation

    • scroll- for Scroll Performance

    • navigation- for Navigation

    • react-state- for React State

    • state- for State Architecture

    • react-compiler- for React Compiler

    • ui- for User Interface

    • design-system- for Design System

    • monorepo- for Monorepo

    • imports- for Third-Party Dependencies

    • js- for JavaScript

    • fonts- for Fonts

  3. Fill in the frontmatter and content

  4. 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 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

Requirements 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
Vercel (Official)
Source
vercel-labs/agent-skills · skills/react-native-skills · commit 1a2c79d
Licence
MIT License (redistribution allowed)
  • ATTRIBUTION.md (written by AutoGineer)
Synced

AutoGineer is not affiliated with or endorsed by vercel or Vercel.

Download ZIP

The ZIP holds the skill’s files, its licence files and an ATTRIBUTION.md. Download vercel-react-native-skills.zip