Staffbase: from WordPress sprawl to a stable Symfony platform

How we replaced a fragile multi-instance WordPress estate with a single Symfony and Storyblok platform, cut page load times by 33x, and eliminated downtime.

The challenge

Staffbase had grown into the global leader in employee communications, but the public web estate had not kept up. It was a patchwork of WordPress instances, glued together by plugins, with recurring security advisories, unpredictable performance, and content that was hard to keep consistent across sites. Engineering spent more time keeping the lights on than shipping anything new.

The brief was direct: stop firefighting, replace the foundation, and do it without asking the marketing team to freeze the site for six months.

What we did

We rebuilt the public estate on Symfony with Symfony UX, with Storyblok as the headless CMS. Layouts that had lived as bespoke WordPress templates became reusable components, so the marketing team could compose pages without engineering being on the critical path. Where it was safe, we automated the migration. Where it was not, we transformed structure by hand and captured the rules so the next page was cheaper than the last. The same gradual-replacement mindset is something we wrote up in detail, see our notes on the strangler fig pattern for Symfony monoliths and what we tell CTOs weighing a rewrite.

The platform side got the same treatment as the application. We added a CI/CD pipeline that ran on every change, enforced code quality with PHPStan and Rector, and wired performance budgets into the build. We trained the team on Symfony conventions and Domain-Driven Design as we went, so when we left, no part of the codebase was a black box.

A few of the rough edges we hit, we contributed back. The Storyblok Symfony bundle and PHP API client both got patches and improvements during the engagement, which Staffbase now benefits from on every upgrade.

What changed

The numbers above are the headline. The quieter wins matter more day to day. The plugin attack surface is gone, so security review is a one-page conversation instead of a backlog. Publishing a new section is a content task, not a ticket. Recruiting Symfony engineers is meaningfully easier than recruiting people to inherit a WordPress estate.

“I have never seen such an amazing pace and quality in a project.”

Bartek Jaglowski, Team Lead, Staffbase Web Team

The platform is now ready to evolve, instead of needing to be maintained.

Ready to Fix Your Architecture?

Book a free 30-minute call with Silas. No sales pitch, just a direct conversation about your challenges.

Typically responds within 24 hours.

Book a Free Call