Wann Next.js falsch ist: Gren­zen, die ehr­li­che Be­ra­ter nen­nen

Next.js ist groß­ar­tig — und für eine gan­ze Klas­se von Pro­jek­ten die fal­sche Wahl. Eine ehr­li­che Grenz­zie­hung für Ent­schei­der: Over­en­gi­nee­ring, Mi­gra­ti­ons­kos­ten und der Punkt, an dem ich es trotz­dem neh­men wür­de.
8 Min. LesezeitMatthias RadscheitMatthias Radscheit
Happycodingde-DE

TL;DR

Next.js ist für reine Marketing-Sites oft Overengineering, für Teams ohne React-Erfahrung teuer im Einstieg und für Kleinstbudgets unverhältnismäßig in der Betriebskomplexität. Astro, Vite oder ein klassisches CMS sind dann die ehrlichere Wahl. Wer wächst und auf das React-Ökosystem setzt, fährt mit Next.js trotzdem richtig.

  • Für statische Marketing-Sites bringt Next.js Framework-Gewicht mit, das Astro mit 0 JS per Default vermeidet — Overengineering ist real, aber selten der teuerste Fehler.
  • Die App-Router-Migration und die Breaking Changes in v15/v16 sind ein konkreter, unterschätzter Kostenposten, kein Detail im Changelog.
  • Teams ohne React-Kompetenz zahlen die Lernkurve doppelt: im Aufbau und im Betrieb. Das ist eine Hiring-Frage, keine Tech-Frage.
  • Self-hosting senkt Lizenzkosten, verlagert aber Betriebsverantwortung — bei Kleinstbudgets ist das ein schlechter Tausch.
  • Die Grenze ist keine Formel: Zeithorizont und Team entscheiden, ob die Wette auf das Next.js-Ökosystem auch bei kleinen Projekten aufgeht.

Next.js ist eine aus­ge­zeich­ne­te Wahl — für eine gan­ze Klas­se von Pro­jek­ten ist es trotz­dem die fal­sche. Wer das nicht aus­spricht, ver­kauft ein Frame­work als Re­li­gi­on. Und Ent­schei­der, die schon eine Mi­gra­ti­on hin­ter sich ha­ben, rie­chen die Lü­cke zwi­schen Ver­spre­chen und Rea­li­tät auf zehn Me­ter.

Wir bau­en Next.js-An­wen­dun­gen, be­trei­ben sie self-hos­ted und pit­chen sie auf Ent­schei­der­ebe­ne. Ge­nau des­halb die­ser Ar­ti­kel: Eine Tech­no­lo­gie, de­ren Gren­zen man nicht be­nen­nen kann, hat man nicht ver­stan­den. Die ehr­li­che Ant­wort auf die Fra­ge, wann Next.js falsch ist, macht die Emp­feh­lung in al­len an­de­ren Fäl­len erst glaub­wür­dig. Es gibt drei Kon­stel­la­tio­nen, in de­nen ich ab­ra­te — und ei­nen Fall, in dem ich mich selbst wi­der­spre­che. Wer die grö­ße­re Land­schaft sucht, in die die­se Ent­schei­dung ge­hört, fin­det sie in un­se­rer Über­sicht zur Front­end-Ar­chi­tek­tur für den Mit­tel­stand.

Wann Next.js falsch ist: Over­en­gi­nee­ring für eine Mar­ke­ting-Web­site

Die häu­figs­te Fehl­ent­schei­dung ist nicht die teu­ers­te, aber die sicht­bars­te: Next.js für eine rei­ne Mar­ke­ting-Web­site. Ein Dut­zend Sei­ten, et­was Re­dak­ti­on, ein Kon­takt­for­mu­lar, kein ein­ge­logg­ter Be­reich, kei­ne ser­ver­sei­ti­ge Ge­schäfts­lo­gik. Für so et­was bringt Next.js Frame­work-Ge­wicht mit, das der Nut­zer im Brow­ser be­zahlt.

Der tech­ni­sche Kern: Next.js ist ein Re­act-Frame­work. Auch eine weit­ge­hend sta­ti­sche Sei­te trägt Rou­ter- und Hy­dra­ti­on-Code mit sich. Ver­gleichs­blogs be­zif­fern eine Next.js-Mar­ke­ting-Site set­up-ab­hän­gig auf grob 80–150 KB Ja­va­Script, wäh­rend As­tro per De­fault 0 KB aus­lie­fert und nur dort Ja­va­Script nach­lädt, wo eine Kom­po­nen­te tat­säch­lich in­ter­ak­tiv ist. Die­se KB-Zah­len sind Faust­re­geln, kei­ne Bench­mark-Pri­mär­da­ten — die Grö­ßen­ord­nung stimmt aber. As­tro er­zeugt sta­ti­sches HTML, hat kei­ne Hy­dra­ti­on-Pflicht und ist für con­tent-las­ti­ge Sei­ten kon­zep­tio­nell schlan­ker. Für eine Site, die plan­bar klein bleibt, ist das die ehr­li­che­re Wahl.

Hier muss ich re­la­ti­vie­ren, sonst wer­de ich un­fair. Next.js bie­tet selbst ei­nen SPA- und Sta­tic-Mo­dus, und die Ser­ver Com­pon­ents re­du­zie­ren das an den Brow­ser ge­sen­de­te Ja­va­Script er­heb­lich — nur mit 'use cli­ent' mar­kier­te Kom­po­nen­ten samt ih­rem Im­port-Gra­phen lan­den über­haupt im Cli­ent-Bund­le. Wer Next.js dis­zi­pli­niert ein­setzt, kommt deut­lich nä­her an As­tro her­an, als die Roh­zah­len sug­ge­rie­ren. Der Punkt ist nicht, dass Next.js lang­sam ist. Der Punkt ist, dass Sie für eine Auf­ga­be, die As­tro mit we­ni­ger be­weg­li­chen Tei­len löst, ein grö­ße­res Frame­work ler­nen, be­trei­ben und über Ver­sio­nen hin­weg pfle­gen. Kom­ple­xi­tät ist ein Kos­ten­pos­ten, auch wenn sie kei­ne Li­zenz­ge­bühr hat.

Für re­dak­tio­nell ge­trie­be­ne Sei­ten gibt es ei­nen drit­ten Weg, den Ent­wick­ler gern über­se­hen: ein klas­si­sches oder Head­less-CMS, in dem Nicht-Ent­wick­ler ohne De­ploy-Pipe­line In­hal­te pfle­gen. Die Fra­ge, ob Sie eine Platt­form oder eine Pu­bli­ka­ti­on bau­en, ent­schei­det mehr als je­des Frame­work-Bench­mark. Wer den Un­ter­schied zwi­schen ei­nem Con­tent-Sys­tem und ei­ner Ex­pe­ri­ence-Platt­form sau­ber zieht, trifft die Ar­chi­tek­tur fast von al­lein — dazu ha­ben wir an an­de­rer Stel­le aus­führ­li­cher ge­schrie­ben, etwa zum Un­ter­schied zwi­schen CMS und DXP.

Next.js Nach­tei­le: Brea­king Ch­an­ges als rea­ler Kos­ten­pos­ten

Der zwei­te Grund, ab­zu­ra­ten, steht nir­gends im Ver­kaufs­pro­spekt: Next.js hat ei­nen ak­ti­ven Ent­wick­lungs­zy­klus mit ech­ten Brea­king Ch­an­ges. Das ist kein Vor­wurf — ein Frame­work, das sich be­wegt, bleibt re­le­vant. Aber Be­we­gung kos­tet, und die­se Kos­ten lan­den in Ih­rem War­tungs­bud­get, nicht im Mar­ke­ting.

Kon­kret: Mit Ver­si­on 15 wur­den coo­kies, hea­ders, pa­rams und search­Pa­rams asyn­chron, Re­act 19 wur­de Pflicht, und fetch wird nicht mehr stan­dard­mä­ßig ge­cached. Mit Ver­si­on 16 wur­de der syn­chro­ne Zu­griff auf die­se Re­quest-APIs voll­stän­dig ent­fernt, Node.js 20.9+ wur­de Pflicht, Tur­bo­pack der De­fault — ein Build mit ei­ge­ner web­pack-Kon­fi­gu­ra­ti­on bricht ohne das Flag --web­pack schlicht ab. Dazu ge­än­der­te next/image-De­faults und wei­te­re An­pas­sun­gen. Das ist kein Dra­ma pro Re­lease, aber es sum­miert sich: Wer eine Next.js-An­wen­dung über drei, vier Jah­re be­treibt, fährt re­gel­mä­ßi­ge Up­grade-War­tung ein, die ein sta­ti­scher As­tro-Build oder ein ge­hos­te­tes CMS so nicht kennt.

Ein ver­brei­te­ter Irr­tum ge­hört hier kor­ri­giert, weil er die Dis­kus­si­on oft ver­gif­tet: Next.js 16 schafft die Midd­le­wa­re nicht ab. Sie wird zu pro­xy um­be­nannt und de­pre­ca­ted, läuft dann auf der Node.js-Run­time. Wer die Edge-Run­time braucht, kann laut Do­ku­men­ta­ti­on wei­ter­hin midd­le­wa­re nut­zen. Wer Ih­nen er­zählt, Midd­le­wa­re sei "weg­ge­fal­len", hat das Ch­an­ge­log nicht ge­le­sen. Sau­ber­keit bei sol­chen De­tails ist der Un­ter­schied zwi­schen ei­ner Ri­si­ko­be­wer­tung und ei­nem Stamm­tisch.

Was kos­tet die App-Rou­ter-Mi­gra­ti­on wirk­lich?

Die größ­te un­ter­schätz­te Po­si­ti­on ist die App Rou­ter Mi­gra­ti­on. Vie­le Teams sind 2023 und 2024 mit der Er­war­tung ge­star­tet, der Wech­sel vom Pa­ges Rou­ter sei ein Kon­fi­gu­ra­ti­ons­the­ma. Er ist es nicht.

Next.js emp­fiehlt selbst eine in­kre­men­tel­le, sei­ten­wei­se Mi­gra­ti­on und spricht in der ei­ge­nen Mi­gra­ti­ons­do­ku of­fen von neu­en Kon­zep­ten, Men­tal­mo­del­len und Ver­hal­tens­än­de­run­gen, die zu ler­nen sind. Das ist Her­stel­ler­spra­che für: Das ist Ar­beit. Er­zwun­gen wer­den un­ter an­de­rem get­Ser­ver­Si­de­Props und get­Sta­tic­Props zu async Ser­ver Com­pon­ents, get­Sta­tic­Paths zu ge­ne­ra­teSta­tic­Pa­rams, _app und _do­cu­ment zu app/lay­out.js, next/head zur Me­ta­da­ta-API, pa­ges/api zu Rou­te Hand­lers und next/rou­ter zu next/na­vi­ga­ti­on. Jede die­ser Zei­len ist im Vor­bei­ge­hen er­klärt — in ei­ner ge­wach­se­nen Code­ba­se ist jede da­von Re­fac­to­ring mit Test­be­darf.

Rea­le Be­rich­te be­stä­ti­gen das. Ein En­gi­nee­ring-Team be­schrieb den Par­al­lel­be­trieb von Pa­ges und App Rou­ter als lang­wie­rig, muss­te das Er­ror-Hand­ling kom­plett auf Er­ror Boun­da­ries um­stel­len und konn­te die zu­vor ge­nutz­te Run­time-Con­fig nicht mehr ver­wen­den. Das men­ta­le Mo­dell des RSC-Cachings — wann et­was sta­tisch, dy­na­misch oder reva­li­diert ist — ist die ei­gent­li­che Lern­kur­ve, nicht die Syn­tax. In ei­ner viel­be­ach­te­ten Git­Hub-Dis­kus­si­on vo­tier­te von über 2.000 Teil­neh­mern eine deut­li­che Mehr­heit für den Pa­ges Rou­ter. Die­se Um­fra­ge ist selbst­se­lek­tie­rend, mei­nungs­stark und teils durch neue­re Ver­sio­nen über­holt — als Mehr­heits­be­leg taugt sie nicht. Als Si­gnal, dass der Um­stieg Rei­bung er­zeugt hat, ist sie ernst zu neh­men.

Für Sie als Ent­schei­der heißt das: Wenn ein Dienst­leis­ter eine Next.js-Mi­gra­ti­on ohne ei­ge­nen Pos­ten für die Rou­ter-Um­stel­lung kal­ku­liert, prü­fen Sie nach. Eine sau­be­re Erst­im­ple­men­tie­rung ei­nes self-hos­ted Next.js-Stacks liegt bei uns ein­ma­lig im Be­reich 5.000 bis 20.000 Euro; eine Mi­gra­ti­on mit sub­stan­zi­el­lem Pa­ges-Rou­ter-Be­stand kann dar­über hin­aus­ge­hen, weil sie Re­fac­to­ring statt Neu­bau ist. Wer in 90 Ta­gen vom Pitch zum Go-Live will, plant sol­che Um­bau­ten ein, statt sie zu ent­de­cken — wie das in der Pra­xis aus­sieht, ha­ben wir am Weg vom Pitch zum Go-Live be­schrie­ben.

Wann ist Next.js für ein Team die fal­sche Wahl?

Der drit­te Fall ist eine Hi­ring-Fra­ge, kei­ne Tech-Fra­ge. Next.js ist Re­act. Wer ein Team hat, das in ei­nem an­de­ren Stack zu Hau­se ist — Vue, klas­si­sches Ser­ver-Side-Ren­de­ring, eine Java-Welt — zahlt die Lern­kur­ve zwei­mal: ein­mal beim Auf­bau, ein­mal dau­er­haft im Be­trieb.

Die Markt­la­ge spricht zwar für Re­act. In der Stack Over­flow De­ve­lo­per Sur­vey 2025 nutz­te ein gu­tes Drit­tel bis knapp die Hälf­te der Be­frag­ten Re­act, deut­lich mehr als An­gu­lar, und bei pro­fes­sio­nel­len Ent­wick­lern liegt Re­act noch kla­rer vorn. Die Ent­wick­ler­ver­füg­bar­keit ist also stra­te­gisch auf der Re­act-Sei­te. Aber Markt­durch­schnitt hilft Ih­rem kon­kre­ten Team nicht, wenn es heu­te kein Re­act kann. Ein Frame­work ein­zu­füh­ren, des­sen Men­tal­mo­dell — Ser­ver vs. Cli­ent Com­pon­ents, Caching-Ver­hal­ten, Hy­dra­ti­on — nie­mand in­tern trägt, er­zeugt ei­nen Ven­dor-Lock-in beim Dienst­leis­ter, den man sel­ten ein­kal­ku­liert. Sie kau­fen dann nicht nur Code, Sie kau­fen die Not­wen­dig­keit, die­sen Dienst­leis­ter zu be­hal­ten.

Und es gibt die Bud­get-Gren­ze. Self-hos­ting auf Hetz­ner ist DSGVO-kon­form in Deutsch­land ab grob 20 bis 50 Euro im Mo­nat mög­lich, der Be­trieb kos­tet zwei bis fünf Stun­den mo­nat­lich für Up­dates, Mo­ni­to­ring und Back­ups. Das ist güns­tig — aber es ist Be­triebs­ver­ant­wor­tung. Für ein Kleinst­pro­jekt mit knap­pem Bud­get ist ge­nau das ein schlech­ter Tausch: Die ein­ge­spar­ten Platt­form­kos­ten wer­den von der Be­triebs­zeit auf­ge­fres­sen, und der ge­nu­in schwie­ri­ge Teil von Next.js self-hos­ted — das ISR-Caching über meh­re­re In­stan­zen mit ei­nem Cus­tom cache­Hand­ler — wird bei klei­nen Set­ups sel­ten ge­braucht, will aber trotz­dem ver­stan­den sein, so­bald man ska­liert. Die gan­ze Ab­wä­gung zwi­schen Platt­form und Ei­gen­be­trieb ha­ben wir im Ver­gleich Next.js auf Hetz­ner statt Ver­cel aus­ge­brei­tet.

Der un­be­que­me Punkt: Manch­mal neh­me ich Next.js trotz­dem

Jetzt wi­der­spre­che ich mir, und das ab­sicht­lich. In meh­re­ren der Fäl­le, in de­nen Next.js nach die­sen Kri­te­ri­en falsch aus­sieht, wür­de ich es trotz­dem wäh­len.

Neh­men Sie die "ein­fa­che" Mar­ke­ting-Web­site. Die wächst er­staun­lich oft. Aus den fünf Sei­ten wird ein Kun­den­por­tal, aus dem Kon­takt­for­mu­lar ein Log­in, aus der Pu­bli­ka­ti­on eine Platt­form. Wer früh den As­tro- oder Bau­kas­ten-Pfad ge­wählt hat, zahlt die­se Wet­te dann mit ei­ner Mi­gra­ti­on nach — und eine Mi­gra­ti­on nach drei Jah­ren Wachs­tum ist teu­rer als das an­fäng­li­che Over­en­gi­nee­ring je war. Die Wet­te auf das Re­act- und Next.js-Öko­sys­tem kann bei ge­nau dem Pro­jekt rich­tig sein, das heu­te zu klein da­für wirkt.

Dazu kom­men Hi­ring und An­schluss­fä­hig­keit. Für Re­act fin­den Sie Ent­wick­ler, Bi­blio­the­ken, Pat­terns und Ant­wor­ten. Das ist ein rea­ler Wert, der eine mo­men­ta­ne Lern­kur­ve über­steigt. Wenn ich zwi­schen dem theo­re­tisch pas­sen­de­ren Ni­schen-Tool und dem Frame­work wäh­le, für das ich in zwei Jah­ren noch Leu­te fin­de, ge­winnt oft das Öko­sys­tem — auch ge­gen mei­ne ei­ge­ne Over­en­gi­nee­ring-Kri­tik. Per­for­mance ist da­bei sel­ten das Ge­gen­ar­gu­ment: Mit Ser­ver Com­pon­ents und ISR lie­fert ein sau­ber ge­bau­tes Next.js gute Core Web Vi­tals, die am Ende auf Con­ver­si­on und Um­satz durch­schla­gen.

Die Gren­ze ist des­halb kei­ne For­mel. Sie ist eine Ab­wä­gung von Zeit­ho­ri­zont und Team. Ein Weg­werf-Pro­jekt mit fi­xem Scope und ei­nem Vue-Team: nicht Next.js. Eine Platt­form mit un­kla­rem Wachs­tum, ei­nem Re­act-af­fi­nen Team und ei­nem Ho­ri­zont von Jah­ren: fast im­mer Next.js, auch wenn sie heu­te klein star­tet.

Was ich Ent­schei­dern rate

Stel­len Sie zwei Fra­gen, be­vor Sie Next.js be­stel­len oder ab­leh­nen. Ers­tens: Wächst das hier? Wenn die Ant­wort ein ehr­li­ches Nein ist — ein Kam­pa­gnen-Mi­cro­si­te, eine Bro­schü­re, ein Pro­jekt mit End­da­tum — neh­men Sie As­tro, Vite oder ein CMS und spa­ren sich Frame­work und Mi­gra­ti­ons­ri­si­ko. Zwei­tens: Wer trägt das? Wenn nie­mand im Haus Re­act kann und nie­mand es ler­nen soll, kau­fen Sie sich mit Next.js ei­nen Ven­dor-Lock-in, der teu­rer ist als jede Li­zenz.

Sa­gen alle Be­tei­lig­ten zu bei­dem Ja — es wächst, und wir kön­nen oder wol­len Re­act tra­gen — dann ist Next.js fast im­mer rich­tig, und die Brea­king Ch­an­ges und die Mi­gra­ti­on sind ein ein­ge­preis­ter War­tungs­pos­ten, kein Aus­schluss­grund. Miss­trau­en Sie je­dem Dienst­leis­ter, der Ih­nen Next.js für al­les ver­kauft, und eben­so je­dem, der es pau­schal ver­teu­felt. Die rich­ti­ge Ant­wort hat ein Da­tum, ein Team und ei­nen Zeit­ho­ri­zont. Wer Ih­nen die Gren­zen nennt, hat ver­stan­den, was er emp­fiehlt — und ge­nau dem wür­de ich glau­ben.

Häufige Fragen

Ist Next.js für eine einfache Marketing-Website zu viel?
In vielen Fällen ja. Eine reine Marketing-Site mit ein paar Dutzend Seiten braucht weder serverseitige Datenlogik noch Hydration für interaktive Komponenten. Astro liefert per Default 0 JavaScript und erzeugt statisches HTML; Vergleichsblogs beziffern eine Next.js-Marketing-Site setup-abhängig auf grob 80–150 KB JS gegenüber nahezu 0–20 KB bei Astro. Wenn die Site planbar klein bleibt, ist Astro oder ein klassisches CMS die schlankere Wahl. Wenn sie absehbar zur Plattform wächst, kann Next.js trotzdem richtig sein.
Wie teuer ist die Migration vom Pages Router auf den App Router?
Sie ist kein Changelog-Detail, sondern ein Projektposten. Next.js empfiehlt selbst eine inkrementelle, seitenweise Migration und spricht offen von neuen Konzepten und Mentalmodellen, die ein Team erst lernen muss. Erzwungen werden unter anderem der Umbau von getServerSideProps und getStaticProps auf async Server Components, von next/head auf die Metadata-API und von next/router auf next/navigation. Teams berichten, dass der Parallelbetrieb beider Router und die Umstellung des Error-Handlings auf Error Boundaries erheblich Zeit gekostet haben.
Was ist die beste Next.js-Alternative für kleine Projekte?
Es gibt nicht die eine Alternative, sondern drei je nach Fall. Für content-lastige, weitgehend statische Sites: Astro. Für eine schlanke Single-Page-App ohne SEO-Druck: Vite mit React oder Vue. Für redaktionell getriebene Sites mit Nicht-Entwicklern in der Pflege: ein klassisches oder Headless-CMS. Die Wahl hängt davon ab, wer die Site pflegt, wie stark sie wächst und welche Frontend-Kompetenz im Team vorhanden ist.
Lohnt sich Self-Hosting von Next.js bei kleinen Budgets?
Selten. Self-hosting senkt Lizenzkosten über die Zeit, verlagert aber Betriebsverantwortung ins eigene Team — Updates, Monitoring, Backups. Bei einem Kleinstprojekt mit knappem Budget ist dieser Tausch oft schlecht, weil die eingesparten Plattformkosten von zwei bis fünf Betriebsstunden im Monat aufgefressen werden. Self-Hosting lohnt sich, wenn Datensouveränität, Skalierung oder mittelfristige Kostendegression zählen — nicht als Sparmaßnahme für das kleinste Setup.

Quellen

Ähnliche Artikel

Offen für ausgewählte Projekte

Lassen Sie uns über Ihr Projekt sprechen

Bu­chen Sie ei­nen un­ver­bind­li­chen Ter­min, schrei­ben Sie uns eine E-Mail oder nut­zen Sie das For­mu­lar – wir freu­en uns auf Ihre Nach­richt.

150+
Abgeschlossene Projekte
15
Jahre Erfahrung
8
Senior‑Level Teammitglieder