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

Vercel React Native Skills

JetBrainsOfficialCreated by VercelDistributed by JetBrains

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

  1. Download the skill as a ZIP:

    https://mp-staging.autogineer.com/agent-skills/jetbrains/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

rules/rendering-no-falsy-and.md


title: Never Use && with Potentially Falsy Values impact: CRITICAL impactDescription: prevents production crash tags: rendering, conditional, jsx, crash

Never Use && with Potentially Falsy Values

Never use {value && <Component />} when value could be an empty string or 0. These are falsy but JSX-renderable—React Native will try to render them as text outside a <Text> component, causing a hard crash in production.

Incorrect (crashes if count is 0 or name is ""):

function Profile({ name, count }: { name: string; count: number }) {
  return (
    <View>
      {name && <Text>{name}</Text>}
      {count && <Text>{count} items</Text>}
    </View>
  )
}
// If name="" or count=0, renders the falsy value → crash

Correct (ternary with null):

function Profile({ name, count }: { name: string; count: number }) {
  return (
    <View>
      {name ? <Text>{name}</Text> : null}
      {count ? <Text>{count} items</Text> : null}
    </View>
  )
}

Correct (explicit boolean coercion):

function Profile({ name, count }: { name: string; count: number }) {
  return (
    <View>
      {!!name && <Text>{name}</Text>}
      {!!count && <Text>{count} items</Text>}
    </View>
  )
}

Best (early return):

function Profile({ name, count }: { name: string; count: number }) {
  if (!name) return null

  return (
    <View>
      <Text>{name}</Text>
      {count > 0 ? <Text>{count} items</Text> : null}
    </View>
  )
}

Early returns are clearest. When using conditionals inline, prefer ternary or explicit boolean checks.

Lint rule: Enable react/jsx-no-leaked-render from eslint-plugin-react to catch this automatically.

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