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

From Craft CMS to Directus
Key pain points
The elephant in the room is PHP. Craft requires a traditional LAMP-style hosting setup with PHP 8.2+ and MySQL or Postgres, which immediately rules out the serverless and edge-first hosting that modern JavaScript frameworks thrive on. You're managing servers, configuring OPcache, tuning database connections, and dealing with all the operational overhead that comes with self-hosted PHP applications. For teams already working in the JavaScript ecosystem, this is a hard sell.
Major version upgrades are genuinely painful. Craft doesn't support skipping major versions, so migrating from Craft 2 to 5 means stepping through every version in between. Each jump brings breaking changes to Twig templates, PHP requirements, and plugin compatibility. We've seen agencies spend weeks on upgrades that should have been straightforward. The Team tier starts at $279 per project and the Pro tier costs $399, plus $99 annual renewals for both. A free Solo tier exists for single-user projects, but costs still add up for agencies, especially when you factor in plugins and the recent trend toward stricter licence enforcement in the control panel.
The community, while passionate, is relatively small compared to WordPress or even newer headless CMS platforms. When you hit an edge case or need help with a niche plugin, you may find yourself digging through GitHub issues rather than finding a ready answer. And while Craft Cloud exists as a managed hosting option, it's still maturing and doesn't yet match the deployment experience you'd get with platforms like Vercel or Netlify.

PHP hosting requirements
You need a traditional server with PHP 8.2+, MySQL or Postgres, and proper configuration. No serverless, no edge deployment, no modern hosting shortcuts.

Painful major version upgrades
You can't skip major versions, so upgrades mean stepping through each release with breaking Twig, PHP, and plugin changes along the way.

Smaller community and ecosystem
The community is dedicated but small. Finding answers to niche problems often means digging through GitHub issues or waiting on forum responses.

Licence costs add up
The Team tier is $279 per project and Pro is $399, both with $99 annual renewals, plus paid plugins on top. A free Solo tier exists for single-user projects, but costs add up quickly for agencies managing multiple client sites.

Learning curve for non-developers
Craft assumes your team includes developers. Content editors coming from WordPress or simpler tools will need time to adjust to the more structured interface.

Twig templating limitations
Twig is clean but limited compared to modern component frameworks. Complex UI logic gets awkward, and you're locked into whatever Twig version Craft supports.
Key advantages
Directus instantly wins points with us because, well… it has a rabbit for a logo. But beyond that, it’s genuinely a solid database-first CMS. If you like the idea of a CMS that sits directly on top of your SQL database without any abstractions, Directus feels incredibly natural.
You can self-host it, tweak it endlessly, and treat your schema exactly the way you want. Editors get a no-code admin UI that feels polished, developers get REST and GraphQL out of the box, and teams get workflows, versioning, automations, and proper permission controls. It’s flexible, fast, and a great fit if your content is really just structured data waiting for a smarter interface. If your project revolves around relational data and you want total control from database to API, Directus is one of the cleanest ways to build it.
Intuitive non-technical interface
Editors get a clean, no-code admin panel that feels more like a productivity tool than a CMS. Non-technical teams can handle content updates without pinging developers every five minutes.

Database-agnostic SQL integration
Directus plugs straight into your SQL database and turns it into an API instantly. If your data lives in Postgres, MySQL, MariaDB, or SQLite, it just works.

Field-level permission controls
You can lock down every field, table, and action with granular role-based permissions. Perfect for teams that care about security and don’t want interns accidentally deleting production data.

Built-in REST/GraphQL support
Your entire database is instantly exposed as both REST and GraphQL endpoints. Just plug into your frontend and start shipping.
Extensive UI customization
Directus lets you tweak the interface, add custom views, tailor layouts, and build the exact editing experience your team needs. It feels like a CMS you can actually shape instead of fight.

Real-time collaboration tools
Multiple contributors can work together without stepping on each other’s toes. Edits sync instantly, drafts stay clean, and the whole workflow feels built for modern teams, not 2010 intranets.
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.
