Migration · Next.js → Astro

Next.js zu Astro migrieren – wenn Ihr Projekt eigentlich Content ist.

Next.js ist ein sehr gutes Framework. Für eine Anwendung ist es in der Regel die bessere Wahl, und wir raten niemandem davon ab, der eine baut. Die ehrliche These dieser Seite ist enger: Wenn Ihr Next.js-Projekt eine Marketing-Site, eine Dokumentation oder ein Blog ist, zahlen Sie die Komplexitäts- und JavaScript-Kosten eines Anwendungs-Frameworks für etwas, das im Kern Inhalt ist. Astro dreht die Voreinstellungen um: serverseitiges Rendering und statisches HTML als Standard, Client-JavaScript nur dort, wo Sie es ausdrücklich anfordern. Ihre React-Komponenten dürfen dabei mitkommen.

React muss nicht weg

Astro ist UI-Framework-agnostisch und hat eine offizielle React-Integration. Bestehende Komponenten laufen als Islands weiter, statt neu geschrieben zu werden.

Kein Client-JavaScript als Standard

Astro entfernt standardmäßig sämtliches Client-seitige JavaScript aus Komponenten. Hydration ist ein Opt-in pro Komponente, keine Grundeinstellung.

Dokumentierter Pfad

Zu Astro existiert ein offizieller Migrations-Guide für Next.js. Die Astro-Docs weisen selbst darauf hin, dass viele dieser Guides Stubs sind – die Arbeit bleibt Handarbeit.

Das Urteil zuerst
  • Wechseln, wenn es eine Content-Site ist. Marketing-Auftritt, Docs, Blog, Karriereseiten, Landingpages: Für diese Seitentypen ist ein React-überall-Modell Overhead. Astro liefert dasselbe Ergebnis als vorgerendertes HTML aus, mit Interaktivität nur an den Stellen, die sie brauchen.
  • Bleiben, wenn es eine Anwendung ist. Login, Rollen und Rechte, geteilter Client-State über Routen hinweg, ein Dashboard mit vielen Zuständen: Dann ist Next.js das passendere Werkzeug – und wir sagen Ihnen das, auch wenn wir das Projekt gerne hätten.
  • Ihre React-Komponenten überleben. Astro bindet React offiziell ein. Eine bestehende Komponentenbibliothek wird nicht weggeworfen, sondern als Insel montiert – technisch der beruhigendste Punkt dieser Migration.
  • Der Unterschied ist die Voreinstellung, nicht die Fähigkeit. Astro rendert standardmäßig statisch und vor; einzelne Routen rendern auf Anfrage, sobald Sie export const prerender = false setzen und einen Adapter für Ihre Ziel-Laufzeit installieren.
  • Vorher lesen: der nüchterne Modellvergleich unter Astro vs. Next.js. Diese Seite hier beschreibt den Umzug, jene die Entscheidung.
01 — Entscheidung

Wechseln oder bleiben – die Trennlinie liegt nicht beim Framework.

Sie liegt bei der Frage, ob Sie eine Anwendung betreiben oder Inhalte veröffentlichen. Beide Spalten sind ernst gemeint. Wir haben kein Interesse daran, ein funktionierendes Next.js-Projekt abzulösen, nur weil ein Wechsel abrechenbar wäre.

Zu Astro wechseln, wenn …

Die Symptome sind meistens dieselben – und sie klingen nach Framework-Problem, sind aber ein Modell-Problem.

  • Ihr Repository heißt website, marketing oder docs und enthält trotzdem den vollen Stack einer Anwendung.
  • Der größte Teil Ihrer Seiten ist statisch. Interaktiv sind ein Menü, ein Formular, ein Filter, ein Preisrechner – zusammen vielleicht fünf Komponenten.
  • Sie diskutieren regelmäßig über "use client"-Grenzen, obwohl niemand im Team eine Anwendung baut.
  • Ihre Core Web Vitals leiden am ausgelieferten JavaScript, und die Optimierung besteht darin, Framework-Code kleinzuschneiden statt Inhalt schneller zu machen.
  • Redaktion und Marketing warten auf Entwicklung, weil das Content-Modell in Props und Fetch-Aufrufen steckt statt in einem Schema.
  • Die Build- und Deploy-Kette ist für den Inhalt, der dabei herauskommt, spürbar zu aufwendig geworden.

Bei Next.js bleiben, wenn …

Dann ist der Wechsel kein Gewinn, sondern eine teure Umbenennung derselben Komplexität.

  • Ihr Produkt ist eine Anwendung: Authentifizierung, Rollen, Benutzerkonten, ein Dashboard mit echtem Zustand.
  • Sie brauchen geteilten Client-State über Routen hinweg – Warenkorb, Filter-Session, mehrstufige Formulare ohne Neuladen.
  • Ihre Architektur hängt an Next-spezifischen Bausteinen: Middleware-Muster, ISR-Semantik, Server-Component-Komposition im App Router.
  • Große Teile der Oberfläche sind interaktiv, nicht dekorativ interaktiv – eine SPA-artige Navigation ist Teil des Produktversprechens.
  • Ihr Team ist tief in React zu Hause, und die Website ist ohnehin nur ein kleiner Anhang am Produkt.
  • Es läuft, es ist gemessen schnell genug, und niemand hat Schmerzen. Dann ist „läuft“ ein vollkommen ausreichender Grund.
02 — Modellvergleich

Was sich technisch tatsächlich unterscheidet.

Keine Wertung, sondern die Modelle nebeneinander. Fast jede Zeile beschreibt eine Voreinstellung – und Voreinstellungen bestimmen, wie ein Projekt nach zwei Jahren aussieht.

Astro-Angaben nach der offiziellen Dokumentation. Leistungsaussagen messen wir in Ihrem Projekt, nicht anhand fremder Benchmarks.
DimensionNext.jsAstro
Rendering-Modell React-basiert. Server- und Client-Rendering greifen ineinander; der Baum wird auf dem Client fortgeführt. MPA-Architektur mit Server-Rendering als Standard – ausdrücklich kein SPA-Client-Side-Rendering-Modell. Jede Seite ist eine Seite.
JavaScript im Client Hydration ist der Normalfall. Eine Basis an Framework-Code gehört zum Auslieferungsmodell; reduzieren lässt sie sich, wegkonfigurieren nicht. Standardmäßig entfernt Astro sämtliches Client-seitige JavaScript aus Komponenten. Was Sie nicht anfordern, wird nicht ausgeliefert.
Interaktivität Komponentenweise über die Client-Grenze gesteuert; wer sie überschreitet, hydratisiert den Teilbaum. Islands: eine Insel ist „an enhanced UI component on an otherwise static page of HTML“. Aktiviert pro Komponente über client:load, client:idle oder client:visible.
Routing Dateibasiertes Routing mit Framework-eigenem Client-Router; Navigation bleibt im laufenden JavaScript-Kontext. Dateibasiertes Routing, Navigation als normaler Full-Page-Load. View Transitions sind eingebaut und über <ClientRouter /> ein Opt-in.
Datenbeschaffung Im Framework verankert: Server-Komponenten, Caching-Schichten, Revalidierung. Daten werden beim Build oder im Server-Rendering der Route geholt. Dynamische Teilbereiche lassen sich als Server Islands über server:defer nachrendern, ohne das erste Rendering zu blockieren.
Content-Modellierung Konvention statt Struktur: Inhalte kommen aus MDX, einem CMS-SDK oder Fetch-Aufrufen, typisiert von Hand. Content Collections seit Astro 2.0 – „a set of related, structurally identical data“ mit Zod-Schema, automatischen TypeScript-Typen und Query-APIs wie getCollection().
Hosting & Adapter Auf serverseitigen Betrieb ausgelegt; ein rein statischer Export ist möglich, aber nicht der Regelfall. Statisch ist der Standard. On-Demand-Rendering braucht einen Adapter für die Ziel-Laufzeit; offiziell im @astrojs-Scope: Node, Vercel, Cloudflare.
Wofür es gebaut ist Anwendungen im Web – und Websites drumherum. Selbstbeschreibung: „a JavaScript web framework optimized for building fast, content-driven websites“. Content-driven, server-first, fast by default.
03 — Ablauf

So läuft die Migration von Next.js zu Astro.

Sieben Schritte. Der dritte ist der, nach dem am häufigsten gefragt wird – und der, der die meiste Arbeit spart.

Bestandsaufnahme statt Bauchgefühl

Wir gehen Ihr Repository durch und sortieren die Routen in drei Stapel: rein statisch, statisch mit einer Insel, echt dynamisch. Dazu ziehen wir Ihre indexierten URLs, Ihre Core Web Vitals aus den Feld-Daten und die Liste der Next-spezifischen Bausteine, an denen etwas hängt. Ergebnis ist eine Empfehlung – inklusive der Option, nicht zu migrieren.

Content-Modell definieren, bevor Code entsteht

Was heute als MDX-Dateien, CMS-Antworten und handgetypte Props existiert, wird zu Content Collections mit Zod-Schema. Zod validiert jeden Eintrag beim Build und liefert automatische TypeScript-Typen für die Abfragen. Ein fehlendes Feld bricht ab da den Build – nicht die Live-Seite. Für Verzeichnisse mit Markdown, MDX, JSON, YAML oder TOML gibt es den eingebauten glob()-Loader, für mehrere Einträge aus einer Datei file().

React-Komponenten behalten und als Islands montieren

Der entscheidende Schritt: Ihre React-Komponenten werden nicht neu geschrieben. Astro hat eine offizielle React-Integration, die Komponente wird in eine .astro-Datei importiert und mit einer client:*-Direktive versehen. Der Preisrechner bekommt client:load, das Akkordeon weiter unten client:visible, das Unkritische client:idle. Alles, was keine Direktive bekommt, wird serverseitig zu HTML gerendert und liefert null JavaScript aus. Nur innerhalb einer .astro-Datei lassen sich Komponenten mehrerer Frameworks kombinieren – falls Sie später etwas in Svelte oder Vue ergänzen wollen.

Layouts, Routen und URLs eins zu eins abbilden

Seitenstruktur und Layouts werden nach Astro übertragen, die URL-Struktur bleibt identisch. Wo sie sich ändern muss, entsteht parallel die 301-Liste – Zeile für Zeile, alte URL auf neue, geschrieben bevor migriert wird und nicht danach. Titel- und Überschriftenstruktur der tragenden Seiten bleiben stabil, damit der Umzug keine Rankings kostet.

Dynamische Routen bewusst benennen

Statisch ist der Standard: Ohne weiteres Zutun wird die gesamte Seite vorgerendert. Für die Routen, die wirklich auf Anfrage rendern müssen – Formularverarbeitung, personalisierte Bereiche, Vorschau-Modus –, setzen wir export const prerender = false und installieren den Adapter für Ihre Ziel-Laufzeit. Wenn der dynamische Anteil überwiegt, dreht output: "server" den Standard um, und einzelne Seiten kommen mit export const prerender = true zurück ins Prerendering.

Bilder, Metadaten, Messung

Bilder laufen über die eingebauten Komponenten: <Image /> setzt alt, loading und decoding und leitet die Bildmaße ab, damit kein Cumulative Layout Shift entsteht; <Picture /> erzeugt mehrere Formate und Größen mit Fallback. Remote-Bilder müssen in der Konfiguration freigegeben werden, Bilder aus public/ umgehen die Verarbeitung komplett. Vor dem Launch messen wir Lighthouse auf Staging, prüfen strukturierte Daten und testen jede Weiterleitung.

Launch, Nachmessung, Übergabe

Nach dem Go-live beobachten wir Indexierung, Rankings und Feld-Daten mehrere Wochen und korrigieren nach. Sie bekommen das Repository mit vollständiger Historie, die Zugänge auf Ihren Namen und eine README, die den Build erklärt. Wenn wir über Tempo sprechen, sprechen wir über Ihre Werte vor und nach der Migration – aus Ihrem Projekt, mit Ihren echten Nutzerdaten.

04 — Ehrliche Grenzen

Was Sie verlieren oder neu denken müssen.

Diese Seite wäre wertlos, wenn sie nur die Gewinnseite auflistet. Vier Dinge werden bei diesem Wechsel unbequem – und bei einem davon ist die richtige Antwort schlicht: bleiben Sie.

Geteilter Client-State über Routen hinweg

Das ist der härteste Punkt. In Next.js läuft die Anwendung im Browser weiter, während der Nutzer navigiert: Ein Warenkorb, eine Filter-Session, ein mehrstufiges Formular oder ein Audio-Player überstehen den Seitenwechsel, weil es technisch keinen Seitenwechsel gibt. Astro ist eine MPA – jede Navigation ist standardmäßig ein normaler Full-Page-Load. Zustand, der überleben soll, muss also irgendwo hin: in die URL, in Storage, in ein Cookie, auf den Server. View Transitions sind eingebaut und der <ClientRouter /> ist „a built-in, lightweight component to enable client-side routing“ – das glättet die Übergänge und hilft bei persistenten Elementen, ersetzt aber keine Anwendungs-Architektur. Wenn Ihr Produkt an durchgehendem Client-State hängt, ist das kein Umbau, sondern ein Argument gegen die Migration.

Eine stark interaktive Oberfläche

Islands sind ausdrücklich für den Fall gedacht, dass der Großteil der Seite statisches HTML ist und Interaktivität punktuell dazukommt. Kehrt sich dieses Verhältnis um – wenn also fast alles interaktiv ist und nur der Header nicht –, arbeiten Sie gegen das Modell. Sie bekommen dann viele Inseln, mehrere Hydrations-Grenzen und Kommunikation zwischen Inseln, die in einer durchgehenden React-Anwendung trivial gewesen wäre. Die Faustregel, die wir im Erstgespräch anlegen: Wenn Sie die interaktiven Komponenten Ihrer Seite nicht mehr auf einer Hand aufzählen können, prüfen wir sehr genau, ob wir Ihnen überhaupt zum Wechsel raten.

Next-spezifische Bausteine

Middleware-Muster, ISR-Semantik und die Komposition von Server-Komponenten im App Router sind keine allgemeinen Web-Konzepte, sondern Eigenschaften eines konkreten Frameworks. Es gibt für vieles davon in Astro einen Weg – für Personalisierung Server Islands über server:defer, für dynamische Routen export const prerender = false plus Adapter, für Caching die Konfiguration Ihrer Ziel-Laufzeit. Aber es ist ein anderer Weg, kein Port. Wer eine feingranulare Revalidierungsstrategie über tausende Routen betreibt, migriert nicht, sondern entwirft neu. Deshalb steht die Inventur dieser Abhängigkeiten in Schritt eins und nicht in der Nachbetrachtung.

Und wenn es wirklich eine Anwendung ist: bleiben Sie

Wir bauen individuelle Web-Anwendungen selbst – siehe individuelle Softwareentwicklung – und genau deshalb müssen wir Astro niemandem verkaufen. Ein sinnvoller Mittelweg wird häufig übersehen: die Anwendung bleibt in Next.js, die Marketing-Site und die Dokumentation ziehen um. Zwei Repositories, zwei Deployments, eine gemeinsame Domain über Routing-Regeln oder Subdomains. Das Marketing-Team bekommt eine schnelle, redaktionell pflegbare Seite, das Produktteam behält seinen Stack, und niemand muss ein funktionierendes Produkt anfassen. In der Mehrzahl der Anfragen, die uns zu diesem Thema erreichen, ist das die richtige Antwort.

Was danach dazukommt: die Website per Chat pflegen

Wir bauen nicht nur mit Astro, sondern setzen einen modernen KI-Stack darauf. Konkret heißt das: Ihr Team kann die Website im Chat bearbeiten – zum Beispiel über einen Telegram-Bot. Einen Text ändern, einen Blogbeitrag anlegen, ein Bild tauschen, einen Preis korrigieren: als Nachricht statt als CMS-Sitzung. Technisch funktioniert das genau deshalb, weil die Inhalte nach der Migration in einem typisierten, schema-validierten Content-Modell liegen – Content Collections mit Zod – oder in einem Headless CMS mit API. Beides ist maschinell adressierbar: Ein Agent kann nur Felder füllen, die es gibt, in Formaten, die validieren. Ein fehlerhafter Eingriff scheitert im Build, nicht auf der Live-Seite. Jede Änderung landet als nachvollziehbarer Commit mit Historie, Review-Möglichkeit und Rollback. Für ein Next.js-Projekt, dessen Inhalte in Props, Fetch-Aufrufen und handgetypten Objekten verteilt liegen, ist genau das der Schritt, der vorher fehlte.

Das ist keine Folienware: Wir betreiben bereits einen WhatsApp-KI-Agenten im echten Betrieb – Chat-Agenten sind hier Tagesgeschäft. Und weil dieser Absatz sonst nach Marketing klingt, die Grenzen gleich mit: Der Chat-Weg ergänzt ein Redaktionssystem mit Freigabestufen, er ersetzt es nicht. Die redaktionelle Verantwortung bleibt bei Ihnen – ein Agent schreibt und schlägt vor, er entscheidet nicht. Strukturelle Änderungen wie neue Seitentypen, Layouts oder Navigation bleiben Entwicklungsarbeit. Und der Umfang wird pro Projekt festgelegt: welche Collections, welche Felder, welche Freigabestufe. Das funktioniert für den Konzern mit Redaktionsteam genauso wie für die Einzelunternehmerin, die nie ein CMS öffnen wird. Wie das im Alltag aussieht, steht unter Website per Chat pflegen.

Stack

Astro 7 ist die aktuelle Major-Linie. Astro folgt Semantic Versioning; Extended Maintenance mit Security-Fixes gibt es für genau eine vorherige Major-Version. Die Lizenz ist MIT.

Was bleibt

React, Ihre Komponentenbibliothek, Ihr Design-System, Ihre URLs, Ihr Hosting-Anbieter. Offizielle Adapter im @astrojs-Scope gibt es für Node, Vercel und Cloudflare.

Messung

Wir messen Core Web Vitals vor und nach der Migration – mit Ihren eigenen Feld-Daten. Details unter Astro Performance-Optimierung.

05 — Zeitrahmen

Wie lange das dauert – und was die Spanne bewegt.

Preise stehen auf dieser Seite bewusst nicht. Zeiten schon, denn danach planen Sie. Die folgenden Spannen sind unsere Erfahrungswerte für genau die sieben Schritte oben – gerechnet ab Kickoff bis Go-live und unter der Annahme, dass Design und Inhalte nicht parallel neu erfunden werden.

  • Bestandsaufnahme: 3 bis 5 Arbeitstage – Repository durchgehen, Routen in „rein statisch“, „statisch mit einer Insel“ und „echt dynamisch“ sortieren, indexierte URLs ziehen, Feld-Daten holen, die Next-spezifischen Abhängigkeiten auflisten. Am Ende steht eine Empfehlung mit Aufwandsschätzung – ausdrücklich auch dann, wenn sie „nicht migrieren“ lautet.
  • Überschaubarer Fall: 4 bis 7 Wochen – Docs- oder Marketing-Site mit bis zu etwa sechs unterschiedlichen Seitentypen. Die Inhalte ziehen unverändert um, kein CMS im Spiel, eine Sprache, eine Handvoll interaktiver Komponenten, das Design bleibt wie es ist. Das ist der Fall, in dem sich ein Wechsel fast immer rechnet.
  • Typischer Fall: 8 bis 14 Wochen – Gewachsener Auftritt mit acht bis fünfzehn Seitentypen, angebundenes Headless CMS, zwei Sprachen, mehrere Routen mit On-Demand-Rendering und Adapter, dazu Formulare, Suche, Consent und Tracking. Hier verschiebt nicht die Seitenanzahl den Termin, sondern die Zahl der Templates und der Integrationen.
  • Darüber: Phasen statt einer Zahl – Feingranulare Revalidierung über tausende Routen, tiefe Middleware-Logik, ein Shop oder eine angebundene Anwendung: Dafür nennen wir keine Gesamtdauer, sondern schneiden das Vorhaben in Phasen mit eigener Abnahme. Häufig ist die erste Phase ohnehin nur die Website, während die Anwendung in Next.js bleibt.
  • Nach dem Go-live: 8 bis 12 Wochen Beobachtung – Indexierung, Positionen und Feld-Daten werden weiter beobachtet und nachkorrigiert, Weiterleitungen und Search Console kontrolliert. Das ist eine Zusage über unsere Aufmerksamkeit in diesem Zeitraum – nicht über Ihre Rankings. Letzteres kann niemand seriös versprechen, und wer es tut, sollte misstrauisch machen.

Was die Spanne nach oben zieht

Die Anzahl unterschiedlicher Templates – nicht die Seitenanzahl. Inhalte, die neu geschrieben statt umgezogen werden. Jede weitere Sprache. Ein CMS, das mit ausgewählt und modelliert werden muss. Jede Integration mit eigenem Vertrag: Suche, Personalisierung, Consent, Shop, Marketing-Automation. Und jeder Next-spezifische Baustein, an dem etwas Fachliches hängt.

Was sie nach unten zieht

Wenige Layouts. Sauberes MDX statt verstreuter Fetch-Aufrufe. Inhalte, die eins zu eins mitkommen. Ein Design, das bleibt. Und eine benannte Person auf Ihrer Seite, die entscheiden darf, ohne dafür ein Gremium zu befragen.

Der unterschätzte Faktor

Freigabezyklen. Zwei Korrekturschleifen mit einem Tag Reaktionszeit sind eine Woche. Dieselben zwei Schleifen mit einem Abstimmungstermin pro Woche und drei Meinungen im Raum sind ein Monat. Diese Variable liegt nicht bei uns – wir schreiben sie deshalb vor Projektstart in den Plan.

Und die Kosten?

Bleiben bei unserem Muster: eine nachvollziehbare Schätzung nach der Bestandsaufnahme, mit offengelegten Annahmen. Woran die Zahl hängt, steht ausgeschrieben unter Astro Kosten.

Migration prüfen lassen – auch mit dem Ergebnis „bleiben Sie“.

Schildern Sie in drei Sätzen, was Ihr Next.js-Projekt heute ist: Marketing-Site, Docs, Produkt oder alles zusammen. Sie bekommen eine begründete Einschätzung, ob der Wechsel etwas bringt – und wenn nicht, warum nicht.

06 — Auf einen Blick

Next.js zu Astro auf einen Blick.

Neun Zeilen für alle, die den Rest dieser Seite später lesen. Die letzte Zeile ist unsere Meinung, keine Feststellung – und sie ist so formuliert, dass man ihr widersprechen kann.

Astro-Angaben nach der offiziellen Dokumentation. Zeitangaben sind unsere Erfahrungswerte, keine Zusage.
FrageKurze Antwort
Wofür sich der Wechsel lohnt Marketing-Auftritt, Dokumentation, Blog, Karriere- und Landingpages – alles, was im Kern Inhalt ist und nur punktuell interaktiv wird.
Wofür nicht Anwendungen mit Login, Rollen, geteiltem Client-State über Routen hinweg oder einer überwiegend interaktiven Oberfläche. Dann bleibt Next.js das passendere Werkzeug, und wir sagen Ihnen das.
Was aus React wird Es bleibt. Astro ist UI-Framework-agnostisch und hat eine offizielle React-Integration; bestehende Komponenten laufen als Islands weiter und werden nur über eine client:*-Direktive hydratisiert.
Was aus den URLs wird Sie bleiben nach Möglichkeit identisch. Jede unvermeidbare Abweichung bekommt eine 301-Weiterleitung – geschrieben vor der Migration, getestet vor dem Go-live.
Was sich im Betrieb ändert Statisches HTML als Standard-Auslieferung, Client-JavaScript nur auf Anforderung. On-Demand-Rendering braucht einen Adapter für Ihre Ziel-Laufzeit; offiziell im @astrojs-Scope gibt es Node, Vercel und Cloudflare.
Wie Inhalte danach gepflegt werden Content Collections mit Zod-Schema oder ein angebundenes Headless CMS – Astro ist CMS-agnostisch. Auf Wunsch zusätzlich per Chat, mit jeder Änderung als nachvollziehbarem Commit.
Wie lange es dauert Überschaubarer Fall 4 bis 7 Wochen, typischer Fall 8 bis 14 Wochen, größere Vorhaben in Phasen – danach 8 bis 12 Wochen Beobachtung. Die Variablen stehen unter Zeitrahmen.
Was es kostet Steht nicht auf dieser Seite, weil jede Zahl vor der Bestandsaufnahme geraten wäre. Nach dem Erstgespräch bekommen Sie eine Schätzung mit offengelegten Annahmen; die Kostentreiber sind unter Astro Kosten aufgeschrieben.
Unsere Einschätzung Die meisten Gespräche zu diesem Thema enden nicht bei „alles migrieren“, sondern bei „die Anwendung bleibt, die Website zieht um“. Wer eine reine Content-Site in Next.js betreibt, gewinnt beim Wechsel echte Betriebseinfachheit. Wer eine Anwendung betreibt, tauscht nur eine Komplexität gegen eine andere – und das sagen wir lieber im Erstgespräch als in Woche sechs.
07 — FAQ

Häufige Fragen zur Migration von Next.js zu Astro.

Können wir unsere React-Komponenten behalten?

Ja – das ist der wichtigste technische Punkt dieser Migration. Astro ist UI-Framework-agnostisch und hat eine offizielle React-Integration, neben Preact, Svelte, Vue, SolidJS und Alpine.js. Eine bestehende Komponente wird importiert und über eine client:*-Direktive als Insel montiert. Komponenten mehrerer Frameworks lassen sich kombinieren, aber nur innerhalb einer .astro-Datei. Ihre Komponentenbibliothek wird also nicht weggeworfen, sondern selektiver eingesetzt.

Was passiert mit Server-Komponenten und dem App Router?

Die Konzepte werden nicht portiert, sondern ersetzt. In Astro ist Server-Rendering die Voreinstellung, nicht eine Komponenten-Eigenschaft: Standardmäßig wird die gesamte Seite vorgerendert und als HTML ausgeliefert. Dynamik entsteht dort, wo Sie sie anfordern – über export const prerender = false plus Adapter für die Route oder über Server Islands mit server:defer für einzelne Bereiche. Wer tief in App-Router-Komposition investiert hat, sollte diesen Aufwand vor der Entscheidung ehrlich beziffern.

Wir sind noch auf dem Pages Router. Macht das die Migration einfacher?

Meistens ja. Der Pages Router liegt näher an einem klassischen Seitenmodell: eine Datei, eine Route, ein Datenaufruf pro Seite. Genau das bildet Astro direkt ab – dateibasiertes Routing, Daten beim Build oder beim serverseitigen Rendern der Route. Aufwendiger wird es dort, wo verschachtelte Layouts mit eigenen Ladezuständen und Server-Component-Komposition tief verzahnt sind. Wir zählen diese Stellen in Schritt eins, bevor irgendjemand eine Zahl nennt.

Was wird aus unserer Middleware?

Middleware-Muster sind eine Eigenschaft von Next.js, kein allgemeines Web-Konzept – deshalb gibt es keinen Port, sondern eine Sortierung nach Zweck. Weiterleitungen und Rewrites gehören ohnehin in die 301-Liste oder in Ihre Hosting- und CDN-Schicht. Personalisierung lässt sich als Server Island über server:defer lösen, das unabhängig serverseitig rendert, ohne das erste Rendering zu blockieren. Zugriffsschutz für echte Benutzerkonten ist dagegen ein Anwendungsthema – und ein Argument dafür, diesen Teil in Next.js zu lassen.

Wir arbeiten mit ISR. Gibt es in Astro ein Gegenstück zur Revalidierung?

Kein Eins-zu-eins-Gegenstück, und das sagen wir lieber vorher als hinterher. ISR-Semantik ist Next-spezifisch. In Astro führen drei Wege zum selben Ziel: vorgerendertes HTML, das bei Inhaltsänderung neu gebaut und deployt wird; einzelne Routen mit export const prerender = false plus Adapter, die bei jedem Aufruf serverseitig rendern; und Server Islands über server:defer, bei denen Shell und Hauptinhalt aggressiv gecacht werden, während personalisierte Elemente nachladen. Wer feingranular über tausende Routen revalidiert, migriert nicht – der entwirft neu.

Was passiert mit unseren API-Routen?

Erst wird sortiert, dann portiert. Endpunkte, die zur Website gehören – Formularannahme, Webhook, Suchindex, Newsletter-Anmeldung –, laufen nach demselben Muster wie jede dynamische Route: export const prerender = false und der Adapter für Ihre Ziel-Laufzeit. Endpunkte, die fachlich zur Anwendung gehören, bleiben besser dort, wo die Anwendung ist, oder werden ein eigener Dienst. Sie mitzunehmen, nur weil sie im selben Repository lagen, ist die häufigste vermeidbare Fehlentscheidung bei diesem Wechsel.

Wir setzen überall next/image ein. Müssen wir jedes Bild neu anfassen?

Die Aufrufe werden ersetzt, die Bilddateien nicht. Astro bringt eine eingebaute Bildoptimierung mit: Die Image-Komponente setzt alt, loading und decoding und leitet die Bildmaße ab, damit kein Cumulative Layout Shift entsteht; die Picture-Komponente erzeugt mehrere Formate und Größen mit Fallback. Sharp ist der Default-Image-Service. Zwei Punkte kosten Zeit: Remote-Bilder müssen in der Konfiguration freigegeben werden, und Bilder aus public/ umgehen die Verarbeitung komplett – Letzteres ist beim Umzug oft ein stiller Qualitätsverlust, wenn niemand hinsieht.

Unsere Seite ist zweisprachig. Wie läuft das i18n-Routing in Astro?

Jede Sprachfassung ist eine eigene Route mit eigenem URL-Präfix, und genau dort liegt die Migrationsarbeit: URL-Mapping pro Sprache, hreflang-Paare, Canonicals. Die Inhalte modellieren wir pro Sprache in Content Collections; das Zod-Schema validiert jede Fassung einzeln und meldet fehlende Übersetzungen im Build statt auf der Live-Seite. Ehrlich zum Aufwand: Jede weitere Sprache ist nach der Zahl der Templates der zweitgrößte Terminschieber. Diese Website hier läuft selbst zweisprachig – wir kennen die Stolperstellen aus dem eigenen Betrieb.

Wir liegen mit der Anwendung in einem Monorepo. Passt Astro da hinein?

Ja. Eine Astro-Site ist ein eigenes Paket mit eigenem Build; ob es im bestehenden Monorepo neben der Anwendung liegt oder in einem separaten Repository, ist eine Organisations- und keine Framework-Entscheidung. Gemeinsam genutzte React-Komponenten lassen sich als Workspace-Paket importieren, weil Astro React offiziell einbindet. Der ehrliche Haken: Komponenten, die Next-spezifische Importe voraussetzen, müssen an diesen Stellen umgeschrieben werden. Wie viele das sind, steht nach der Bestandsaufnahme fest – nicht vorher.

Wir hosten auf Vercel. Müssen wir umziehen?

Nein. Statisch ist bei Astro der Standard, und vorgerendertes HTML läuft praktisch überall. Für On-Demand-Rendering gibt es offizielle Adapter im @astrojs-Scope für Node, Vercel und Cloudflare – Sie können also bleiben, in eine eigene Node-Umgebung wechseln oder zu Cloudflare gehen. Wir entscheiden das nach Ihrer Betriebsrealität, nicht nach Geschmack: Wer heute ein funktionierendes Deployment mit Preview-Umgebungen und einer eingespielten Pipeline hat, sollte es nicht nebenbei mitmigrieren.

Wird die Seite nach der Migration messbar schneller?

Das hängt davon ab, wie viel Client-JavaScript Ihre Seiten heute wirklich brauchen. Der strukturelle Unterschied ist eindeutig: Astro entfernt standardmäßig sämtliches Client-seitige JavaScript aus Komponenten, während Hydration im React-Modell der Normalfall ist. Zahlen nennen wir trotzdem erst, wenn wir gemessen haben. Wir erheben Ihre Core Web Vitals vor und nach dem Wechsel mit Ihren eigenen Feld-Daten – fremde Benchmarks sagen über Ihr Projekt nichts aus.

Verlieren wir beim Umzug unsere Rankings?

Nicht, wenn der Umzug geplant wird. Wir ziehen vor Beginn alle indexierten URLs, halten die URL-Struktur nach Möglichkeit identisch und schreiben für jede Abweichung eine 301-Weiterleitung, bevor migriert wird. Titel, Überschriftenstruktur und strukturierte Daten der tragenden Seiten bleiben stabil, die Weiterleitungen werden vor dem Go-live getestet. Nach dem Launch beobachten wir Indexierung und Positionen mehrere Wochen und korrigieren nach. Eine Garantie gibt es nicht, und wer sie ausspricht, kann sie nicht halten.

Wie lange dauert eine Migration von Next.js zu Astro?

Den Rahmen bestimmen drei Größen, und die Seitenanzahl gehört nicht dazu: die Zahl unterschiedlicher Seitentypen, die Tiefe des Content-Modells und die Zahl der Next-spezifischen Bausteine, an denen etwas hängt. Als Erfahrungswert: eine Docs- oder Marketing-Site mit wenigen Layouts, einer Sprache und ohne CMS liegt bei 4 bis 7 Wochen, ein gewachsener Auftritt mit CMS, zwei Sprachen und mehreren dynamischen Routen bei 8 bis 14 Wochen. Größeres schneiden wir in Phasen. Alle Variablen stehen unter Zeitrahmen.

Wir haben 4.000 Blogbeiträge. Gibt es während der Umstellung eine Downtime?

Ihre alte Seite bleibt online, bis die neue abgenommen ist – gebaut wird parallel auf Staging. Die Umstellung selbst ist ein Wechsel des Ziels mit fertig getesteten Weiterleitungen, geplant in eine verkehrsarme Stunde. Eine Zusage über null Sekunden geben wir nicht, weil DNS- und Cache-Verhalten nicht in unserer Hand liegen. Zur Menge: Content Collections bringen ein eingebautes Caching für tausende Einträge mit. 4.000 Beiträge sind damit eine Build-Frage. Aufwendig wird es erst, wenn diese 4.000 Beiträge zwölf verschiedene Layouts benutzen.

Können wir schrittweise migrieren statt in einem Rutsch?

Ja, und das ist oft der vernünftigere Weg. Der übliche Zuschnitt: Die Anwendung bleibt in Next.js, während Marketing-Site, Blog und Dokumentation nach Astro ziehen. Zwei Deployments unter einer gemeinsamen Domain, aufgeteilt über Routing-Regeln oder Subdomains. Das Produktteam behält seinen Stack, das Marketing bekommt eine Seite, die es ohne Entwicklung pflegen kann. Innerhalb eines Projekts migrieren wir andernfalls seitentypweise, beginnend bei den Routen ohne Interaktivität.

Macht ein Nischen-Framework es schwerer, Entwickler zu finden?

Der Einwand ist berechtigt, trifft aber weniger hart, als er klingt. Der Großteil Ihres Codes bleibt React – dafür stellen Sie ein wie bisher. Eine .astro-Datei ist im Kern HTML mit einem Skriptteil davor; wer React kann, ist nach unserer Erfahrung in wenigen Tagen produktiv. TypeScript ist eingebaut, mit drei tsconfig-Presets und astro check für die Typprüfung. Ehrlich bleibt trotzdem: Eine Stellenanzeige mit „Next.js“ bekommt mehr Bewerbungen als eine mit „Astro“. Deshalb schreiben wir die README so, dass sie ohne uns verständlich ist.

Können wir das Projekt intern weiterentwickeln – und was passiert, wenn wir uns trennen?

Sie können, und dafür ist gesorgt, bevor es nötig wird. Das Repository gehört Ihnen, mit vollständiger Historie; die Zugänge laufen auf Ihren Namen, der Build ist in einer README erklärt. Astro ist freie Open-Source-Software unter MIT-Lizenz – es gibt keine Lizenz, die bei einem Anbieterwechsel erlischt. Zu den Upgrades: Astro folgt Semantic Versioning, aktuelle Major-Linie ist Astro 7, und Extended Maintenance mit Security-Fixes gibt es für genau eine vorherige Major-Version. Ein planbarer Rhythmus – aber keiner, den man drei Jahre ignorieren kann.

Wer haftet, wenn nach dem Launch etwas kaputt ist?

Für das, was wir gebaut haben, wir. Vor dem Go-live steht eine Abnahme mit Mängelliste; Fehler in unserer Umsetzung beheben wir danach im vertraglich vereinbarten Gewährleistungszeitraum ohne zusätzliche Rechnung. Nicht dazu gehören inhaltliche Fehler, Ausfälle von Drittdiensten und Änderungen, die Ihr Team selbst einspielt. Weil jede Änderung ein Commit ist, lässt sich im Zweifel nachvollziehen, was wann passiert ist – und zurückrollen. Für den laufenden Betrieb gibt es Support und Wartung als eigene Vereinbarung.

Können wir Inhalte nach der Migration ohne Entwickler pflegen?

Ja. Inhalte liegen dann in Content Collections mit Zod-Schema oder in einem angebundenen Headless CMS – Astro ist CMS-agnostisch und arbeitet als reine Präsentationsschicht. Ohne CMS bearbeitet Ihr Team Markdown direkt im Repository, das Schema meldet fehlende Felder vor dem Deploy. Zusätzlich richten wir auf Wunsch die Pflege per Chat ein: Text ändern, Beitrag anlegen, Bild tauschen als Nachricht an einen Telegram-Bot, jede Änderung als nachvollziehbarer Commit. Neue Seitentypen und Layouts bleiben Entwicklungsarbeit.

Wann sollten wir einfach bei Next.js bleiben?

Wenn Ihr Produkt eine Anwendung ist. Wenn geteilter Client-State über Routen hinweg zum Produktversprechen gehört. Wenn große Teile der Oberfläche echt interaktiv sind statt dekorativ interaktiv. Und wenn es schlicht läuft, gemessen schnell genug ist und niemand Schmerzen hat – das letzte Kriterium wird am häufigsten unterschätzt. Eine Migration kostet Zeit, Aufmerksamkeit und Risiko; sie muss etwas zurückgeben, das über „moderner“ hinausgeht. Sehen wir das in Ihrem Fall nicht, steht es so in der Empfehlung.

Ist Astro kostenlos?

Ja. Astro ist freie Open-Source-Software unter MIT-Lizenz; für das Framework selbst fällt keine Lizenzgebühr an. Kosten entstehen durch Entwicklung, Hosting und die Dienste, die Sie anbinden – also durch das Projekt, nicht durch das Werkzeug.

Wer steckt hinter Astro?

Astro ist ein quelloffenes Projekt, das öffentlich im withastro-Repository auf GitHub entwickelt wird. Der Lizenztext steht unter MIT, das Copyright darin liegt bei Fred K. Schott. Es gibt kein Abonnement und keinen Anbieter, der Ihnen den Zugang abschalten könnte.

Braucht Astro einen Server?

Standardmäßig nicht: Die gesamte Seite wird vorgerendert, an den Browser gehen statische HTML-Seiten. Eine Laufzeit brauchen Sie erst für Rendering auf Anfrage – dann kommt ein Adapter dazu, offiziell für Node, Vercel oder Cloudflare.

Ist Astro gut für SEO?

Die Voraussetzungen stimmen: Server-Rendering als Standard, statisches HTML in der Auslieferung, eine Bildkomponente, die Maße ableitet und damit Layout-Verschiebungen vermeidet. Den Ausschlag geben trotzdem URL-Kontinuität, Inhalt und interne Verlinkung – nicht das Framework.

Ist Ihr Next.js-Projekt eine Anwendung – oder Inhalt?

Beschreiben Sie kurz, was heute live ist und wo es weh tut. Sie bekommen eine ehrliche Einschätzung zu Wechsel, Aufwand und Alternativen. In der Regel innerhalb von 24 Stunden.

— Kontakt

Next.js-zu-Astro-Migration anfragen.

Repository-Umfang, Seitentypen, Next-spezifische Abhängigkeiten – drei Sätze genügen für eine erste Einschätzung.

Jetzt anrufen +49 155 63582204 WhatsApp schreiben E-Mail schreiben

Antwort in der Regel innerhalb von 24 Stunden.
Remote & vor Ort – DACH-weit tätig (DE, AT, CH), internationale Projekterfahrung inklusive.

Worum geht es?
Zeitrahmen (optional)

Ihre Angaben werden nur zur Bearbeitung der Anfrage verwendet – keine Newsletter, keine Weitergabe.