Case Study
View Case StudyTray.ai
Migrating hundreds of thousands of pages, re-platforming and extending for the leading composable AI integration platform

From Joomla to Craft CMS
Key pain points
Joomla sits in the same category as WordPress, except somehow even harder to explain to anyone under 40. If your C-suite is filled with boomers who think “PHP developer” is still a personality type, Joomla will make them feel right at home. You might also have a vested interest in making your hosting provider very rich, because nothing about this platform is light, modern, or low-maintenance.
The dev experience still feels trapped in a pre-composer, pre-type-hints era. Migrations are a genuine horror story: extensions break, templates implode, and you’ll often rebuild the whole site because Joomla decided versioning should be a personality test. The community is smaller, the documentation is hit-and-miss, and the admin panel feels like a UI from a government portal that accidentally became a CMS. Performance on shared hosting is questionable at best, workflow is clunky, and there is barely any modern DX. But if you really, truly want Joomla… we’ll point you to another agency or just sit down with us for half an hour and we'll talk you out of your biggest digital regret.

Steep learning curve
Joomla makes even simple tasks feel like you’re onboarding into a new corporate ERP system. If you’re not already fluent in its quirks, prepare to lose a weekend (or three).

Outdated coding standards
Still clinging to older PHP conventions, missing modern practices, and generally stuck in a time capsule. If you enjoy fighting your own tools, you’ll love it.

Complex migration process
Upgrading versions feels less like an update and more like a full-blown rebuild. Random extensions break, templates combust, and you’re left questioning your career choices.

Extension compatibility issues
Half the ecosystem works… depending on your version, your template, the time of day, and whether Mercury is in retrograde. Reliability is not its strong suit.

Limited template selection
Unless you’re aiming for “government website from 2011,” the design ecosystem doesn’t give you much to work with.

Interface complexity barriers
The admin panel still feels like an escape room puzzle. Everything is technically there, but actually finding or using it is another story.
Key advantages
Craft CMS is one of those platforms we genuinely respect from a developer standpoint. The content modelling is best-in-class for a traditional CMS. You define sections, entry types, and fields with real precision, and the authoring experience maps cleanly to the underlying data structure. If your content team needs a CMS that actually reflects how the site is built, Craft delivers that better than most. The Twig templating layer is clean and predictable, and the admin UI is fast and intuitive once editors get past the initial learning curve.
Where Craft really shines is in the middle ground between simple marketing sites and full-blown enterprise builds. It's flexible enough to handle complex content architectures without the bloat of something like WordPress, and the built-in GraphQL API means you can use it headless if you want to pair it with a modern frontend. The plugin ecosystem is smaller but noticeably higher quality than what you'd find in WordPress, and the Composer-based workflow means your whole project can live in version control properly.
We've seen agencies build genuinely impressive work on Craft, especially for content-heavy sites where editorial workflows matter. If your team includes developers and you want a CMS that rewards careful architecture, Craft is a solid choice. It's not trying to be everything to everyone, and that focus shows.
That said, we'd typically recommend a headless CMS like Sanity for most of the projects we take on. Craft is at its best when you're comfortable with PHP and want a tightly integrated traditional or hybrid setup. If you're building on Next.js or a modern JavaScript stack, you'll find more natural fits elsewhere.

Exceptional content modelling
Craft's field and section system gives you precise control over your content structure. You can model complex relationships between content types without fighting the CMS.

Clean authoring experience
The admin panel is fast, well-organized, and maps directly to how content is structured. Editors can work efficiently once they understand the layout.

Built-in GraphQL API
Craft ships with a native GraphQL API, so you can use it headless without plugins or workarounds. It's deeply integrated and well-documented.

Composer-based modern workflow
Everything is managed through Composer, so your project, plugins, and dependencies all live in version control. Deployments through CI/CD pipelines work smoothly.

Higher quality plugin ecosystem
The plugin store is smaller than WordPress but the quality bar is noticeably higher. Plugins are better maintained and less likely to break your site on update.

Granular user permissions
Built-in role and permission management is detailed and flexible. You can lock down exactly what each editor can see and do without needing third-party plugins.
Book a meeting with us to discuss how we can help or fill out a form to get in touch
Join the growing list of successful migrations
Case Study
View Case StudyMigrating hundreds of thousands of pages, re-platforming and extending for the leading composable AI integration platform

Case Study
View Case StudyFrom Sanity overages to instantaneous publishing, we brought Mario Testino into the fast lane, and did it in style.

Case Study
View Case StudyHelping the UAE's most prolific Pay in 4 merchants scale their design system and composable infrastructure.

Case Study
View Case StudyHow we helped the fastest growing online cycling community, push the editorial velocity to new heights.
