Vegane Gesellschaft Österreich

KI-gestützter Relaunch von Drupal 7 auf 11 mit mossbo Cloud

vegan.at start page with hero and form elements, shown responsively on 3 devices

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.

Canvas editor screenshot for vegan.at's start page
Editors compose overview pages from reusable Drupal Canvas components and see them as visitors will, instead of assembling an abstract layout. The same pattern drives the campaign and landing pages, and the client manages them without a developer.

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.

The restaurant finder and result set, as seen on various devices.

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.

Recipe search for „Tofu" with the category tabs

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.

Site search for „Protein", 275 results with channel labels

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.

The migration flow activity diagram

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.athttp://www.vegan.athttps) 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.

The response time as measured via google search console for vegan.at both before and after the relaunch.

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.

Fabian Plank, Informationstechnik, Vegane Gesellschaft Österreich

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.