vercel-react-native-skills

Applies React Native and Expo performance best practices across rendering, lists, animations, and navigation.

Updated Apr 7, 2026
One-click install
npx skills add https://github.com/NT-boop-star/BRMV-tract --skill vercel-react-native-skills-nt-boop-star
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: vercel-react-native-skills
Source: https://github.com/NT-boop-star/BRMV-tract/tree/main/antigravity/skills/react-native-skills
Command: npx skills add https://github.com/NT-boop-star/BRMV-tract --skill vercel-react-native-skills-nt-boop-star

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 non-native UI behavior because developers miss platform-specific performance rules. This Skill provides 35+ prioritized, example-driven rules so AI agents and developers generate and refactor React Native code correctly the first time. ## Core Features & Use Cases - Prioritized Rule Set: 35+ rules across 13 categories ranked by impact from CRITICAL (avoiding falsy && crashes, wrapping strings in Text) to LOW (font loading, Intl hoisting), each with incorrect vs. correct code examples. - List and Animation Optimization: Concrete patterns for LegendList/FlashList virtualization, stable object references, memoization with primitive props, GPU-accelerated Reanimated animations, and GestureDetector press states. - Platform-Native Guidance: Rules for native stack and tab navigators, native modals, context menus, expo-image, safe area handling, and monorepo dependency management. - Use Case: When asked to build a performant product feed screen, the agent applies virtualization, compressed images, lightweight list items, and stable references automatically instead of producing a janky ScrollView with mapped children. ## Quick Start Ask the agent to review or build a React Native screen following these best practices, for example: build an optimized product list screen using a virtualized list with memoized items.

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 virtualizer like LegendList or FlashList instead of ScrollView, pass stable object references as data, pass primitives to memoized list items, and hoist callbacks to the list root. Avoid inline objects in renderItem since new references break memoization.

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 a ternary with null, explicit boolean coercion, or an early return 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 additionally supports getItemType for heterogeneous lists with separate recycling pools and per-type size estimation.

Does React Compiler replace memo and useCallback in React Native?

Yes, React Compiler handles memoization automatically, making manual memo() and useCallback() less critical. However, stable object references still matter for virtualized lists, and Reanimated shared values require .get() and .set() instead of .value for compiler compatibility.

How do I animate components in React Native without jank?

Animate only transform and opacity properties, which run on the GPU, instead of width, height, or margin which trigger layout recalculation every frame. Use Reanimated shared values and GestureDetector so animations run on the UI thread.

Why is autolinking not finding my native module in a monorepo?

Autolinking only scans the native app's node_modules, so native dependencies must be listed in the app package's package.json even if a shared package also uses them. Keep a single exact version across all packages to avoid duplicate bundles.