Notre avis
Prévient les cascades asynchrones, réduit la taille du bundle, sécurise les Server Actions et garantit des builds de production corrects dans les applications Next.js.
Points forts
- Favorise les bonnes pratiques pour le chargement de données avec Promise.all
- Réduit la taille du bundle en évitant les imports groupés et en utilisant les imports dynamiques
- Assure la sécurité en vérifiant l'authentification à l'intérieur des Server Actions
Limites
- Se concentre sur des patterns spécifiques à Next.js et peut ne pas couvrir tous les problèmes de performance
- Nécessite une familiarité avec les concepts Next.js comme les Server Actions et les imports dynamiques
Utilisez-le lors de l'écriture de composants React, du chargement de données, des Server Actions ou de l'optimisation de la taille du bundle dans un projet Next.js.
Ne convient pas aux projets non Next.js ni aux pages statiques simples sans logique serveur.
Analyse de sécurité
SûrThe skill provides performance and security best practices for Next.js development without executing any commands, accessing external resources, or disabling safety features. It instructs on code patterns, not on system-modifying actions.
Aucun point d'attention détecté
Exemples
Help me optimize data fetching in my Next.js app to avoid waterfall requests.How can I reduce bundle size in Next.js by avoiding barrel imports?Show me how to properly secure Server Actions in Next.js.name: nextjs-performance description: | Next.js critical performance fixes. Prevents async waterfalls, reduces bundle size, secures Server Actions, and ensures correct production builds. Use when writing React components, data fetching, Server Actions, or optimizing bundle size.
Next.js Performance
Before Writing Code
- Read
docs/agent/architecture/nextjs-critical-fixes.mdfor full patterns - Check existing components in
apps/frontend/components/
Critical Rules
Waterfalls
- Use
Promise.all()for independent fetches - Wrap slow data in
<Suspense>boundaries - Defer
awaitinto branches where needed
// WRONG
const resumes = await fetchResumes();
const jobs = await fetchJobs();
// RIGHT
const [resumes, jobs] = await Promise.all([fetchResumes(), fetchJobs()]);
Bundle Size
- NO barrel imports:
import X from 'lucide-react'is WRONG - YES direct imports:
import X from 'lucide-react/dist/esm/icons/x' - Use
next/dynamicfor heavy components (editors, charts, PDF) - Defer analytics with
ssr: false
import dynamic from 'next/dynamic';
const HeavyEditor = dynamic(() => import('./HeavyEditor'), { ssr: false });
Server Actions
- ALWAYS check auth INSIDE the action, not just middleware
- Verify resource ownership before mutations
Production Build
- Run
npm run build && npm run start, NOTnpm run dev - Docker must use standalone output
Pre-PR Checklist
[ ] No sequential awaits for independent data
[ ] Icons imported directly (not barrel)
[ ] Heavy components use next/dynamic
[ ] Server Actions have auth inside
[ ] Suspense around slow fetches
Expert Next.js App Router
Developpement
Un skill qui transforme Claude en expert Next.js App Router.
Générateur de README
Developpement
Crée des README.md professionnels et complets pour vos projets.
Rédacteur de Documentation API
Developpement
Génère de la documentation API complète au format OpenAPI/Swagger.