vercel-react-best-practices

Applies Vercel performance optimization rules when writing or refactoring React and Next.js code.

Updated Aug 9, 2026
One-click install
npx skills add https://github.com/julicode10/julicode10.github.io --skill vercel-react-best-practices-julicode10
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: vercel-react-best-practices
Source: https://github.com/julicode10/julicode10.github.io/tree/main/.agents/skills/vercel-react-best-practices
Command: npx skills add https://github.com/julicode10/julicode10.github.io --skill vercel-react-best-practices-julicode10

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill includes references (resource) components.

What problem does it solve? React and Next.js codebases often suffer from slow load times, unnecessary re-renders, and data-fetching waterfalls that are hard to spot during development. This Skill provides a structured, prioritized rule set from Vercel Engineering so AI agents and developers can consistently generate and refactor performant React code. ## Core Features & Use Cases - 70 Prioritized Rules Across 8 Categories: Covers eliminating waterfalls, bundle size optimization, server-side performance, client-side data fetching, re-render optimization, rendering performance, JavaScript performance, and advanced patterns, each ranked by impact from CRITICAL to LOW. - Incorrect vs. Correct Code Examples: Every rule includes concrete TypeScript/TSX examples showing the anti-pattern and the optimized implementation, plus impact metrics like 2-10x improvements from parallelization. - Use Case: When refactoring a Next.js page that fetches user, posts, and comments sequentially, apply the async-parallel rule to combine them with Promise.all(), cutting three network round trips down to one. ## Quick Start Ask the AI to review your React component or Next.js page for performance issues using the Vercel best practices rules and suggest optimized code.

Frequently Asked Questions about vercel-react-best-practices

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I eliminate data fetching waterfalls in Next.js?

Start independent async operations immediately and await them together with Promise.all() instead of awaiting sequentially. For partial dependencies, use the better-all library or chain promises so each task starts at the earliest possible moment.

How to reduce React bundle size with dynamic imports?

Use next/dynamic to lazy-load heavy components like Monaco Editor that are not needed on initial render. Also avoid barrel file imports from libraries like lucide-react or @mui/material, which can add 200-800ms of import cost.

Does this guide work with Next.js App Router and Server Components?

Yes, the rules specifically cover React Server Components, including minimizing serialization at RSC boundaries, per-request deduplication with React.cache(), authenticating Server Actions, and avoiding shared module state for request data.

When should I not use Suspense boundaries for data fetching?

Avoid Suspense when data is critical for layout decisions, when content is SEO-critical above the fold, or when queries are small and fast. The trade-off is faster initial paint versus potential layout shift.

Why do React components re-render unnecessarily?

Common causes include defining components inside other components, missing memoization of expensive work, broad effect dependencies, and subscribing to raw state instead of derived values. The re-render rules cover useMemo, useTransition, useDeferredValue, and functional setState fixes.