Vegane Gesellschaft Österreich
KI-gestützter Relaunch von Drupal 7 auf 11 mit mossbo Cloud

Die Vegane Gesellschaft Österreich (VGÖ) beschreibt sich selbst als Umweltschutzorganisation mit Ernährungsschwerpunkt. Ein knapp 30-köpfiges Team begeistert Menschen für eine klimafreundliche, gesunde, pflanzliche Ernährung. Die Website vegan.at bündelt Rezepte, Nährstoffinformationen, Veranstaltungen und ein österreichweites Verzeichnis vegan-freundlicher Lokale, dazu die Kampagnen-, Mitglieder- und Spendenarbeit des Vereins.
Die Seite ist lange über das Support-Ende hinaus auf Drupal 7 gelaufen. Die VGÖ hat sich mit drunomics zusammengetan, um sie auf mossbo Cloud umzustellen, unser betreutes Cloud-CMS-Ökosystem, das Drupal mit einem entkoppelten Nuxt-Frontend verbindet.
Wichtige Aspekte für den Kunden
- Relaunch der Drupal-7-Seite auf Drupal 11 aus Sicherheitsgründen.
- Mehr Beteiligung und Interesse der Leser:innen durch ein moderneres, responsives und schnelleres System.
- Erfüllung der Governance-Anforderungen: Barrierefreiheit, Datenschutz und DSGVO-Konformität.
- Einhaltung des Budgetrahmens.
Wichtige Aspekte für drunomics als umsetzende Agentur
- Aufbau einer langfristigen Zusammenarbeit.
- Ausbau des Kundenstamms der mehrfach ausgezeichneten SaaS-Lösung mossbo Cloud.
- Einsatz von KI-Assistenten, um gute Ergebnisse im Budgetrahmen des Kunden zu liefern.
Anforderungen und Vorgehen
Als gemeinnütziger Verein hat vegan.at einen Relaunch gebraucht, der leistbar ist, der ein Jahrzehnt an Inhalten und Suchmaschinen-Rankings bewahrt und der dem Team eine Seite hinterlässt, die es ohne technischen Aufwand selbst betreiben kann.
Das Inhaltsmodell ist rund um die tatsächliche Arbeit des Vereins neu aufgebaut worden: Artikel, Rezepte, Veranstaltungen und das Lokalverzeichnis, jeweils mit einer eigenen Redaktionsansicht. Vier Dinge unterscheiden dieses Projekt von einer herkömmlichen Migration.
KI-gestütztes Design. Die hauseigene Designerin bzw. der hauseigene Designer der VGÖ hat das Branding geliefert, also Farben, Typografie und Logo, und Feedback zum Ergebnis gegeben. Das Design selbst ist mit Claude Design auf Basis des Komponentensatzes des mossbo Cloud Kickstarts entstanden, ergänzt um neue Komponenten für die vegan.at-spezifischen Elemente. Eine einzige Feedback-Runde hat gereicht, bis der Prototyp als lauffähiges HTML und Vue stand. Er war danach die Referenz, gegen die jede Seite gebaut worden ist.
KI-gestützte Migration unter menschlicher Kontrolle. Inhalte und Seiten sind beide von KI-Agenten migriert worden, wobei ein Mensch die Richtung für die korrekte Umsetzung vorgegeben und jedes sichtbare Ergebnis freigegeben hat. Das Verfahren ist in diesem Projekt entstanden und inzwischen zu einem wiederverwendbaren Satz von Agent-Skills verallgemeinert, sodass die nächste Migration am selben Punkt startet.
KI-gestützte Umsetzung. Neben Design-Entwurf und Migration haben die Agenten auch die Drupal-Konfiguration (Inhaltstypen, Felder, Suche) übernommen und bei der Design-Implementierung im Nuxt-Frontend unterstützt. Eigener Backend-Code war nicht nötig: Die mossbo-Architektur trennt Plattform und Projekt, das Projekt besteht aus Konfiguration und Frontend-Komponenten, und genau das macht die KI-gestützte Umsetzung so effizient.
Canvas-basierte Übersichtsseiten. vegan.at hat für jede Rubrik, etwa Rezepte oder Infos, und für jedes Thema, etwa Gesundheit oder Umwelt, eine Übersichtsseite. Auf der alten Seite waren das starre Templates. Jetzt sind es Canvas-Seiten, gebaut mit Drupal Canvas: Die Redaktion setzt sie aus wiederverwendbaren Komponenten zusammen und sieht dabei, was die Besucher:innen sehen, statt ein abstraktes Layout zu befüllen. Dasselbe Muster trägt die Kampagnen- und Landingpages, und der Kunde verwaltet sie ohne Entwickler:in.

Eine eigens entwickelte Funktion, die vegan.at abhebt, ist der österreichweite Restaurantfinder, den drunomics in Nuxt neu gebaut hat. Die Funktion braucht kein Drupal. Statt sie wie in Drupal 7 an die Seite anzuflanschen, ist sie jetzt eine Canvas-Seite, die einfach eine eigene Vue-Komponente restaurant_finder platziert. Das Frontend stellt einen kleinen API-Proxy bereit, der die Daten direkt aus der intern genutzten API holt und die Anfragen zwischenspeichert, damit alles angenehm performant bleibt. Das Resultat verfügt über eine Volltextsuche über Lokalnamen und Gerichte, eine Suche nach Ort oder Postleitzahl, eine Option „in meiner Nähe“, Filter nach Ausstattung und eine Karte der aktuellen Ergebnisse. Gefilterte Ansichten lassen sich teilen, weil die aktiven Filter in der URL der Seite stehen.

Für die Rezeptsuche ist ein anderer Weg gewählt worden. Weil Rezepte in Drupal verwaltet werden und in größerer Zahl vorliegen, hat drunomics den OpenSearch-Server genutzt, den mossbo Cloud bereitstellt. Die Rezepte werden über Search API indexiert und über eine Suchoberfläche durchsucht, hinter der eine Drupal-Views-Konfiguration steht. Dank der Views-Unterstützung in Lupus Decoupled war es einfach, die Suche im Frontend mit einigen interaktiven Elementen in Vue.js aufzuwerten.

Auch die Seitensuche basiert auf der OpenSearch-Suche, die mossbo Cloud mitbringt. Sie ist auf die Besonderheiten der deutschen Sprache eingestellt und wendet eine eigene Ranking-Logik per Boosting an, für die Verbesserungen für das Modul Search API OpenSearch beigesteuert worden sind. Zusätzlich kann die Redaktion das Ranking beeinflussen, indem sie den Boost einzelner Artikel anpasst.

Verbesserte Webform-Unterstützung
Für einen Verein ist es entscheidend, Formulare ohne fremde Hilfe anlegen und anpassen zu können, und entsprechend entscheidend ist das Modul Webform für die Website. Lupus Decoupled unterstützt das Webform-Modul seit Langem, aber JavaScript-basierte Funktionen wie bedingte Formularelemente und AJAX-Datei-Uploads haben im entkoppelten Aufbau bisher gefehlt. Gelöst worden ist das, indem das zugrunde liegende Modul Custom Elements Unterstützung für das Drupal-Bibliothekssystem bekommen hat. Damit funktionieren bedingte Elemente und AJAX-Uploads in Webforms jetzt einfach, so wie auf einer klassisch gerenderten Drupal-Seite.
Von rund 60 Formularen der Drupal-7-Seite waren etwa 50 nahezu identische Anfragen nach Aufzeichnungen von Online-Talks; daraus ist ein Inhaltstyp mit einem gemeinsamen Formular geworden. Die übrigen Formulare, von der Magazinbestellung über Veranstaltungsanmeldungen bis zu Feedback-Umfragen mit Likert-Skalen, hat die VGÖ selbst in Webform nachgebaut, ohne Entwickler:in. Die Seite trägt heute über 50 Formulare, die nun alle vom Verein gepflegt werden.
KI-gestützte Migration von Inhalten und Seiten
Die Migration ist mit Hilfe von zwei parallelen Arbeitssträngen umgesetzt worden, beide über den default_content-Mechanismus von Drupal Core.

Die Seiten-Migration hat stark davon profitiert, dass sich über die Canvas-Unterstützung von Lupus Decoupled Vue-Komponenten direkt mit Drupal Canvas verwenden lassen. Coding-Agenten schreiben modernes JavaScript, wie Vue, effizient, deshalb war es einfach, in Phase 1 statische Seiten zu erstellen. In Phase 2 sind die Komponenten in Drupal registriert worden, sodass sich die Seiten bauen und importieren ließen. Am Ende ist derselbe Komponentenbaum, der in Phase 1 freigegeben worden war, über Lupus Decoupled gerendert worden, jedoch nun als vollständig redaktionell verwaltete Seite.
Inhaltsmigration. Mit Hilfe eines Coding-Agenten sind das Zieldatenmodell und die Zuordnung zur Drupal-7-Datenbank geplant worden. Anschließend haben die Agenten die Extraktionsskripte geschrieben, die leicht importierbare YAML-Dateien für den Default-Content-Importer von Drupal erzeugen. Entscheidend: Die Skripte laufen deterministisch. Derselbe Dump ergibt denselben Inhaltsbaum, und kein Inhalt wird über einen Live-Aufruf eines Sprachmodells transformiert. Fehlende Inhalte wie Rezept-Teaser sind einmal vorab per KI erzeugt worden, sodass ein erneuter Import exakt denselben Text wiederherstellt.
| Inhalt | Quelldatensätze | Erzeugte Entitäten | Dauer | Feedback-Runden | Entwicklungsaufwand |
| Artikel | 970 | ~13.000 | 6 Tage | 17 | ~1 Tag, überwiegend QA |
| Rezepte | 1.012 | 19.431 | 6 Tage | 21 | ~1 Tag, überwiegend QA |
Bei den Rezepten war außerdem eine bereinigte Zutatenliste nötig, die zu einem kontrollierten Vokabular zusammengeführt worden ist: 2.820 Rohbegriffe wurden zu 923 Begriffen. 42 Kategoriebegriffe aus Drupal 7 sind auf zwei Vokabulare umgestellt worden, Rubrik und Themen, und bei 269 Artikeln sind Zweitzuordnungen erhalten geblieben, die eine naive Ein-Feld-Zuordnung verloren hätte. 6.458 Mediendatensätze sind mitgekommen.
Die Seitenmigration ist Ticket für Ticket abgewickelt worden und dadurch messbar: 48 Tickets in 15 Kalendertagen, alle von Coding-Agenten umgesetzt. Die Korrekturrunden sind dabei der Punkt und kein Makel. Zurückgewiesen worden ist fast immer wegen Designtreue und der Umsetzung guten Codes, welcher einfach wartbar ist, selten weil etwas nicht funktioniert hatte.
Mehr als die Hälfte der Projektzeit ist in den Prozess und seine Werkzeuge geflossen, nicht in die Seite selbst. Genau diese Investition macht den Ablauf nun gut wiederverwendbar.
Ziele, und wie wir sie gemessen haben
Sieben Ziele sind zu Beginn festgelegt worden. Jedes steht hier mit dem Beleg, dass es erreicht worden ist.
1. Weg von Drupal 7, das seit Jänner 2025 keine Sicherheitsupdates mehr bekommt. ✅ Die Seite läuft auf Drupal 11.4 und ist am 27. August 2026 live gegangen. Updates und Sicherheits-Patches laufen jetzt automatisiert als Teil von mossbo Cloud.
2. Zehn Jahre Inhalte und die dazugehörigen Suchmaschinen-Rankings erhalten. ✅ Rund 2.173 Seiten sind migriert, die alten URLs leiten weiter, und die Sitemap ist noch am Umstellungstag von der Google Search Console angenommen worden. Die Einstiegs-Weiterleitung ist von zwei Sprüngen (http://vegan.at → http://www.vegan.at → https) auf einen gekürzt. Der Indexierungsbericht der Search Console hatte in den Monaten davor keine neu indexierten Seiten gezeigt; wenige Tage nach der Umstellung ist der Index wieder gesund gewachsen, der gemeinsame Effekt von Go-live und der am selben Tag eingereichten Sitemap.
3. Eine Redaktionsoberfläche, die wenig technisches Wissen braucht. ✅ Die Redaktion setzt Übersichts- und Kampagnenseiten in Canvas zusammen und arbeitet in Inhaltsformularen, die sich an Artikeln, Rezepten und Veranstaltungen orientieren und nicht an Drupal.
4. Einen kleinen Verein von der Wartungslast befreien. ✅ Die Seite läuft auf der mossbo Cloud Plattform bei einem DSGVO-konformen Hosting-Anbieter mit Rechenzentrum in Deutschland, hinter einem CDN, mit Monitoring, und alle Updates und Sicherheits-Patches übernimmt die Plattform, inklusive der Upgrades auf neue Drupal-Hauptversionen!
5. Nach WCAG 2.2 AA prüfen und die gesetzlich verlangte Barrierefreiheitserklärung liefern. ✅ drunomics hat die Seite selbst gegen WCAG 2.2 AA geprüft: 14 Seiten in drei Viewports (375, 768 und 1440 px), axe-core plus manuelle Prüfung von Tastaturbedienung, Fokus, Kontrast und Zoom. Die Barrierefreiheitserklärung ist aus den Befunden erstellt worden, benennt die verbleibenden Mängel und ist mit dem Launch an vegan.at übergeben worden.
6. Die Seite für Besucher:innen spürbar schneller machen. ✅ Mehr als sechsmal so schnell. Googles eigene Crawling-Statistik, vor und nach der Umstellung nach derselben Methode erhoben, zeigt die durchschnittliche Antwortzeit am Umstellungstag von rund 900 Millisekunden auf etwa 130 fallen.

7. Das Ganze zu Kosten, die ein gemeinnütziger Verein tragen kann. ✅ Umgesetzt hat das Projekt ein kleines Team mit KI-gestützten Arbeitsabläufen. KI-gestütztes Design und KI-gestützte Migration haben die Lieferzeit verkürzt und Kosten gesenkt.
Ein Ergebnis, das niemand als Ziel gesetzt hatte: strukturierte Daten
Die alte Seite hat keine strukturierten Daten ausgeliefert. Die neue gibt Schema.org-Markup über Schema.org Metatag aus, und die Search Console hat es ab dem ersten Crawl erkannt: Am 3. September hat sie 1.153 gültige Navigationspfade, 529 gültige Rezepte und 3 Veranstaltungen gemeldet, null Fehler. Rezepte mit gültigem Markup sind für Rich Results bei Google qualifiziert, und genau dort verdient eine Rezeptseite ihre Klicks.
Vorher und nachher auf einen Blick
| Vorher | Nachher | |
| Drupal | 7.105 (End of Life seit 01/2025) | 11.4, automatisierte Updates |
| Einstiegs-Redirect | zwei Sprünge | ein Sprung |
| Strukturierte Daten | keine | Schema.org-Navigationspfade, Rezepte, Events; 0 Fehler in der Search Console |
| Barrierefreiheit | keine Erklärung, kein geprüfter Stand | nach WCAG 2.2 AA geprüft, Erklärung benennt die verbleibenden Befunde |
| Übersichtsseiten | fest verdrahtete Templates | Canvas, von der Redaktion zusammengesetzt |
| Reichweitenmessung | Matomo Cloud plus Google Tag Manager | Plausible, cookielos, lädt vor der Einwilligung; GA4 nur nach Einwilligung |
Mit der Neuentwicklung von vegan.at haben wir unsere historisch gewachsene Drupal-7-Website in eine moderne, leistungsfähige und zukunftssichere Plattform überführt. Das neue System ermöglicht es uns, Inhalte wie Artikel, Rezepte und Veranstaltungen deutlich flexibler und effizienter zu verwalten. Besonders wertvoll ist für uns, dass Betrieb, Monitoring und Sicherheitsupdates in einer Managed-Cloud-Lösung gebündelt sind. Dadurch kann sich unser Team stärker auf die redaktionelle Arbeit konzentrieren und vegan.at kontinuierlich weiterentwickeln.
Warum Drupal
Drupal 7 hat im Jänner 2025 sein Lebensende erreicht, ein Umzug war also unvermeidlich. Die Inhalte des Vereins sind tatsächlich strukturiert: Rezepte, Veranstaltungen, Lokale und Artikel verhalten sich jeweils anders, und genau dort spielt Drupals Inhaltsmodellierung ihren Vorteil gegenüber einem einfacheren CMS aus.
Erweitert um Lupus Decoupled und Drupal Canvas bietet das System die ideale Basis, um ein modernes Frontend-Erlebnis mit einem ebenso modernen Redaktionserlebnis zu verbinden, getragen von einem robusten Backend.
mossbo Cloud steuert bei, was ein kleiner Verein nicht selbst betreiben kann: ISO-27001-zertifiziertes europäisches Hosting, automatisierte Drupal-Updates und Sicherheits-Patches, Monitoring und ein entkoppeltes Nuxt-Frontend, das die öffentliche Seite schnell hält, ohne dass die Redaktion daran denken muss.
Technische Spezifikationen
Drupal-Version: 11.4.5
Wichtige Module, Themes und Distributionen (gegen die Liste der aktivierten Module geprüft, 04.09.2026):
- Lupus Decoupled Drupal
- Custom Elements und Custom Elements UI
- Lupus Custom Elements Renderer
- Drupal Canvas, angebunden über Lupus Decoupled Canvas
- Search API mit OpenSearch und Facets
- Geofield, Geocoder und Address (Restaurantfinder)
- Smart Date (Veranstaltungen)
- Webform
- Simple XML Sitemap, Redirect, Pathauto
- Metatag und Schema.org Metatag
- AI mit dem Mistral-Provider (in Europa gehostet, redaktionelle Unterstützung)
- Config Preview Deploy
- Purge (Cache-Tag-Invalidierung am CDN)
- OhDear Integration
Warum diese Auswahl: Lupus Decoupled Drupal ist die Open-Source-Grundlage von mossbo Cloud und liefert die entkoppelte Architektur. Canvas gibt der Redaktion komponentenbasiertes Page Building. Die Such-, Geo- und Datumsmodule tragen die drei Inhaltstypen, die sich anders verhalten als einfache Artikel: Lokale, Veranstaltungen und Rezepte. Der Rest sichert SEO-Kontinuität, den redaktionellen Workflow und das Monitoring.
Hosting: mossbo Cloud Plattform, DSGVO-konformes Hosting mit Rechenzentrum in Deutschland, ISO/IEC-27001-zertifiziert, CDN vorgeschaltet.
Teammitglieder
- Wolfgang Ziegler (fago)
- Jeremy Chinquist (jjchinquist)
- Oliver Berndt (oliver_berndt)
Unser Dank gilt außerdem den Kolleg:innen, deren Beiträge zu mossbo Cloud und lupus_decoupled dieses Projekt ebenfalls möglich gemacht haben (in alphabetischer Reihenfolge):
- Bašić, Petar (petar_basic)
- Fink, Matic (turtlbbx)
- Guntupalli, Sinduri (sinduri)
- Ieremia, Alexandru (alex_ieremia)
- Lorenz, Arthur (arthur_lorenz)
- Novelli, Liopold (useernamee)
- Stavovei, Ciprian (ciprianstavovei)
Beiträge zur Community
Die Arbeit hat eine Reihe von Verbesserungen für Upstream-Projekte hervorgebracht, die meisten für Drupal Canvas und den Datei-Upload-Pfad, von dem eine entkoppelte Canvas-Seite abhängt. Jede ist upstream als Merge Request eingebracht worden, die meisten sind bereits gemerged; die übrigen laufen im Projekt als Patch mit, bis sie landen.
| Issue | Projekt | Was er behebt |
| #3457067 | Drupal Core | Statusmeldungen in Managed-File-Formularelementen filtern HTML zu aggressiv |
| #3618230 | Drupal Core | AJAX-MessageCommand für Datei-Uploads übernehmen, damit ein entkoppeltes Frontend Upload-Meldungen als strukturierte Daten statt geparstem HTML erhält |
| #3591986 | Canvas | Canvas bricht den Upload von Dateien mit Leerzeichen für die ganze Seite |
| #3591989 | Canvas | Formular-AJAX-Fehler werden von Canvas verschluckt (MR !1558) |
| #3591845 | Canvas | Canvas soll Blöcke, die Exceptions werfen, nicht cachen (MR !1396) |
| #3616474 | Search API OpenSearch | Boosting je Typ korrigieren und Boosts multiplikativ anwenden (MR !147) |
| #3619637 | Address Suggestion | Warnungen, wenn ein Nominatim-Ergebnis keine Straße und Hausnummer hat |
| #3619641 | Geocoder | Geokodierung reiner Länderadressen abschaltbar machen |
| #3605817 | Lupus Custom Elements Renderer | Eigene page_layouts je Route einfacher setzen |
| #3534177 | Custom Elements | Erweiterbarer Service zur Umwandlung von Render-Arrays in Custom Elements (MR !184) |
| #3568233 | Custom Elements | Laden von Drupal-JavaScript-Bibliotheken über Custom Elements |
| #3615475 | Custom Elements | Formatter für Smart-Date-Ausgabe |
| #3615478 | Custom Elements | Formatter für Geofield-Daten |
| #3615479 | Custom Elements | Formatter für Addressfield-Daten |
| #3616027 | Custom Elements | CE-Feldformatter entity_label und entity_reference für rohe Referenzausgabe |
| #3612219 | Custom Elements | Wiederverwendbarer Suchtext-Extraktor und optionaler Search-API-Prozessor zum Indexieren von Custom-Element-Text (MR !187) |
| #3472359 | Custom Elements | Ein Feld mehrfach hinzufügen können |
| #3618933 | Custom Elements | CanvasFormatter verschluckt Flow-Control-Exceptions, sodass ein AJAX-Datei-Upload in einer Canvas-Seite nie seine Antwort bekommt (MR !200) |
Über dieses Projekt hinaus betreut drunomics Lupus Decoupled Drupal, Custom Elements, Lupus Custom Elements Renderer, Config Preview Deploy, Lupus Stark, OhDear Integration und Request Info und trägt zu AI, Experience Builder, OpenAI Provider und OpenID Connect / OAuth Client bei.