Du brauchst kein Next.js

Next.js ist die Standardantwort für die Erstellung von React-Apps. Es ist ein großartiges Framework. Aber Standard bedeutet nicht zwangsläufig notwendig.

Die Verwendung für das falsche Projekt hat uns Geschwindigkeit gekostet und zu Reibungen im Team geführt. Wir haben ein datenintensives Produkt mit Dashboards und Diagrammen entwickelt. Fast jeder Bildschirm befand sich hinter einem Login.

Bei dieser Art von App verursachte Server-Side Rendering (SSR) Kosten, ohne einen Mehrwert zu bieten.

Das richtige Werkzeug hängt davon ab, was du baust.

Content-first-Projekte: • Marketing-Seiten • Blogs • Storefronts • Dokumentationen • Nutze hier Next.js. SEO ist wichtig und der Inhalt ist statisch.

Application-first-Projekte: • Interne Tools • Dashboards • Admin-Panels • SaaS-Konsolen • Nutze hier eine Vite-basierte SPA. Diese Apps laufen hinter einer Authentifizierung und verlassen sich auf APIs.

Wir sind von Next.js zu einer Vite SPA gewechselt. Hier ist der Grund:

  1. Einfacheres Debugging Server-Fehler lassen sich nicht sauber auf deine Komponenten abbilden. Clientseitige Fehler treten im Browser mit klaren Stack-Traces auf. Das macht die Fehlerbehebung schnell.

  2. Besseres Testen Man kann einen Server-Component, der andere Server-Components rendert, nicht einfach mit Unit-Tests prüfen. Wir haben Design-Entscheidungen getroffen, nur um testbar zu bleiben. Das war ein Fehler.

  3. Einfachere Authentifizierung SSR erfordert, dass der Server bei jeder Anfrage Token validiert. Dies schafft mehr Angriffsflächen und eine komplexe Cookie-Logik. Eine Client-first-App verwaltet die Authentifizierung an einer Stelle: der API.

  4. Niedrigere Infrastrukturkosten SSR benötigt für jede Anfrage einen ständig aktiven Server. Ein statisches Frontend wird als Dateien über ein CDN ausgeliefert. Man hat einen Dienst weniger, den man betreiben und absichern muss.

  5. Weniger Komplexität Next.js erzwingt eine Trennung zwischen Server und Client. Frontend-Entwickler mussten sich um Server-Themen wie Middleware und Caching kümmern. Das hat uns ausgebremst.

Wir sind in Phasen migriert. Wir haben Next.js für die öffentlichen, SEO-kritischen Seiten beibehalten. Alles andere haben wir auf eine Vite SPA umgestellt.

Die Kompromisse waren gering: • SEO: Dashboards hinter einem Login benötigen kein SEO. • Initial Load: Datenintensive Apps sind meistens wegen der Datenbank langsam, nicht wegen des Frameworks.

Nutze Next.js, wenn SEO und Social Previews wichtig sind. Nutze eine Vite SPA, wenn deine App interaktiv, datengesteuert ist und hinter einem Login liegt.

Hör auf, einfach nur den Standard zu nutzen. Frag dich selbst, was du eigentlich baust.

Quelle: https://dev.to/moruno21/you-dont-need-nextjs-heres-why-708