Communitygithub.com

sakilanwar12/nextjs-typescript-skills

Optimieren Sie die Next.js-Leistung – Bild-/Schriftartenoptimierung, Bundle-Analyse, dynamische Imports, ISR/PPR-Caching und Core Web Vitals-Fixes.

Was ist nextjs-typescript-skills?

Diese Fertigkeit bietet eine umfassende Anleitung zur Optimierung der Leistung von Next.js-Anwendungen. Sie deckt grundlegende Bereiche ab: Bilder mit `next/image`, selbst gehostete Schriftarten mit `next/font` zur Vermeidung von render-blockierenden Ressourcen, Code-Splitting mit `dynamic()` für schwere clientseitige Widgets, aggressive Caching-Strategien mit ISR (Incremental Static Regeneration) und `revalidate` sowie die Analyse der Bundle-Größe mit `@next/bundle-analyzer`. Die Anleitung enthält klare Regeln, praktische Codebeispiele (JSX/TSX und next.config.js) sowie eine Checkliste zur Sicherstellung der Core Web Vitals (LCP, CLS, INP). Empfohlen für Entwickler, die mit Next.js (13+ mit App Router), TypeScript und modernen React-Patterns (Suspense, RSC) arbeiten. Die bereitgestellten Code-Snippets sind direkt in jeder Next.js-Codebasis einsetzbar.

Funktioniert mit~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/sakilanwar12/nextjs-typescript-skills/tree/HEAD/skills/nextjs-performance

In Ihrer bevorzugten KI fragen

Öffnet einen neuen Chat, in dem dieser Agent-Skill bereits geladen ist.

Dokumentation

Next.js Leistung

Regeln

  1. Bilder: Immer next/image mit expliziten sizes, priority nur für LCP-Heldenbilder. Schriftarten: next/font (kein render-blockierendes Google <link>).
  2. Zuerst messen: @next/bundle-analyzer, next build-Ausgabe, Lighthouse. Zuerst den größten Brocken beheben.
  3. dynamic(() => import(...), { ssr: false }) für schwere Client-Only-Widgets (Diagramme, Editoren). Anfangs-JS unter 200 kB gz halten, wo möglich.
  4. Aggressiv cachen: statisch + revalidate (ISR) für semi-dynamische Seiten; loading.tsx/Suspense verwenden, um langsame Teile zu streamen, anstatt die TTFB zu blockieren.
  5. Wasserfälle vermeiden: in RSC parallelisieren, wiederholte fetch-Aufrufe memoizieren (pro Request automatisch dedupliziert), unstable_cache für teure Berechnungen verwenden.

Patterns

// next/image — skaliert, standardmäßig lazy
import Image from 'next/image';
<Image src="/hero.jpg" alt="Dashboard" width={1200} height={630} priority sizes="100vw" />
<Image src="/avatar.png" alt="User" width={64} height={64} sizes="64px" />

// next/font — selbst gehostet, kein CLS
import { Inter } from 'next/font/google';
const inter = Inter({ subsets: ['latin'], display: 'swap' });
export default function RootLayout({ children }: { children: React.ReactNode }) {
  return <html lang="en" className={inter.className}><body>{children}</body></html>;
}

// Schweres Client-Widget — Code-Splitting
import dynamic from 'next/dynamic';
const Chart = dynamic(() => import('@/components/chart'), { ssr: false, loading: () => <p>Diagramm wird geladen…</p> });

// ISR
export const revalidate = 60;
// next.config.js — Analyzer
const withBundleAnalyzer = require('@next/bundle-analyzer')({ enabled: process.env.ANALYZE === 'true' });
module.exports = withBundleAnalyzer({});
// ANALYZE=true next build

Checkliste

  • Heldenbild priority + sizes, andere lazy?
  • next/font verwendet, keine externen Schriftarten-Links?
  • Schwere Komponenten dynamisch importiert?
  • Bundle analysiert, größter Import gerechtfertigt?
  • ISR/revalidate für cachebare Seiten gesetzt?
  • LCP/CLS/INP in Lighthouse überprüft?

Individual skills in this repo

This repo contains 4 individual skills — each has its own dedicated page.

Verwandte Skills