ASD

Vercel React Best Practices

Guía de optimización de rendimiento para React y Next.js de Vercel Engineering, con 70 reglas en 8 categorías priorizadas por impacto para refactorizar y generar código.

Oficial
Estrellas
30k

en todo el repo

Actividad
40

0–100, la ruta de este skill

Actualizado
hace 4 meses

último commit aquí

Commits
0

últimos 90 días

Contexto
1.8k tok

82 tok en reposo

Paquete
76 archivos

225 KB

Instalar

Funciona con cualquier agente que lea SKILL.md

npx -y skills add vercel-labs/agent-skills --skill react-best-practices --agent claude-code

Se instala solo en este repositorio.

Qué hace

  • Aplica 70 reglas de rendimiento de React/Next.js de Vercel Engineering, agrupadas en 8 categorías priorizadas por impacto
  • Guía el refactor y la generación de código hacia patrones como eliminar waterfalls, reducir el bundle y optimizar re-renders
  • Referencia archivos de reglas individuales en rules/ con explicaciones y ejemplos de código correcto e incorrecto

Úsalo cuando

  • Al escribir nuevos componentes de React o páginas de Next.js
  • Al implementar data fetching en cliente o servidor
  • Al revisar o refactorizar código React/Next.js por problemas de rendimiento
  • Al optimizar el tamaño del bundle o los tiempos de carga

No lo uses cuando

    Qué lo activa

    Di cualquiera de estas frases y el agente debería cargar este skill.

    • Revisa este componente de Next.js en busca de problemas de rendimiento
    • Refactoriza este data fetching para evitar waterfalls
    • ¿Cómo reduzco el tamaño del bundle en esta página?
    • Optimiza los re-renders de este componente React

    SKILL.md

    En inglés

    Vercel React Best Practices

    Comprehensive performance optimization guide for React and Next.js applications, maintained by Vercel. Contains 70 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-cheap-condition-before-await - Check cheap sync conditions before awaiting flags or remote values
    • 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
    • bundle-analyzable-paths - Prefer statically analyzable import and file-system paths to avoid broad bundles and traces
    • bundle-dynamic-imports - Use next/dynamic for heavy components
    • bundle-defer-third-party - Load analytics/logging after hydration
    • bundle-conditional - Load modules only when feature is activated
    • bundle-preload - Preload on hover/focus for perceived speed

    3. Server-Side Performance (HIGH)

    • server-auth-actions - Authenticate server actions like API routes
    • server-cache-react - Use React.cache() for per-request deduplication
    • server-cache-lru - Use LRU cache for cross-request caching
    • server-dedup-props - Avoid duplicate serialization in RSC props
    • server-hoist-static-io - Hoist static I/O (fonts, logos) to module level
    • server-no-shared-module-state - Avoid module-level mutable request state in RSC/SSR
    • server-serialization - Minimize data passed to client components
    • server-parallel-fetching - Restructure components to parallelize fetches
    • server-parallel-nested-fetching - Chain nested fetches per item in Promise.all
    • server-after-nonblocking - Use after() for non-blocking operations

    4. Client-Side Data Fetching (MEDIUM-HIGH)

    • client-swr-dedup - Use SWR for automatic request deduplication
    • client-event-listeners - Deduplicate global event listeners
    • client-passive-event-listeners - Use passive listeners for scroll
    • client-localstorage-schema - Version and minimize localStorage data

    5. Re-render Optimization (MEDIUM)

    • rerender-defer-reads - Don't subscribe to state only used in callbacks
    • rerender-memo - Extract expensive work into memoized components
    • rerender-memo-with-default-value - Hoist default non-primitive props
    • rerender-dependencies - Use primitive dependencies in effects
    • rerender-derived-state - Subscribe to derived booleans, not raw values
    • rerender-derived-state-no-effect - Derive state during render, not effects
    • rerender-functional-setstate - Use functional setState for stable callbacks
    • rerender-lazy-state-init - Pass function to useState for expensive values
    • rerender-simple-expression-in-memo - Avoid memo for simple primitives
    • rerender-split-combined-hooks - Split hooks with independent dependencies
    • rerender-move-effect-to-event - Put interaction logic in event handlers
    • rerender-transitions - Use startTransition for non-urgent updates
    • rerender-use-deferred-value - Defer expensive renders to keep input responsive
    • rerender-use-ref-transient-values - Use refs for transient frequent values
    • rerender-no-inline-components - Don't define components inside components

    6. Rendering Performance (MEDIUM)

    • rendering-animate-svg-wrapper - Animate div wrapper, not SVG element
    • rendering-content-visibility - Use content-visibility for long lists
    • rendering-hoist-jsx - Extract static JSX outside components
    • rendering-svg-precision - Reduce SVG coordinate precision
    • rendering-hydration-no-flicker - Use inline script for client-only data
    • rendering-hydration-suppress-warning - Suppress expected mismatches
    • rendering-activity - Use Activity component for show/hide
    • rendering-conditional-render - Use ternary, not && for conditionals
    • rendering-usetransition-loading - Prefer useTransition for loading state
    • rendering-resource-hints - Use React DOM resource hints for preloading
    • rendering-script-defer-async - Use defer or async on script tags

    7. JavaScript Performance (LOW-MEDIUM)

    • js-batch-dom-css - Group CSS changes via classes or cssText
    • js-index-maps - Build Map for repeated lookups
    • js-cache-property-access - Cache object properties in loops
    • js-cache-function-results - Cache function results in module-level Map
    • js-cache-storage - Cache localStorage/sessionStorage reads
    • js-combine-iterations - Combine multiple filter/map into one loop
    • js-length-check-first - Check array length before expensive comparison
    • js-early-exit - Return early from functions
    • js-hoist-regexp - Hoist RegExp creation outside loops
    • js-min-max-loop - Use loop for min/max instead of sort
    • js-set-map-lookups - Use Set/Map for O(1) lookups
    • js-tosorted-immutable - Use toSorted() for immutability
    • js-flatmap-filter - Use flatMap to map and filter in one pass
    • js-request-idle-callback - Defer non-critical work to browser idle time

    8. Advanced Patterns (LOW)

    • advanced-effect-event-deps - Don't put useEffectEvent results in effect deps
    • advanced-event-handler-refs - Store event handlers in refs
    • advanced-init-once - Initialize app once per app load
    • advanced-use-latest - useLatest for stable callback refs

    How to Use

    Read individual rule files for detailed explanations and code examples:

    rules/async-parallel.md
    rules/bundle-barrel-imports.md
    

    Each rule file contains:

    • Brief explanation of why it matters
    • Incorrect code example with explanation
    • Correct code example with explanation
    • Additional context and references

    Full Compiled Document

    For the complete guide with all rules expanded: AGENTS.md

    Reproducido de vercel-labs/agent-skills bajo licencia MIT. Leer esta página en markdown.

    Archivos

    76 archivos en el paquete. Solo se lee SKILL.md al activarse — las referencias se cargan si el skill decide que las necesita.

    Detalles

    Licencia
    MIT
    Recursos incluidos
    Incluye scripts o referencias
    Código fuente
    Ver SKILL.md

    Más de vercel-labs/agent-skills

    Este repo incluye 9 skills. Si instalas uno, normalmente ya tienes los demás.

    Para optimizar coste y rendimiento en proyectos Vercel desplegados (Next.js, SvelteKit, Nuxt, Astro limitado): recopila métricas, uso y config, investiga solo candidatos respaldados por métricas y produce recomendaciones verificadas.

    Costo de contexto al activarse
    4.3k tok
    Tamaño del paquete
    156 archivos
    Última actualización
    hace 2 meses
    Oficialdevops infraestructura

    Guía para implementar animaciones nativas y fluidas con la View Transition API de React (`<ViewTransition>`, `addTransitionType`, pseudo-elementos CSS de transición).

    Costo de contexto al activarse
    3.5k tok
    Tamaño del paquete
    8 archivos
    Última actualización
    hace 21 días
    Oficialherramientas desarrollo

    Revisa documentos o prosa para verificar el cumplimiento de las Writing Guidelines; úsalo al pedir "review my docs", "check writing style" o "audit prose".

    Costo de contexto al activarse
    308 tok
    Tamaño del paquete
    1 archivo
    Última actualización
    hace 2 meses
    Oficialredaccion contenido

    Despliega y gestiona proyectos en Vercel usando autenticación por token. Útil para usar Vercel CLI con access tokens en vez de login interactivo, p. ej. "deploy to vercel", "set up vercel".

    Costo de contexto al activarse
    2.6k tok
    Tamaño del paquete
    1 archivo
    Última actualización
    hace 3 meses
    Oficialdevops infraestructura

    Despliega aplicaciones y sitios web en Vercel. Úsalo cuando el usuario pida acciones de despliegue como 'deploy my app', 'push this live' o 'create a preview deployment'.

    Costo de contexto al activarse
    2.9k tok
    Tamaño del paquete
    4 archivos
    Última actualización
    hace 5 meses
    Oficialdevops infraestructura

    Patrones de composición de React que escalan. Úsalo al refactorizar props booleanas, construir librerías flexibles o diseñar APIs reutilizables; incluye cambios de las APIs de React 19.

    Costo de contexto al activarse
    722 tok
    Tamaño del paquete
    14 archivos
    Última actualización
    hace 6 meses
    Oficialherramientas desarrollo

    Skills relacionados

    Úsalo al empezar trabajo de feature que necesita aislamiento del workspace actual, o antes de ejecutar planes de implementación: asegura un workspace aislado vía herramientas nativas o fallback a git worktree.

    Costo de contexto al activarse
    1.7k tok
    Tamaño del paquete
    1 archivo
    Última actualización
    el mes pasado
    herramientas desarrollo

    Úsala al crear nuevas skills, editar skills existentes o verificar que funcionan antes de desplegarlas.

    Costo de contexto al activarse
    6.6k tok
    Tamaño del paquete
    7 archivos
    Última actualización
    anteayer
    herramientas desarrollo

    Parte un plan, una spec o la conversación actual en tickets tracer-bullet, cada uno declarando sus aristas de bloqueo, publicados en el tracker configurado.

    Costo de contexto al activarse
    1.4k tok
    Tamaño del paquete
    2 archivos
    Última actualización
    hace 24 días
    herramientas desarrollo