vercel-react-native-skills

Applies React Native and Expo performance rules to mobile app code.

1|Updated May 6, 2026
One-click install
npx skills add https://github.com/surfingalien/FinSurfing --skill vercel-react-native-skills-surfingalien
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: vercel-react-native-skills
Source: https://github.com/surfingalien/FinSurfing/tree/main/Downloads/FinSurfing/.agents/skills/vercel-react-native-skills
Command: npx skills add https://github.com/surfingalien/FinSurfing --skill vercel-react-native-skills-surfingalien

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill includes references (resource) components.

What problem does it solve? React Native apps frequently suffer from scroll jank, unnecessary re-renders, runtime crashes, and slow animations caused by common anti-patterns. This Skill provides a structured rulebook of 35+ best practices so AI agents and developers can generate, refactor, and review React Native code that performs correctly on mobile devices. ## Core Features & Use Cases - Prioritized Rule Set: 35+ rules across 13 categories ranked by impact, from CRITICAL rendering rules (avoiding falsy && crashes, wrapping strings in Text) to HIGH-impact list virtualization, animation, and navigation guidance. - Incorrect vs. Correct Examples: Every rule includes side-by-side code comparisons with explanations, making it directly usable for automated refactoring and code review. - Modern Ecosystem Coverage: Covers Reanimated, Gesture Handler, LegendList/FlashList, expo-image, expo-router native navigators, Zustand selectors, and React Compiler compatibility patterns. - Use Case: When building a feed screen with FlashList, consult the list-performance rules to keep item components lightweight, pass primitive props for memoization, and use getItemType for heterogeneous layouts. ## Quick Start Ask the agent to review your React Native list or animation code against these performance rules and refactor any violations it finds.

Frequently Asked Questions about vercel-react-native-skills

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I optimize FlatList performance in React Native?

Use a virtualized list like LegendList or FlashList instead of ScrollView, pass primitive props to memoized item components, hoist callbacks to the list root, and avoid creating inline objects in renderItem. Keep list items lightweight with no queries or expensive computations.

What causes React Native apps to crash with conditional rendering?

Using {value && <Component />} crashes when value is an empty string or 0, because React Native tries to render the falsy value as text outside a Text component. Use ternaries, explicit boolean coercion, or early returns instead.

Should I use FlashList or LegendList for large lists?

Both are virtualized lists that render only visible items, reducing memory and mount time compared to ScrollView. LegendList supports getItemType for heterogeneous lists with separate recycling pools, while FlashList is a widely adopted alternative from Shopify.

Does React Compiler work with Reanimated shared values?

Yes, but you must use .get() and .set() methods instead of reading or writing .value directly. The React Compiler cannot track property access on shared values, so explicit method calls ensure correct behavior.

Why should I animate transform instead of width and height?

Animating width, height, margin, or padding triggers layout recalculation on every frame, causing jank. Transform properties like scale and translate, plus opacity, run on the GPU without triggering layout, producing smooth animations.

When should I use native navigators instead of JS navigators?

Always prefer native navigators such as @react-navigation/native-stack or expo-router's default stack over @react-navigation/stack. Native navigators use platform APIs for UI-thread transitions, large titles, and proper safe area handling.