smithery.ai

react-review

React and Next.js performance optimization guidelines from Vercel Engineering. Contains 45+ rules across 8 categories.

First seen Apr 6, 2026

Installation

$ npx skills add https://smithery.ai

Similar popular skills

Related neighbors and high-traction skills in the same topics — useful to compare before installing.

Also in this package

Other skills from smithery.ai · top by installs.

npx skills add https://smithery.ai

Browse all from smithery.ai

More details

Agent compatibility

Declared targets from SKILL.md / docs. Unmarked agents are not listed — the skill may still install via the CLI.

Claude Code Not declared
Cursor Not declared
Codex Not declared
GitHub Copilot Not declared
Windsurf Not declared
Gemini CLI Not declared
Cline Not declared
OpenCode Not declared

Package contents

Files included with this skill beyond the listing page.

  • skill md SKILL.md 1,622 B
  • docs SUMMARY.md 138 B

History

  1. First seen on skills.sh
  2. First recorded snapshot · 1 installs

SKILL.md

Vercel React Best Practices

Quick reference for reviewing React code. For detailed rules with code examples, see [RULES.md](RULES.md).

Rule Categories (by priority)

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

Critical Rules Summary

Eliminating Waterfalls

  • async-parallel - Use Promise.all() for independent operations
  • async-defer-await - Move await into branches where actually used
  • async-suspense-boundaries - Use Suspense to stream content

Bundle Size

  • bundle-barrel-imports - Import directly, avoid barrel files
  • bundle-dynamic-imports - Use next/dynamic for heavy components
  • bundle-defer-third-party - Load analytics after hydration

Re-render Optimization

  • rerender-memo - Extract expensive work into memoized components
  • rerender-functional-setstate - Use functional setState for stable callbacks
  • rerender-lazy-state-init - Pass function to useState for expensive values

Common Patterns

  • rendering-conditional-render - Use ternary, not && for conditionals with numbers
  • Missing keys in list rendering
  • Index as key for dynamic lists