Server Components in der Praxis
Was auf den Server gewandert ist, was im Client blieb – und wie viel JavaScript wir nicht mehr ausliefern.

Warum wir umgestiegen sind
Unser Dashboard lieferte 380 kB JavaScript aus, bevor das erste Diagramm erschien. Das meiste davon renderte statische Tabellen, die sich nach dem Laden nie mehr änderten.
Mit Server Components bleiben diese Tabellen auf dem Server, und nur die Teile, mit denen Menschen tatsächlich interagieren, werden hydriert.
Wo die Client-Grenze verläuft
Wir hatten eine einzige Regel: Eine Komponente wird nur dann zur Client-Komponente, wenn sie State, Effekte oder Browser-APIs braucht.
- Filter und Datumsauswahl: Client
- Tabellen und Zusammenfassungen: Server
- Diagramme: serverseitig gerendertes SVG, Client nur für Tooltips
"use client";
export function RangePicker({ value, onChange }: Props) {
return <input type="date" value={value} onChange={(e) => onChange(e.target.value)} />;
}Unterstützung gesucht?
Lass es uns gemeinsam bauen
Ergebnisse
| Messwert | Veränderung |
|---|---|
| Ausgeliefertes JavaScript | −64 % |
| Largest Contentful Paint | −1,1 s |
| Interaction to Next Paint | −40 % |