vercel-react-native-skills

Applies React Native and Expo performance rules for lists, animations, and rendering.

Updated Jul 17, 2026
One-click install
npx skills add https://github.com/usmangurowa/socialmocks --skill vercel-react-native-skills-usmangurowa
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: vercel-react-native-skills
Source: https://github.com/usmangurowa/socialmocks/tree/main/.agents/skills/vercel-react-native-skills
Command: npx skills add https://github.com/usmangurowa/socialmocks --skill vercel-react-native-skills-usmangurowa

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, production crashes from falsy JSX rendering, and slow animations caused by layout-property animation. This Skill provides a prioritized rule set that guides AI agents and developers to write performant, crash-free React Native and Expo code from the start. ## Core Features & Use Cases - Prioritized Rule Catalog: 35+ rules across 13 categories ranked by impact, from CRITICAL rendering rules (wrap strings in Text, avoid falsy && conditionals) to LOW-priority font and import optimizations. - List & Animation Optimization: Concrete incorrect-vs-correct code patterns for virtualized lists (LegendList, FlashList), Reanimated shared values, GestureDetector press states, and scroll tracking without useState. - Use Case: When building an Expo mobile screen with a searchable, filterable list of items, apply the stable-reference, primitive-props, and item-type rules so typing in the search box re-renders only visible rows instead of the entire list. ## Quick Start Review my React Native list screen component and refactor it using the list performance and rendering rules from this skill.

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 or FlashList performance in React Native?

Use a virtualizer like LegendList or FlashList instead of ScrollView, pass primitive props to memoized list items, keep item components free of queries and heavy hooks, and avoid creating inline objects in renderItem. Stable object references let virtualization skip unchanged rows.

Why does my React Native app 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 Reanimated useDerivedValue or useAnimatedReaction?

Use useDerivedValue when computing one shared value from another, since it tracks dependencies declaratively and returns a usable value. Reserve useAnimatedReaction for side effects like haptics or runOnJS calls that produce no value.

Does React Compiler change how I write Reanimated shared values?

Yes. With React Compiler enabled, use .get() and .set() methods instead of reading or writing .value directly on shared values, because the compiler cannot track property access and would otherwise opt out of compilation.

How do I handle native dependencies in an Expo monorepo?

Install packages containing native code directly in the app directory's package.json, because autolinking only scans the app's node_modules. Also pin single exact versions across all packages using pnpm overrides or syncpack to avoid duplicate bundles.

When should I not track scroll position in useState?

Never store scroll position in useState, since scroll events fire rapidly and each state update triggers a re-render, causing dropped frames. Use a Reanimated shared value for scroll-driven animations or a ref for non-reactive tracking.