vercel-react-native-skills

Provides React Native and Expo performance optimization rules for AI-assisted code generation and refactoring.

2|Updated May 30, 2026
One-click install
npx skills add https://github.com/virahitvin8/crafty-gis --skill vercel-react-native-skills-virahitvin8
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: vercel-react-native-skills
Source: https://github.com/virahitvin8/crafty-gis/tree/main/GIT_STAR/assignment-generator/antigravity-skills-main/antigravity-skills-main/skills/react-native-skills
Command: npx skills add https://github.com/virahitvin8/crafty-gis --skill vercel-react-native-skills-virahitvin8

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 coding mistakes. This Skill gives AI agents and developers a structured, prioritized rulebook of 35+ best practices so generated or refactored code follows proven performance patterns from the start. ## Core Features & Use Cases - Prioritized Rule Library: 35+ rules across 13 categories (list performance, animation, navigation, state, UI, monorepo, fonts) ranked by impact from CRITICAL to LOW, each with incorrect vs. correct code examples. - List & Scroll Optimization: Guidance on virtualized lists (LegendList, FlashList), memoization with primitive props, stable object references, and avoiding scroll-position state tracking. - Native-First Patterns: Rules for Reanimated GPU-accelerated animations, GestureDetector press states, native stack/tab navigators, expo-image, and build-time font loading via config plugins. - Use Case: When an AI agent generates a new feed screen, it applies the list-performance rules to use a virtualized list with stable references and lightweight memoized items instead of a ScrollView with inline objects. ## Quick Start Ask the AI to review your React Native screen component against these best practice 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 list items, keep stable object references in your data array, and hoist callbacks to the list root. Avoid inline objects in renderItem since they break memoization.

What is the best way to animate in React Native with Reanimated?

Animate only transform and opacity properties, which run on the GPU without triggering layout recalculation. Avoid animating width, height, margin, or padding. Use useDerivedValue for computed values and GestureDetector for press-state animations on the UI thread.

Should I use Pressable or TouchableOpacity in React Native?

Use Pressable instead of TouchableOpacity or other Touchable components. For animated press feedback, combine GestureDetector with Gesture.Tap() and shared values so animations run as worklets on the UI thread without a JS round-trip.

Does React Compiler work with Reanimated shared values?

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

Why does my React Native app crash when rendering conditional text?

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 ternary expressions with null, explicit boolean coercion, or early returns instead.

How do I handle native dependencies in a React Native monorepo?

Install packages containing native code directly in the app directory's package.json, since autolinking only scans the app's node_modules. Also enforce single exact dependency versions across all packages using pnpm overrides or a tool like syncpack.