Drupal University Migration zu Next.js
Ihre letzte CMS-Migration. Das versprechen wir.
Why leave Drupal (D7/D8/D9/D10)?
- Every major Drupal version upgrade (D7→D8, D9→D10, D10→D11) is essentially a forced migration costing $30–60K.
- Department subsites on Drupal multisite create duplicated infrastructure and inconsistent module management across 15–30 installations.
- Drupal Views generate full page loads on every filter interaction, making program finders and faculty directories sluggish on mobile.
- Contributed modules break on major version upgrades, requiring replacement or custom patches for education-specific functionality.
- Drupal's permission system is application-level, not database-level, making multi-department content governance fragile and prone to misconfiguration.
What you gain
- Supabase Row Level Security enforces department content boundaries at the database level — structurally impossible to bypass.
- Program finders and faculty directories return filtered results in under 100ms with no full page reload via Next.js server components.
- Native SAML 2.0 support in Supabase Auth connects directly to university identity providers (Shibboleth, ADFS, Okta) without custom code.
- One Next.js application replaces 15–30 department subsites with /departments/[slug] routes and department-scoped admin access.
- No forced CMS migrations — Next.js and Supabase update incrementally without breaking changes that require full rebuilds.
Drupal an Universitäten: Migration zu Next.js + Supabase
Harvard verwendet Drupal. Ebenso Yale, Princeton, Stanford und Duke. Ebenso Ihre Universität. Sie kennen den Upgrade-Zyklus: D7 zu D8 war ein kompletter Neuaufbau. D8 zu D9 erforderte erhebliche Arbeit. D9 zu D10 beschädigte beigetragene Module. D10 zu D11 kommt Ende 2026 mit Symfony 7 und Twig 4. Für die Kosten einer weiteren Drupal-Migration kann Ihre Universität zu Next.js + Supabase wechseln und sich nie wieder einer erzwungenen CMS-Migration stellen.
Dies ist unser bildungsspezifisches Migrationsleitfaden. Für einen allgemeinen Überblick siehe unsere Drupal-Migrationsseite. Diese Seite behandelt, was Universitäts-Drupal-Installationen einzigartig komplex macht — und wie wir jedes Teil handhaben.
Das Drupal-Ökosystem für Hochschulen
Universitäts-Drupal-Installationen sind nicht wie Corporate-Websites. Es sind ausgedehnte, Multi-Stakeholder-Systeme — bildungsspezifische Inhaltstypen, tief verschachtelte Taxonomien, Abteilungs-Subsites mit unabhängigen Bearbeitern, Integrationen mit Studenteninformationssystemen. Ein generischer Migrationsansatz wird scheitern.
Bildungsspezifische Inhaltstypen
Ihre Drupal-Instanz hat wahrscheinlich 10+ benutzerdefinierte Inhaltstypen für Hochschulen:
- Program — Informationen zu Abschlüssen, Zertifikaten und Kursen mit Kreditstunden, Gebühren, Lieferart, Karriereergebnissen
- Faculty — Profile mit Forschungsinteressen, Publikationen, unterrichteten Kursen, Sprechzeiten
- Department — hierarchische Struktur (School of Engineering → CS Department → AI Lab)
- Event — akademischer Kalender, öffentliche Veranstaltungen, Abschlussfeier, abteilungsspezifische Veranstaltungen
- News — Universitätsnews, Abteilungsnews, Forschungsankündigungen, Pressemitteilungen
- Page — Hunderte von grundlegenden Inhaltseiten (About, Admissions, Financial Aid)
- Publication — Forschungspapiere, Berichte, Richtliniendokumente mit DOI-Links
- Job Posting — Positionen für Fakultäten, Mitarbeiterpositionen, Studentenbeschäftigung
- Profile — Verzeichniseinträge für Mitarbeiter ohne Fakultäten
- Testimonial — Erfolgsgeschichten von Studierenden und Alumni
Jeder bildet eine Supabase-Tabelle mit ordnungsgemäßem Relationaldesign. Programme erhalten degree_level, subject_area_id, delivery_mode, tuition und career_outcomes als JSONB. Fakultäten erhalten einen department_id Fremdschlüssel, publications als JSONB und research_areas als Array. Abteilungen verwenden parent_id für selbstreferenzielle Hierarchie.
Dies ist keine flache Inhaltsablage. Es ist ein ordnungsgemäßes relationales Schema, das Ihre Daten auf Weise abfragbar macht, die Drupal Views nie könnten.
Drupal Views → Next.js Server Components
Universitäts-Websites verlassen sich stark auf Drupal Views für filterbare Listen. Jeder von diesen wird zu einer schnelleren, flexibleren Next.js-Seite:
- Program Finder — Drupal View Filterung nach Thema, Abschlussgrad, Campus → Next.js
/programsSeite mit Supabase-Abfrage + URL-basiertem Filterzustand. Zukünftige Studierende filtern nach Interessengebiet und erhalten sofortige Ergebnisse. - Faculty Directory — Drupal View Filterung nach Abteilung, Forschungsgebiet → Next.js
/facultySeite mit Volltextsuche und Abteilungsfilterung gegen Supabase. - Event Calendar — Drupal View Filterung nach Datum, Abteilung, Typ → Next.js
/eventsSeite mit Datumsbereichsfilterung und iCal-Export. - News Feed — Drupal View Filterung nach Abteilung, Kategorie → Next.js
/newsSeite mit ISR, damit neue Artikel innerhalb von 60 Sekunden nach Veröffentlichung erscheinen. - Job Board — Drupal View Filterung nach Abteilung, Beschäftigungstyp → Next.js
/careersSeite, die Daten aus Supabase mit Schließungsdatum-Logik abruft.
Der Unterschied: Drupal Views generieren vollständige Seite-Ladevorgänge bei jeder Filteränderung. Next.js Server Components mit Supabase geben gefilterte Ergebnisse in unter 100ms zurück, ohne einen vollständigen Seite-Neuaufbau.
Drupal Taxonomy → Supabase Relations
Drupal-Taxonomie-Vokabulare ordnen sich Tabellen zu:
- Subject Areas Vokabular →
subject_areasTabelle,programs.subject_area_idFK - Departments Vokabular →
departmentsTabelle mitparent_idfür Hierarchie - Campus Locations Vokabular →
campusesTabelle,programs.campus_idFK - Research Areas Vokabular →
research_areasTabelle +faculty_research_areasJoin-Tabelle - Event Types Vokabular →
event_typeEnum-Spalte oder Nachschlagetabelle
Drupal Entity Reference-Felder werden zu ordnungsgemäßen Fremdschlüsseln. Viele-zu-viele-Beziehungen (Faculty ↔ Research Areas) erhalten Join-Tabellen. Das Datenmodell wird explizit, anstatt hinter Drupals Entity API verborgen zu sein.
Paragraphs + Layout Builder → Component Blocks
Drupal Paragraphs sind der größte Schmerzpunkt bei Universitätmigrationen. Ihre Redaktion hat Seiten mit Dutzenden von Paragraph-Typen erstellt: Hero-Banner, Statistik-Abschnitte, Fakultäts-Spotlight, Programmkarten-Gitter, Accordion-FAQs, eingebettete Videos, Call-to-Action-Blöcke.
Wir speichern diese als JSONB in Supabase's pages.blocks Spalte:
[
{"type": "hero", "title": "...", "subtitle": "...", "image": "...", "cta_url": "..."},
{"type": "stats", "items": [{"number": "15:1", "label": "Student-Faculty Ratio"}]},
{"type": "program_cards", "program_ids": [12, 45, 78]},
{"type": "faculty_spotlight", "faculty_id": 234}
]
Eine Next.js-Komponenten-Registry rendert jeden Block-Typ. Redakteure verwalten Blöcke über Payload CMS oder ein benutzerdefiniertes Admin-Interface. Gleiche Flexibilität wie Paragraphs, schnelleres Rendering und kein Drupal-Cache-Rebuild-Warten.
Multi-Site Department Subsites
Große Universitäten betreiben 15–30 Drupal-Subsites — School of Business, School of Engineering, College of Arts & Sciences — jede auf separaten Drupal-Installationen oder Drupal multisite. Dies ist ein operativer Alptraum: Modul-Updates über 20 Websites, inkonsistentes Theming, duplizierte Infrastruktur.
Wir konsolidieren alles in einer Next.js-Anwendung mit /departments/[slug] Routes. Jede Abteilung erhält ihren eigenen Abschnitt mit Sub-Brand-Identität (benutzerdefinierte Akzentfarben innerhalb des Universitätsdesign-Systems). Abteilungsseiten, News, Veranstaltungen und Fakultäten begrenzen sich alle auf ihre Abteilung.
Der Schlüssel: Supabase Row Level Security (RLS). Abteilungsredakteure sehen und bearbeiten nur Inhalte, wo department_id ihrer zugewiesenen Abteilung entspricht. Der Redakteur der School of Business kann versehentlich keine Engineering-Inhalte bearbeiten. RLS erzwingt dies auf der Datenbankebene — nicht im Anwendungscode, nicht in CMS-Berechtigungen. Es ist strukturell.
Student Portal und SSO-Integration
Ihre aktuelle Drupal-Website authentifiziert Studierenden über CAS oder Shibboleth und verbindet sich mit Ihrem Identitätsanbieter (ADFS, Okta oder ein universitätsverwalteter Shibboleth IdP). Studierenden sehen personalisierte Inhalte: ihre Programmziele, Beraterinformationen, abteilungsspezifische Ressourcen.
Supabase Auth unterstützt SAML 2.0 nativ. Wir konfigurieren den Identitätsanbieter Ihrer Universität als SAML-Anbieter in Supabase. Der Ablauf:
- Studierender klickt "Sign In" auf der Next.js-Website
- Umleitung zu Universität IdP (Shibboleth/ADFS/Okta)
- Studierender authentifiziert mit Universitätsanmeldedaten
- IdP sendet SAML-Assertion zurück zu Supabase
- Supabase gibt einen JWT mit der Rolle und Abteilung des Studierenden aus
- RLS-Richtlinien kontrollieren, welche Daten sie sehen
Kein benutzerdefinierter Authentifizierungscode. Keine Session-Management-Kopfschmerzen. Der JWT trägt Claims, und Supabase RLS liest sie.
User Role Migration
Drupal-Rollen an Universitäten — Site Admin, Web Editor, Department Editor, Faculty, Student, Alumni — mappen zu einer user_roles Tabelle in Supabase mit Pro-Benutzer-Rollenzuweisungen. RLS-Richtlinien referenzieren diese Rollen:
- Site Admin: vollständiges Lesen/Schreiben auf allen Tabellen
- Department Editor: Lesen/Schreiben wo
department_id = auth.jwt()->department_id - Faculty: aktualisiere ihr eigenes Profil, füge Publikationen hinzu
- Student: schreibgeschützt auf öffentliche Inhalte, personalisiertes Dashboard-Daten
Die 7-Phasen-Bildungsmigration
Phase 1: Discovery und Content Audit (1–2 Wochen)
Screaming Frog Crawl aller URLs. Google Search Console Traffic-Analyse zur Identifizierung Ihrer wertvollsten Seiten. Inhaltstyp-Inventar über alle Subsites. Integrations-Audit: Was verbindet sich mit Drupal? Banner? PeopleSoft? Canvas? Slate? Barrierefreiheit-Baseline mit Lighthouse-Scores und etwaigen vorhandenen ADA-Beschwerde.
Phase 2: Architektur und Schema-Design (1 Woche)
Supabase-Schema mit Tabellen, Beziehungen und RLS-Richtlinien. Next.js Route-Struktur. Navigationshierarchie. Entscheidung über Admin-Interface: Payload CMS für nicht-technische Redakteure oder ein benutzerdefiniertes Supabase-Dashboard. Integrationsarchitektur für SSO, SIS-Datenabrufe und CRM-Webhooks.
Phase 3: Datenexport aus Drupal (1–2 Wochen)
D8/D9/D10: JSON:API Export via /jsonapi/node/program?page[limit]=50, paginiert durch jeden Inhaltstyp. D7: direkte MySQL-Abfragen gegen Drupals Feldtabellen. Medien-Export aus public:// und private:// Dateisystemen. Benutzer- und Taxonomie-Exporte. Menüstruktur-Extraktion.
Phase 4: Build (3–8 Wochen)
Next.js-Anwendung mit allen Seiten-Templates. Supabase-Tabellen mit transformierten Daten und aktive RLS-Richtlinien gefüllt. Program Finder mit facettierten Filtern. Fakultätsverzeichnis mit Suche. Abteilungsabschnitte. Student Portal mit SSO. Admin-Interface. Alle Integrationen — SIS-Datenabrufe, CRM-Webhooks, Campus-Tour-Buchung.
Phase 5: Content Import und Validierung (1–2 Wochen)
Drupal-Exporte zu Supabase-Insert-Scripts transformieren. Alle Inhaltstypen importieren. Medien zu Supabase Storage oder Vercel Blob hochladen. Medien-URLs in Inhalten umschreiben. Stichprobe 10% von jedem Inhaltstyp. Jede Filter-, Such- und Navigationspfad testen.
Phase 6: Redirect Mapping (1 Woche)
Dies ist kritisch für Universitäten. Ihre .edu-Domain hat Tausende von Backlinks von anderen Bildungsinstitutionen, Regierungswebsites und Forschungsdatenbanken. Diese Backlinks zu verlieren ist katastrophal für SEO-Autorität. Wir mappen jede Drupal-URL — Aliase, Systempfade (/node/1234) und Subsite-URLs — zu neuen Next.js Routes. Implementiert via Next.js Middleware für unbegrenzte Redirect-Kapazität.
Phase 7: Launch und Monitoring (laufend)
DNS-Cutover. Neue Sitemap-Einreichung zu Google Search Console. Tägliche 404-Überwachung für die ersten 30 Tage. Schulung des Personals für Payload CMS oder benutzerdefiniertes Admin. Schulung des Abteilungs-Admin. Schulung des Fakultäts-Selbstaktualisierungs-Workflows. 30-Tage-Hypercare mit täglicher Überwachung und wöchentlichen Check-ins mit Ihrem Web-Team.
Preisgestaltung
| Institutionstyp | Seiten | Umfang | Zeitrahmen | Investment |
|---|---|---|---|---|
| Community College | Unter 500 | Program Finder, grundlegendes Verzeichnis, News | 6–8 Wochen | 50–80K € |
| Mid-Size University | 500–2.000 | Program Finder, Fakultätsverzeichnis, Abteilungsabschnitte, Veranstaltungen | 8–12 Wochen | 80–150K € |
| Large University | 2.000+ | Multi-Campus, Abteilungs-Subsites, Student Portal, SSO, i18n | 10–16 Wochen | 120–200K € |
Warum jetzt: Die D11 Uhr tickt
Drupal 11 kommt Ende 2026 mit Symfony 7 und Twig 4. Universitäten auf D10 sehen sich der Migrationsentscheidung in den nächsten 6–12 Monaten gegenüber. Eine D10-zu-D11-Migration kostet mindestens 30–60K € — und Sie sehen D12 in weiteren 3–4 Jahren.
Eine Next.js + Supabase-Migration kostet 50–200K € je nach Umfang, aber die Gesamtbetriebskosten über 5 Jahre sind niedriger als das Verbleiben bei Drupal. Keine erzwungenen Upgrades. Keine beigetragenen Modulfehler. Keine Drupal-Sicherheitshinweise, die Notfall-Patches erfordern. Ihr Framework wird nach Ihrem Zeitplan aktualisiert, nicht Drupals.
Für die Kosten einer weiteren Drupal-Migration, machen Sie sie zu Ihrer letzten.
The migration process
Discovery & Audit
We map every page, post, media file, redirect, and plugin. Nothing gets missed.
Architecture Plan
New stack designed for your content structure, SEO requirements, and performance targets.
Staged Migration
Content migrated in batches. Each batch verified before the next begins.
SEO Preservation
301 redirects, canonical tags, sitemap, robots.txt — every ranking signal carried over.
Launch & Monitor
DNS cutover with zero downtime. 30-day monitoring period included.
Drupal (D7/D8/D9/D10) vs Next.js + Supabase
| Metric | Drupal (D7/D8/D9/D10) | Next.js + Supabase |
|---|---|---|
| Lighthouse Mobile | 35-55 | 90-100 |
| TTFB | 1.8-3.5s | <0.3s |
| Program Finder Filter Response | 2-4s (full page load) | <100ms (server component) |
| Hosting Cost (multi-site) | $2,000-5,000/mo | $200-600/mo |
| Drupal Upgrade Cost (per cycle) | $30-60K every 3-4 years | $0 (incremental updates) |
| Department Content Isolation | Application-level permissions | Database-level RLS |
Common questions
How is a university Drupal migration different from a regular Drupal migration?
University Drupal installations have education-specific content types (programs, faculty, departments), complex taxonomy hierarchies, department subsites with independent editors, SSO integration with campus identity providers, and connections to student information systems like Banner or PeopleSoft. Generic migration approaches miss these requirements entirely.
Can we keep our university SSO (Shibboleth/CAS) with Next.js?
Yes. Supabase Auth supports SAML 2.0 natively. We configure your university's identity provider — whether Shibboleth, ADFS, or Okta — as a SAML provider in Supabase. Students and staff authenticate through your existing IdP, and Supabase issues JWTs that control access via Row Level Security policies.
How do department editors manage their own content without affecting other departments?
Supabase Row Level Security (RLS) enforces content boundaries at the database level. A department editor assigned to the School of Business can only create, edit, and delete content where `department_id` matches their assignment. This is structural — not application-level permissions that can be bypassed.
What happens to our Drupal Paragraphs and Layout Builder pages?
Paragraph types export as structured JSONB blocks stored in Supabase. Each paragraph type — hero, stats, faculty spotlight, program cards — maps to a React component in a Next.js component registry. Editors manage blocks through Payload CMS or a custom admin interface with the same flexibility they had in Drupal.
Will we lose SEO rankings during the migration?
Not if redirects are handled correctly. University .edu domains carry significant authority from backlinks across educational institutions and government sites. We map every Drupal URL to its new Next.js equivalent, implement redirects via Next.js middleware, and monitor 404 errors daily for 30 days post-launch.
Should we wait for Drupal 11 instead of migrating to Next.js?
Drupal 11 arrives late 2026 with Symfony 7 and Twig 4, requiring another migration costing $30–60K minimum. Then D12 follows in 3–4 years. A Next.js + Supabase migration costs $50–200K but eliminates forced CMS migrations permanently. The 5-year total cost of ownership favors Next.js.
How do you handle Drupal Views like our program finder and faculty directory?
Each Drupal View becomes a Next.js server component backed by Supabase queries. Your program finder gets faceted filtering by subject area, degree level, and campus with results returning in under 100ms. Faculty directories get full-text search with department filtering. Every filter interaction is instant — no full page reload.
Can we consolidate our 20+ department Drupal subsites into one application?
Yes, and you should. We consolidate all department subsites into one Next.js application with `/departments/[slug]` routes. Each department retains its sub-brand identity with custom accent colors. Supabase RLS ensures department admins only manage their own content. One codebase, one deployment, one set of dependencies to maintain.
Ready to migrate?
Free assessment. We'll audit your current site and give you a clear migration plan — no commitment.
Let's build
something together.
Whether it's a migration, a new build, or an SEO challenge — the Social Animal team would love to hear from you.