Agent skill
react-best-practices
React performance optimization guidelines from Mastra Engineering. This skill should be used when writing, reviewing, or refactoring React code to ensure optimal performance patterns. Triggers on tasks involving React components, data fetching, bundle optimization, or performance improvements.
Install this agent skill to your Project
npx add-skill https://github.com/mastra-ai/mastra/tree/main/.claude/skills/react-best-practices
SKILL.md
React Best Practices
Overview
Comprehensive performance optimization guide for React applications, containing 12 rules across 6 categories. Rules are prioritized by impact to guide automated refactoring and code generation.
When to Apply
Reference these guidelines when:
- Writing new React components
- Implementing data fetching
- Reviewing code for performance issues
- Refactoring existing React code
- Optimizing bundle size or load times
Priority-Ordered Guidelines
Rules are prioritized by impact:
| Priority | Category | Impact |
|---|---|---|
| 1 | Eliminating Waterfalls | CRITICAL |
| 2 | Bundle Size Optimization | CRITICAL |
| 3 | Client-Side Data Fetching | MEDIUM-HIGH |
| 4 | Re-render Optimization | MEDIUM |
| 5 | Rendering Performance | MEDIUM |
| 6 | JavaScript Performance | LOW-MEDIUM |
Quick Reference
Critical Patterns (Apply First)
Eliminate Waterfalls:
- Use
Promise.all()for independent async operations (async-parallel)
Reduce Bundle Size:
- Avoid barrel file imports, import directly from source (
bundle-barrel-imports) - Defer non-critical third-party libraries (
bundle-defer-third-party)
Medium-Impact Patterns
Client-Side Data Fetching:
- Use Tanstack Query for automatic request deduplication (
client-request-dedupe)
Re-render Optimization:
- Use lazy state initialization for expensive values (
rerender-lazy-state-init) - Apply
startTransitionfor non-urgent updates (rerender-transitions) - Minimize
useEffectfunction calls (rerender-useeffect-function-calls)
Rendering Patterns
- Animate SVG wrappers, not SVG elements directly (
rendering-animate-svg-wrapper) - Use
content-visibility: autofor long lists (rendering-content-visibility)
JavaScript Patterns
- Use Set/Map for repeated lookups (
js-set-map-lookups) - Use
toSorted()instead ofsort()for immutability (js-tosorted-immutable) - Early length check for array comparisons (
js-length-check-first)
References
Full documentation with code examples is available in:
references/react-best-practices-reference.md- Complete guide with all patternsreferences/rules/- Individual rule files organized by category
To look up a specific pattern, grep the rules directory:
grep -l "Promise.all" references/rules/
grep -l "barrel" references/rules/
grep -l "Tanstack" references/rules/
Rule Categories in references/rules/
async-*- Waterfall elimination (1 rule)bundle-*- Bundle size optimization (2 rules)client-*- Client-side data fetching (1 rule)rerender-*- Re-render optimization (3 rules)rendering-*- DOM rendering performance (2 rules)js-*- JavaScript micro-optimizations (3 rules)
Recommended Agent Skills
Expand your agent's capabilities with these related and highly-rated skills.
performance-review
Performance-focused code review for identifying bottlenecks and optimization opportunities
security-review
Security-focused code review checklist for identifying vulnerabilities
code-standards
Code quality standards and style guide for reviewing pull requests
smoke-test
Create a Mastra project using create-mastra and smoke test the studio in Chrome
ralph-plan
Interactive planning assistant that helps create focused, well-structured ralph-loop commands through collaborative conversation
e2e-tests-studio
REQUIRED when modifying any file in packages/playground-ui or packages/playground. Triggers on: React component creation/modification/refactoring, UI changes, new playground features, bug fixes affecting studio UI. Generates Playwright E2E tests that validate PRODUCT BEHAVIOR, not just UI states.
Didn't find tool you were looking for?