Claude-code-minoan react-best-practices
Apply React and Next.js performance optimization guidelines from Vercel Engineering — 40+ rules covering components, data fetching, bundle optimization, and rendering. Triggers on React components, Next.js pages, bundle optimization, performance improvements, refactoring React code.
install
source · Clone the upstream repo
git clone https://github.com/tdimino/claude-code-minoan
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/tdimino/claude-code-minoan "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/core-development/react-best-practices" ~/.claude/skills/tdimino-claude-code-minoan-react-best-practices && rm -rf "$T"
manifest:
skills/core-development/react-best-practices/SKILL.mdsource content
React Best Practices
Overview
Comprehensive performance optimization guide for React and Next.js applications, containing 40+ rules across 8 categories. Rules are prioritized by impact to guide automated refactoring and code generation.
When to Apply
Reference these guidelines when:
- Writing new React components or Next.js pages
- Implementing data fetching (client or server-side)
- Reviewing code for performance issues
- Refactoring existing React/Next.js 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 | Server-Side Performance | HIGH |
| 4 | Client-Side Data Fetching | MEDIUM-HIGH |
| 5 | Re-render Optimization | MEDIUM |
| 6 | Rendering Performance | MEDIUM |
| 7 | JavaScript Performance | LOW-MEDIUM |
| 8 | Advanced Patterns | LOW |
Quick Reference
Critical Patterns (Apply First)
Eliminate Waterfalls:
- Defer await until needed (move into branches)
- Use
for independent async operationsPromise.all() - Start promises early, await late
- Use
for partial dependenciesbetter-all - Use Suspense boundaries to stream content
Reduce Bundle Size:
- Avoid barrel file imports (import directly from source)
- Use
for heavy componentsnext/dynamic - Defer non-critical third-party libraries
- Preload based on user intent
High-Impact Server Patterns
- Use
for per-request deduplicationReact.cache() - Use LRU cache for cross-request caching
- Minimize serialization at RSC boundaries
- Parallelize data fetching with component composition
Medium-Impact Client Patterns
- Use SWR for automatic request deduplication
- Defer state reads to usage point
- Use lazy state initialization for expensive values
- Use derived state subscriptions
- Apply
for non-urgent updatesstartTransition
Rendering Patterns
- Animate SVG wrappers, not SVG elements directly
- Use
for long listscontent-visibility: auto - Prevent hydration mismatch with inline scripts
- Use explicit conditional rendering (
not? :
)&&
JavaScript Patterns
- Batch DOM CSS changes via classes
- Build index maps for repeated lookups
- Cache repeated function calls
- Use
instead oftoSorted()
for immutabilitysort() - Early length check for array comparisons
References
Full documentation with code examples is available in:
- Complete guide with all patternsreferences/react-performance-guidelines.md
To look up a specific pattern, grep the references:
grep -l "suspense" references/ grep -l "barrel" references/ grep -l "swr" references/