Expo
Skill ulpi-io/plugin-marketplace/plugins/pproenca/skills/expo
Expo React Native performance optimization guidelines. This skill should be used when writing, reviewing, or refactoring Expo React Native code to ensure optimal performance patterns. Triggers on tasks involving React Native components, navigation, lists, images, animations, bundle optimization, or mobile performance improvements.From its SKILL.md
npx -y skills add ulpi-io/plugin-marketplace --skill expoAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
2 things to look at
- no licenseNo license file was found in the repository. Code published without one is not open source by default, so using it at work is a question for whoever answers licensing questions where you are.
- 1 stars1 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
SKILL.md
5.9 KB, ~1.3k tokens by cl100k_base, as published. Nobody here has run it
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 loadinglaunch-preload-critical-assets- Preload fonts and images during splashlaunch-hermes-engine- Use Hermes engine for faster startuplaunch-defer-non-critical- Defer non-critical initializationlaunch-new-architecture- Enable New Architecture for synchronous native communicationlaunch-minimize-root-imports- Minimize imports in root App component
2. Bundle Size Optimization (CRITICAL)
bundle-avoid-barrel-files- Avoid barrel file importsbundle-analyze-size- Analyze bundle size before releasebundle-remove-unused-dependencies- Remove unused dependenciesbundle-split-by-architecture- Generate architecture-specific APKsbundle-enable-proguard- Enable ProGuard for Android release buildsbundle-optimize-fonts- Subset custom fonts to used charactersbundle-use-lightweight-alternatives- Use lightweight library alternatives
3. List Virtualization (HIGH)
list-use-flashlist- Use FlashList instead of FlatListlist-provide-estimated-size- Provide accurate estimatedItemSizelist-avoid-inline-functions- Avoid inline functions in renderItemlist-provide-getitemlayout- Provide getItemLayout for fixed-height itemslist-avoid-key-prop- Avoid key prop inside FlashList itemslist-batch-rendering- Configure list batch renderinglist-memoize-item-components- Memoize list item components
4. Image Optimization (HIGH)
image-use-expo-image- Use expo-image instead of React Native Imageimage-resize-to-display-size- Resize images to display sizeimage-use-webp-format- Use WebP format for smaller file sizesimage-use-placeholders- Use BlurHash or ThumbHash placeholdersimage-preload-critical- Preload critical above-the-fold imagesimage-lazy-load-offscreen- Lazy load off-screen images
5. Data Fetching Patterns (HIGH)
data-parallel-fetching- Fetch independent data in paralleldata-request-deduplication- Deduplicate concurrent requestsdata-abort-requests- Abort requests on component unmountdata-pagination- Implement efficient pagination strategiesdata-cache-strategies- Use appropriate caching strategiesdata-optimistic-updates- Apply optimistic updates for responsiveness
6. Navigation Performance (MEDIUM-HIGH)
nav-use-native-stack- Use native stack navigatornav-unmount-inactive-screens- Unmount inactive tab screensnav-prefetch-screen-data- Prefetch data before navigationnav-optimize-screen-options- Optimize screen optionsnav-avoid-deep-nesting- Avoid deeply nested navigators
7. Re-render Prevention (MEDIUM)
rerender-use-memo-components- Memoize expensive components with React.memorerender-use-callback- Stabilize callbacks with useCallbackrerender-use-memo-values- Memoize expensive computations with useMemorerender-avoid-context-overuse- Avoid overusing Context for frequent updatesrerender-split-component-state- Split components to isolate updating statererender-use-react-compiler- Enable React Compiler for automatic memoizationrerender-avoid-anonymous-components- Avoid anonymous components in JSX
8. Animation Performance (MEDIUM)
anim-use-reanimated- Use Reanimated for UI thread animationsanim-use-native-driver- Enable useNativeDriver for Animated APIanim-avoid-layout-animation- Prefer transform over layout animationsanim-gesture-handler-integration- Use Gesture Handler with Reanimatedanim-interaction-manager- Defer heavy work during animations
9. Memory Management (LOW-MEDIUM)
mem-cleanup-useeffect- Clean up subscriptions and timersmem-abort-fetch-requests- Abort fetch requests on unmountmem-avoid-closure-leaks- Avoid closure-based memory leaksmem-release-heavy-resources- Release heavy resources when not neededmem-profile-with-tools- Profile memory usage with development tools
How to Use
Read individual reference files for detailed explanations and code examples:
- Section definitions - Category structure and impact levels
- Rule template - Template for adding new rules
- Example rules: launch-splash-screen-control, list-use-flashlist
Full Compiled Document
For the complete guide with all rules expanded: AGENTS.md
What ships with it: 59 files
147.0 KB alongside SKILL.md
assets/
references/
- anim-avoid-layout-animation.md2.5 KB
- anim-gesture-handler-integration.md2.7 KB
- anim-interaction-manager.md2.8 KB
- anim-use-native-driver.md2.1 KB
- anim-use-reanimated.md2.4 KB
- bundle-analyze-size.md1.4 KB
- bundle-avoid-barrel-files.md1.5 KB
- bundle-enable-proguard.md1.6 KB
- bundle-optimize-fonts.md1.7 KB
- bundle-remove-unused-dependencies.md1.5 KB
- bundle-split-by-architecture.md1.5 KB
- bundle-use-lightweight-alternatives.md2.2 KB
- data-abort-requests.md3.4 KB
- data-cache-strategies.md3.1 KB
- data-optimistic-updates.md3.7 KB
- data-pagination.md3.4 KB
- data-parallel-fetching.md3.2 KB
- data-request-deduplication.md3.0 KB
- image-lazy-load-offscreen.md2.5 KB
- image-preload-critical.md2.4 KB
- image-resize-to-display-size.md2.0 KB
- image-use-expo-image.md1.9 KB
- image-use-placeholders.md2.3 KB
- image-use-webp-format.md1.9 KB
- launch-defer-non-critical.md1.9 KB
- launch-hermes-engine.md1.2 KB
- launch-minimize-root-imports.md2.6 KB
- launch-new-architecture.md1.6 KB
- launch-preload-critical-assets.md1.9 KB
- launch-splash-screen-control.md1.6 KB
- list-avoid-inline-functions.md2.0 KB
- list-avoid-key-prop.md2.1 KB
- list-batch-rendering.md2.2 KB
- list-memoize-item-components.md2.6 KB
- list-provide-estimated-size.md2.0 KB
- list-provide-getitemlayout.md2.2 KB
- AGENTS.md10.4 KB
- metadata.json1.3 KB
- README.md4.7 KB
19 more files not listed here. See all 59 in the repository.