Staffbase: vom WordPress-Wildwuchs zur stabilen Symfony-Plattform
Wie wir ein zerklüftetes WordPress-Setup durch eine Symfony- und Storyblok-Plattform ersetzt, die Ladezeiten 33-fach verbessert und Ausfälle beendet haben.
Die Ausgangslage
Staffbase ist global führend in der internen Unternehmenskommunikation, doch die öffentliche Webpräsenz war diesem Anspruch nicht mehr gewachsen. Mehrere WordPress-Instanzen, mit Plugins zusammengehalten, immer wiederkehrende Sicherheitswarnungen, unberechenbare Performance, und Inhalte, die über die Sites hinweg kaum konsistent zu halten waren. Das Engineering-Team verbrachte mehr Zeit damit, das Bestehende am Laufen zu halten, als Neues zu liefern.
Der Auftrag war klar: das Feuerlöschen beenden, das Fundament austauschen, und das alles, ohne das Marketing-Team monatelang auszubremsen.
Was wir gemacht haben
Wir haben die öffentliche Plattform auf Symfony mit Symfony UX neu aufgebaut, Storyblok als Headless-CMS dazu. Layouts, die vorher als eigene WordPress-Templates lebten, wurden zu wiederverwendbaren Komponenten, sodass das Marketing-Team Seiten zusammenstellen kann, ohne dass Engineering auf dem kritischen Pfad sitzt. Wo es sicher war, haben wir die Migration automatisiert. Wo nicht, haben wir die Struktur manuell überführt und die Regeln festgehalten, sodass jede weitere Seite günstiger war als die vorige. Wie wir solche schrittweisen Ablösungen ohne Big-Bang aufsetzen, haben wir an anderer Stelle ausführlich beschrieben, in unseren Notizen zum Strangler-Fig-Muster für Symfony-Monolithen und dazu, was wir CTOs sagen, die einen Rewrite erwägen.
Die Plattform haben wir genauso ernst genommen wie die Anwendung. Wir haben eine CI/CD-Pipeline aufgesetzt, die bei jedem Commit läuft, Code-Qualität mit PHPStan und Rector durchgesetzt, und Performance-Budgets in den Build eingebaut. Im laufenden Projekt haben wir das Team in Symfony-Konventionen und Domain-Driven Design eingearbeitet, damit kein Teil der Codebasis nach unserem Abgang eine Blackbox war.
Ein paar Kanten, an denen wir uns gestoßen haben, sind in die Open-Source-Welt zurückgeflossen. Sowohl der Storyblok-Symfony-Bundle als auch der PHP-API-Client haben während des Projekts Verbesserungen bekommen, von denen Staffbase bei jedem Update profitiert.
Was sich verändert hat
Die Zahlen oben sind die Schlagzeile. Die leiseren Gewinne zählen im Alltag mehr. Die Plugin-Angriffsfläche ist weg, Security-Review ist ein einseitiges Gespräch statt eines Backlogs. Eine neue Sektion zu veröffentlichen, ist eine Content-Aufgabe, kein Ticket. Symfony-Entwicklerinnen und -Entwickler einzustellen, ist spürbar leichter, als Leute zu finden, die ein WordPress-Patchwork erben wollen.
“Ich habe selten eine solche Geschwindigkeit und Qualität in einem Projekt erlebt.”
Bartek Jaglowski, Team Lead, Staffbase Web Team
Die Plattform kann sich jetzt weiterentwickeln, statt nur gewartet zu werden.