expo

pproenca/dot-skills · updated Apr 8, 2026

$npx skills add https://github.com/pproenca/dot-skills --skill expo
0 commentsdiscussion
summary

Comprehensive performance optimization guide for Expo React Native applications. Contains 54 rules across 9 categories, prioritized by impact to guide automated refactoring and code generation.

skill.md

Community Expo React Native Best Practices

Comprehensive performance optimization guide for Expo React Native applications. Contains 54 rules across 9 categories, prioritized by impact to guide automated refactoring and code generation.

When to Apply

Reference these guidelines when:

  • Writing new Expo React Native components
  • Optimizing app startup and Time to Interactive
  • Implementing lists, images, or animations
  • Reducing bundle size and memory usage
  • Reviewing code for mobile performance issues

Rule Categories by Priority

Priority Category Impact Prefix
1 Launch Time Optimization CRITICAL launch-
2 Bundle Size Optimization CRITICAL bundle-
3 List Virtualization HIGH list-
4 Image Optimization HIGH image-
5 Data Fetching Patterns HIGH data-
6 Navigation Performance MEDIUM-HIGH nav-
7 Re-render Prevention MEDIUM rerender-
8 Animation Performance MEDIUM anim-
9 Memory Management LOW-MEDIUM mem-

Quick Reference

1. Launch Time Optimization (CRITICAL)

  • launch-splash-screen-control - Control splash screen visibility during asset loading
  • launch-preload-critical-assets - Preload fonts and images during splash
  • launch-hermes-engine - Use Hermes engine for faster startup
  • launch-defer-non-critical - Defer non-critical initialization
  • launch-new-architecture - Enable New Architecture for synchronous native communication
  • launch-minimize-root-imports - Minimize imports in root App component

2. Bundle Size Optimization (CRITICAL)

  • bundle-avoid-barrel-files - Avoid barrel file imports
  • bundle-analyze-size - Analyze bundle size before release
  • bundle-remove-unused-dependencies - Remove unused dependencies
  • bundle-split-by-architecture - Generate architecture-specific APKs
  • bundle-enable-proguard - Enable ProGuard for Android release builds
  • bundle-optimize-fonts - Subset custom fonts to used characters
  • bundle-use-lightweight-alternatives - Use lightweight library alternatives

3. List Virtualization (HIGH)

  • list-use-flashlist - Use FlashList instead of FlatList
  • list-provide-estimated-size - Provide accurate estimatedItemSize
  • list-avoid-inline-functions - Avoid inline functions in renderItem
  • list-provide-getitemlayout - Provide getItemLayout for fixed-height items
  • list-avoid-key-prop - Avoid key prop inside FlashList items
  • list-batch-rendering - Configure list batch rendering
  • list-memoize-item-components - Memoize list item components

4. Image Optimization (HIGH)

  • image-use-expo-image - Use expo-image instead of React Native Image
  • image-resize-to-display-size - Resize images to display size
  • image-use-webp-format - Use WebP format for smaller file sizes
  • image-use-placeholders - Use BlurHash or ThumbHash placeholders
  • image-preload-critical - Preload critical above-the-fold images
  • image-lazy-load-offscreen - Lazy load off-screen images

5. Data Fetching Patterns (HIGH)

  • data-parallel-fetching - Fetch independent data in parallel
  • data-request-deduplication - Deduplicate concurrent requests
  • data-abort-requests - Abort requests on component unmount
  • data-pagination - Implement efficient pagination strategies
  • data-cache-strategies - Use appropriate caching strategies
  • data-optimistic-updates - Apply optimistic updates for responsiveness

6. Navigation Performance (MEDIUM-HIGH)

  • nav-use-native-stack - Use native stack navigator
  • nav-unmount-inactive-screens - Unmount inactive tab screens
  • nav-prefetch-screen-data - Prefetch data before navigation
  • nav-optimize-screen-options - Optimize screen options
  • nav-avoid-deep-nesting - Avoid deeply nested navigators

7. Re-render Prevention (MEDIUM)

  • rerender-use-memo-components - Memoize expensive components with React.memo
  • rerender-use-callback - Stabilize callbacks with useCallback
  • rerender-use-memo-values - Memoize expensive computations with useMemo
  • rerender-avoid-context-overuse - Avoid overusing Context for frequent updates
  • rerender-split-component-state - Split components to isolate updating state
  • rerender-use-react-compiler - Enable React Compiler for automatic memoization
  • rerender-avoid-anonymous-components - Avoid anonymous components in JSX

8. Animation Performance (MEDIUM)

  • anim-use-reanimated - Use Reanimated for UI thread animations
  • anim-use-native-driver - Enable useNativeDriver for Animated API
  • anim-avoid-layout-animation - Prefer transform over layout animations
  • anim-gesture-handler-integration - Use Gesture Handler with Reanimated
  • anim-interaction-manager - Defer heavy work during animations

9. Memory Management (LOW-MEDIUM)

  • mem-cleanup-useeffect - Clean up subscriptions and timers
  • mem-abort-fetch-requests - Abort fetch requests on unmount
  • mem-avoid-closure-leaks - Avoid closure-based memory leaks
  • mem-release-heavy-resources - Release heavy resources when not needed
  • mem-profile-with-tools - Profile memory usage with development tools

How to Use

Read individual reference files for detailed explanations and code examples:

Full Compiled Document

For the complete guide with all rules expanded: AGENTS.md

Discussion

Product Hunt–style comments (not star reviews)
  • No comments yet — start the thread.
general reviews

Ratings

4.772 reviews
  • Anika Khan· Dec 24, 2024

    expo fits our agent workflows well — practical, well scoped, and easy to wire into existing repos.

  • Sakura Zhang· Dec 20, 2024

    Useful defaults in expo — fewer surprises than typical one-off scripts, and it plays nicely with `npx skills` flows.

  • Mei Haddad· Dec 12, 2024

    Registry listing for expo matched our evaluation — installs cleanly and behaves as described in the markdown.

  • Mateo Gupta· Dec 4, 2024

    expo reduced setup friction for our internal harness; good balance of opinion and flexibility.

  • Evelyn Thomas· Nov 23, 2024

    We added expo from the explainx registry; install was straightforward and the SKILL.md answered most questions upfront.

  • Mei Khan· Nov 15, 2024

    Registry listing for expo matched our evaluation — installs cleanly and behaves as described in the markdown.

  • Harper Shah· Nov 11, 2024

    expo is among the better-maintained entries we tried; worth keeping pinned for repeat workflows.

  • Harper Srinivasan· Nov 3, 2024

    expo fits our agent workflows well — practical, well scoped, and easy to wire into existing repos.

  • Kiara Sethi· Oct 22, 2024

    We added expo from the explainx registry; install was straightforward and the SKILL.md answered most questions upfront.

  • Kiara Reddy· Oct 14, 2024

    expo fits our agent workflows well — practical, well scoped, and easy to wire into existing repos.

showing 1-10 of 72

1 / 8