performance-review
Analyze React/Next.js performance issues, N+1 queries, bundle size, and Core Web Vitals. Use when optimizing components, checking for slow renders, reviewing data fetching patterns, or when the app feels sluggish.
Installation
Follow the repository instructions for this skill and your agent. Review the files and dependencies before adding it to your workflow.
View source ↗GuidesSkill instructions
Performance Review
Analyze code for performance issues targeting Core Web Vitals (LCP < 2.5s, FID < 100ms, CLS < 0.1).
Scope
Review the specified files or components for:
1. React/Next.js Performance
- Unnecessary client components (should be server components)
- Missing
React.memo(),useMemo(),useCallback()where beneficial - Large component re-renders (check dependency arrays)
- Missing Suspense boundaries for async components
- Heavy components that should use
next/dynamic - Improper use of
use clientdirective
2. Data Fetching
- N+1 query patterns in Drizzle queries
- Missing
Promise.all()for parallel fetches - Overfetching data (selecting unused columns)
- Missing React
cache()for request deduplication - Unnecessary waterfalls in data loading
- Missing or improper TanStack Query configuration
3. Bundle Size
- Large dependencies imported synchronously
- Missing code splitting opportunities
- Importing entire libraries vs. specific modules
- Dead code that should be removed
4. Database Performance
- Missing indexes on filtered/joined columns
- Inefficient query patterns
- Large result sets without pagination
- Missing connection pooling considerations
5. Rendering Performance
- Layout thrashing (reading then writing DOM)
- Missing virtualization for long lists (TanStack Virtual)
- Large images without optimization
- Missing
loading="lazy"on images - CSS that causes reflows
6. Caching
- Missing cache headers on API routes
- Opportunities for static generation
- Missing revalidation strategies
- Inefficient cache invalidation
Output Format
For each finding:
[IMPACT: HIGH|MEDIUM|LOW]
File: path/to/file.ts:lineNumber
Issue: Brief description
Current: What's happening now
Recommended: How to optimize
Estimated Impact: Expected improvement
Actions
- Analyze component render patterns
- Review Drizzle queries for N+1 patterns
- Check for proper server/client component split
- Identify parallelization opportunities
- Review image and asset loading
Post-Review
Generate a summary with:
- Quick wins (low effort, high impact)
- Medium-term optimizations
- Architectural improvements for long-term
Examples
Read the usage examples in the source repository.
View source ↗Source history
- Indexed on
- 2026-01-20
- Index updated
- 2026-01-26
- Branch
- main
Index and sync dates describe this directory. View the source repository for code history.
GitHub ↗chat Comments (0)
Sign in to join the discussion and leave a comment.
No comments yet. Be the first to share your thoughts!