Sector(s)

Team Members

Project Team

Wolfgang Ziegler (fago), Jeremy Chinquist (jjchinquist) and Oliver Berndt (oliver_berndt) delivered the project for drunomics. We also want to thank the colleagues whose contributions to mossbo Cloud and Lupus Decoupled made this project possible, in alphabetical order: Petar Bašić (petar_basic), Matic Fink (turtlbbx), Sinduri Guntupalli (sinduri), Alexandru Ieremia (alex_ieremia), Arthur Lorenz (arthur_lorenz), Liopold Novelli (useernamee) and Ciprian Stavovei (ciprianstavovei). On the client side, the Product Owner and the editorial team of the Vegane Gesellschaft Österreich reviewed every migrated page and rebuilt the webforms themselves.Recipe search on vegan.at for the term Tofu: search field, category tabs from Alle to Brot, and recipe cards with photo, category label, title and teaser

Visit the site

Visit the site

Organizations Involved

Community contributions

The work produced a series of improvements for upstream projects, most of them for Drupal Canvas and the file-upload path a decoupled Canvas page depends on. Each was contributed upstream as a merge request, most of them already merged; the remaining ones are carried in the project as patches until they land.

  • Drupal core: #3457067 Status messages rendered in managed file form elements filter HTML too aggressively
  • Drupal core: #3618230 Adopt the AJAX MessageCommand for file uploads, so a decoupled frontend receives upload messages as structured data
  • Canvas: #3591986 Canvas breaks uploading files with spaces for the whole site
  • Canvas: #3591989 Form AJAX errors are swallowed by Canvas
  • Canvas: #3591845 Prevent Canvas from caching blocks that throw exceptions
  • Search API OpenSearch: #3616474 Fix per-type boosting and make boosts apply multiplicatively
  • Address Suggestion: #3619637 Warnings when a Nominatim result has no road and house number
  • Geocoder: #3619641 Allow disabling geocoding of country-only addresses
  • Lupus Custom Elements Renderer: #3605817 Ease setting custom page layouts per route
  • Custom Elements: #3534177 Extensible service for converting render arrays to custom elements
  • Custom Elements: #3568233 Support for loading Drupal JavaScript libraries via custom elements
  • Custom Elements: #3615475 Formatter for Smart Date output
  • Custom Elements: #3615478 Formatter for Geofield data
  • Custom Elements: #3615479 Formatter for Address field data
  • Custom Elements: #3616027 Entity label and entity reference field formatters for raw reference output
  • Custom Elements: #3612219 Reusable search-text extractor and an optional Search API processor for indexing custom element text
  • Custom Elements: #3472359 Ability to add a field multiple times
  • Custom Elements: #3618933 CanvasFormatter swallows flow-control exceptions, so an AJAX file upload inside a Canvas page never gets its response

Beyond this project, drunomics maintains Lupus Decoupled Drupal, Custom Elements, Lupus Custom Elements Renderer, Config Preview Deploy, Lupus Stark, OhDear Integration and Request Info, and contributes to AI, Experience Builder, OpenAI Provider and OpenID Connect / OAuth Client.

The Vegane Gesellschaft Österreich (VGÖ) describes itself as an environmental organisation with a focus on nutrition. A team of just under 30 works to interest people in climate-friendly, healthy, plant-based food. Its website vegan.at carries recipes, nutritional information, events and a nationwide directory of vegan-friendly restaurants, alongside the organisation's campaigning, membership and donation work.

The site had been running on Drupal 7 well past its end of life. VGÖ partnered with drunomics to move it to mossbo Cloud, our managed cloud CMS ecosystem, which combines Drupal 11 with a decoupled Nuxt frontend. The site went live on 27 August 2026.

Three things set the project apart from a conventional migration: the design and the migration were AI-assisted under human review, the section and campaign pages are built with Drupal Canvas by the editorial team itself, and the restaurant finder, the search and over 50 webforms were rebuilt so that the association runs them without a developer.

This is a condensed version. The full case study with all figures, screenshots and the verification of every number is published on drunomics.com in English and in German.

About the project

Requirements. As a non-profit, vegan.at needed a relaunch that was affordable, that preserved a decade of content and search rankings, and that left the team with a site they could run themselves without technical overhead. The content model was rebuilt around the organisation's actual work: articles, recipes, events and the restaurant directory, each with its own editing experience.

Approach. Four things set this project apart from a conventional migration.

  • AI-assisted design. The VGÖ's in-house designer provided the branding, colours, typography and logo, and gave feedback on the result. The design itself was generated with Claude Design on top of the mossbo Cloud kickstart component set. One feedback round was enough to land the prototype as working HTML and Vue, which then became the reference every page was built against.
  • AI-assisted migration under human gates. Content and pages were both migrated by AI agents, with a human giving direction and approving every visual outcome. Content was extracted from the Drupal 7 database by deterministic, agent-written scripts into Drupal core's default_content format: 970 articles, 1,012 recipes and 6,458 media records, with 2,820 raw ingredient terms consolidated into a vocabulary of 923. The page migration ran as 48 tickets over 15 calendar days, all of them implemented by coding agents. The method has since been generalised into a reusable set of agent skills.
  • AI-assisted implementation. The agents also took over the Drupal configuration and supported the design implementation in the Nuxt frontend. No custom backend code was needed: the mossbo architecture separates platform and project, and the project consists of configuration and frontend components.
  • Canvas-based overview pages. Section, topic and campaign pages were fixed templates on the old site. They are now Drupal Canvas pages: editors compose them from reusable components and see them as visitors will. The client manages them without a developer.

Two more pieces were rebuilt for the association to run on its own. The nationwide restaurant finder is a Nuxt component placed on a Canvas page, with free-text, place and radius search, facets and a map, and shareable filtered views. Recipe search and site search run on the OpenSearch server that mossbo Cloud provides, through Search API and Views. Of roughly 60 Drupal 7 forms, about 50 near-identical requests became one content type; the rest, from magazine orders to feedback surveys with Likert scales, the VGÖ rebuilt in Webform itself. Webform conditionals and AJAX uploads now work in the decoupled setup thanks to library support added to the Custom Elements module.

Goals and how they were measured.

  1. Get off Drupal 7: the site runs Drupal 11.4 and went live on 27 August 2026, with updates and security patches automated by mossbo Cloud.
  2. Preserve ten years of content and rankings: around 2,173 pages were migrated, the old URLs redirect, the entry redirect went from two hops to one, and Google Search Console accepted the new sitemap on the day of the switch.
  3. An editorial interface that needs little technical knowledge: editors compose overview and campaign pages in Canvas and work in forms built around articles, recipes and events.
  4. Remove the maintenance burden: GDPR-compliant hosting with the data centre in Germany, a CDN, monitoring, and all updates including Drupal major version upgrades handled by the platform.
  5. Accessibility: self-audited against WCAG 2.2 AA on 14 pages at three viewports, axe-core plus manual keyboard, focus, contrast and zoom checks; the accessibility statement names the remaining shortcomings and was delivered with the launch.
  6. Speed: more than six times faster. Google's crawl statistics show the average response time falling from roughly 900 milliseconds to around 130 on the day of the switch.
  7. A cost a charitable association can carry: a small team with AI-assisted workflows shortened time to delivery, which saved the client time and cost.

A result nobody set as a goal: the old site shipped no structured data. The new one emits Schema.org markup, and by 3 September Search Console reported 1,153 valid breadcrumb items, 529 valid recipe items and 3 event items, with zero errors.

Client voice.

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

In English: with the redevelopment of vegan.at we moved our historically grown Drupal 7 website to a modern, powerful and future-proof platform. The new system lets us manage content such as articles, recipes and events far more flexibly and efficiently. What we value most is that operations, monitoring and security updates are bundled in a managed cloud solution, so our team can concentrate on editorial work and keep developing vegan.at.

The full case study, including the before-and-after comparison, the migration figures per content type and the verification of every number, is on drunomics.com in English and German.

Why Drupal was chosen

Drupal 7 reached end of life in January 2025, so a move was unavoidable. The organisation's content is genuinely structured: recipes, events, restaurants and articles each behave differently, which is where Drupal's content modelling earns its place over a simpler CMS.

By extending Drupal with Lupus Decoupled and Drupal Canvas the system provides the base for combining a modern frontend experience with a likewise modern editing experience, driven by a robust backend.

mossbo Cloud adds the parts a small non-profit cannot maintain itself: ISO 27001-certified European hosting, automated Drupal updates and security patches, monitoring, and a decoupled Nuxt frontend that keeps the public site fast without the editors having to think about it.

Homepage of vegan.at after the relaunch, desktop viewport: main navigation, hero for the Veganmania Donauinsel festival with a photo of visitors, and a search box "Wonach suchst du?" with suggested topics

Technical Specifications

Drupal version:

Why these modules/theme/distribution were chosen

Lupus Decoupled Drupal is the open source foundation of mossbo Cloud and provides the decoupled architecture; Custom Elements and the Lupus Custom Elements Renderer turn Drupal's render output into the component data the Nuxt frontend consumes. Drupal Canvas gives editors component-based page building, integrated through Lupus Decoupled's Canvas support. Search API with OpenSearch and Facets carries the recipe search and the site search, configured for German and with editorial boosting. Geofield, Geocoder and Address model the restaurant directory, Smart Date the events. Webform gives the association its more than 50 self-maintained forms. Simple XML Sitemap, Redirect, Pathauto, Metatag and Schema.org Metatag secure SEO continuity and the structured data. The AI module with a European-hosted Mistral provider assists editors with titles and SEO text. Config Preview Deploy, Purge and OhDear Integration support deployment, CDN invalidation and monitoring.

The vegan.at start page open in the Drupal Canvas editor: component library on the left, live preview of the page in the middle, settings panel on the right
The vegan.at restaurant finder on desktop: search form with free-text and place fields, filters for vegan offer, venue type and features, then "711 Lokale gefunden" with a map of Austria showing all venues and a result list beside it
Recipe search on vegan.at for the term Tofu: search field, category tabs from Alle to Brot, and recipe cards with photo, category label, title and teaser