# Directus to Craft CMS migration

> How to migrate from Directus to Craft CMS, with a side-by-side comparison and FAQs.

---

## Source: Directus

- **Type:** headless
- **Official site:** https://directus.io
- **Pricing:** https://directus.io/pricing
- **Last reviewed:** 2026-07-28

## 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 collaborative editing

Multiple contributors can work in the Studio at the same time without stepping on each other's toes. Collaborative editing shipped in February 2026, so drafts stay clean and the whole workflow feels built for modern teams, not 2010 intranets.

### AI Assistant with image and PDF support

The built-in AI Assistant can process images and PDFs as well as text, and it works across OpenAI, Anthropic, and Google Gemini. It's a genuinely useful addition rather than a feature-list checkbox.

## Key pain points

Directus looks fantastic in demos, but things get rocky once you actually try to use it at scale. The Team cloud plan is $499/month (or $599 billed monthly) and caps you at 10 SSO seats, 50 collections, and 20 flows. Grow past those limits and you're straight into custom Enterprise territory. The v12 move to the Monospace Sustainable Core License (MSCL) has also rattled the community; smaller orgs get a free Innovation Grant, but larger teams are navigating a licensing landscape that changed significantly from what they signed up for.

On the dev side, updates can introduce breaking changes, the documentation doesn't always keep pace, and the extension ecosystem is pretty thin. Localization is technically supported but fiddly and easy to misconfigure, and large datasets make the UI noticeably sluggish. And if you want anything deeply custom, you're suddenly living in Vue.js land, which is not where most teams want to spend their weekends.

### Breaking update changes

Directus explicitly does not follow semver: any release may include breaking changes. The v10 to v11 upgrade hit schema changes and dropped fields, and the v11 UI scale change (px to rem) broke extensions hardcoding pixel values. Plan your upgrade windows carefully.

### Limited extension ecosystem

The plugin ecosystem is still pretty bare. Anything even mildly niche ends up becoming a "let's just custom build it" moment, which defeats the purpose of picking a CMS with extensions. The marketplace launched in beta in early 2024 and is still maturing.

### Complex localization setup

Yes, it supports multilingual content, but setting it up feels like assembling IKEA furniture blindfolded. It works, but expect extra config, extra steps, and extra patience.

### Version history still tier-gated

Global draft versions now ship automatically with every versioned item (no manual setup required as of March 2026), which is a genuine improvement. Full version history, rollbacks, and controlled releases are still locked behind higher-tier plans, though, so if predictable publishing workflows are a must, check your tier carefully before committing.

### Vue.js knowledge requirement

Custom interfaces and deeper tweaks need Vue.js, so if your team only speaks React, prepare for a small identity crisis (or a hiring plan).

### Large dataset performance issues

Heavy tables and deeply relational data can slow down queries and the UI: community reports show 25K-row datasets where raw SQL runs in milliseconds but the Directus API takes 20+ seconds, largely due to internal query overhead and no auto-indexes on foreign keys.

## Target: Craft CMS

- **Type:** hybrid
- **Official site:** https://craftcms.com
- **Pricing:** https://craftcms.com/pricing
- **Last reviewed:** 2026-07-28

## 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.

## 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.

## Frequently asked questions

### How do we migrate content out of Directus?

Directus sits directly on your SQL database, which is both a blessing and a curse during migration. The blessing is that your content is in standard PostgreSQL, MySQL, or SQLite tables, so extraction is as simple as SQL queries. The curse is that Directus stores relational data and file references in its own conventions, so you need to untangle junction tables and re-map asset URLs. We write custom migration scripts for each project. A typical Directus migration with 50 to 100 content types takes 3 to 5 weeks.

### Why do teams move away from Directus?

The two biggest triggers we see right now are licensing uncertainty and pricing sticker shock. Directus moved to the Monospace Sustainable Core License (MSCL) with v12 in May 2026, replacing the old BSL. Organisations under $5M revenue and 50 employees get a free Innovation Grant, but even above those thresholds the MSCL still permits free use of the Core tier, so larger orgs aren't categorically forced onto paid plans, though many opt into the cloud or a commercial self-hosted license for the production features sitting outside Core, and the community is noticeably split, with some teams forking old versions or migrating off entirely. On the cloud side, the old unlimited tier is gone; the Professional plan is $99/month and caps you at 5 users, 75K database entries, and 250K API requests. Growth past those limits means a jump straight to custom Enterprise pricing. On the development side, any custom interface work still requires Vue.js, which creates friction for React-focused teams. Breaking changes between updates also erode trust over time. Teams that started with Directus for its open-source appeal often outgrow it when they need predictable pricing and cleaner editorial workflows.

### Can we keep our existing database when migrating from Directus?

You can keep your database infrastructure, but you'll likely restructure the schema. Directus creates its own system tables (directus_users, directus_permissions, directus_files, etc.) alongside your content tables. During migration, we extract the content tables, transform the data to fit your new CMS's content model, and leave the Directus system tables behind. If you're moving to a headless CMS like Sanity, the data moves from SQL rows to structured JSON documents, which typically results in a cleaner content model.

### How much does Craft CMS cost for an agency managing multiple sites?

The costs add up quicker than most agencies expect. The Solo tier is free for single-user projects, Team is $279 per project, and Pro is $399 per project. Both paid tiers carry a $99 annual renewal fee. If you're running 10 client sites on Pro, that's $3,990 upfront plus $990 per year in renewals before you've paid for a single plugin. Popular plugins like SEOmatic, Blitz (caching), and Navigation run $99-$199 each. Factor in PHP hosting ($20-$100/month per site depending on traffic) and the total per-project cost lands between $500 and $1,500 in year one. It's reasonable for individual projects but the aggregate cost across a portfolio is where agencies feel the squeeze.

### What are the hidden costs of running Craft CMS?

Beyond licensing, three costs catch teams off guard. First, PHP hosting. Craft needs PHP 8.2+, MySQL or Postgres, and proper server configuration. You can't deploy to Vercel or Netlify like you would with a headless CMS. Budget $20-$100/month per site for decent managed hosting. Second, major version upgrades. Craft doesn't let you skip versions, so going from Craft 3 to 5 means stepping through 3 to 4, then 4 to 5, each with breaking changes to Twig templates and plugin compatibility. We've seen agencies spend 20-40 hours per upgrade. Third, developer dependency. Craft assumes your team has PHP developers on hand. If your agency is moving toward JavaScript stacks, maintaining Craft expertise becomes an overhead.