| name | react-best-practices |
| description | React best-practices reviewer for TSX files. Triggers after editing multiple TSX components to run a condensed quality checklist covering component structure, hooks usage, accessibility, performance, and TypeScript patterns. |
| metadata | {"priority":4,"docs":["https://react.dev/reference/react","https://react.dev/learn"],"pathPatterns":["src/components/**/*.tsx","src/components/**/*.jsx","app/components/**/*.tsx","app/components/**/*.jsx","components/**/*.tsx","components/**/*.jsx","src/ui/**/*.tsx","lib/components/**/*.tsx"],"bashPatterns":[],"importPatterns":["react","react-dom"]} |
| validate | [{"pattern":"from\\s+['\"](styled-components|@emotion/styled|@emotion/react|@mui/material|@chakra-ui/react)['\"]|styled\\.","message":"Legacy CSS-in-JS or component library detected. Consider shadcn/ui + Tailwind for modern Vercel-native UI.","severity":"warn","upgradeToSkill":"shadcn","upgradeWhy":"Migrate from CSS-in-JS/MUI/Chakra to shadcn/ui + Tailwind CSS for better SSR performance and Vercel ecosystem alignment.","skipIfFileContains":"@/components/ui|shadcn|tailwindcss"}] |
| retrieval | {"aliases":["react review","component quality","tsx linter","react patterns"],"intents":["review react code","improve component quality","check accessibility","optimize react"],"entities":["hooks","accessibility","React","TSX","component"]} |
| chainTo | [{"pattern":"from\\s+['\\\"](styled-components|@emotion/styled|@emotion/react|@mui/material|@chakra-ui/react)['\"]|styled\\.","targetSkill":"shadcn","message":"Legacy CSS-in-JS or component library detected — loading shadcn/ui guidance for modern Vercel-native UI."}] |
Vercel React Best Practices
Comprehensive performance optimization guide for React and Next.js applications, maintained by Vercel. Contains 64 rules across 8 categories, 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
Rule Categories by Priority
| Priority | Category | Impact | Prefix |
|---|
| 1 | Eliminating Waterfalls | CRITICAL | async- |
| 2 | Bundle Size Optimization | CRITICAL | bundle- |
| 3 | Server-Side Performance | HIGH | server- |
| 4 | Client-Side Data Fetching | MEDIUM-HIGH | client- |
| 5 | Re-render Optimization | MEDIUM | rerender- |
| 6 | Rendering Performance | MEDIUM | rendering- |
| 7 | JavaScript Performance | LOW-MEDIUM | js- |
| 8 | Advanced Patterns | LOW | advanced- |
Quick Reference
1. Eliminating Waterfalls (CRITICAL)
async-defer-await - Move await into branches where actually used
async-parallel - Use Promise.all() for independent operations
async-dependencies - Use better-all for partial dependencies
async-api-routes - Start promises early, await late in API routes
async-suspense-boundaries - Use Suspense to stream content
2. Bundle Size Optimization (CRITICAL)
bundle-barrel-imports - Import directly, avoid barrel files