Directus logo
Ghost logo

From Directus to Ghost

We are the Directus to Ghost migration experts

Last verified:



Challenges with Directus

Key pain points

Directus looks fantastic in demos, but things get rocky once you actually try to use it at scale. The Professional cloud plan is $99/month and caps you at 5 users, 75,000 database entries, and 250,000 API requests — grow past any of 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.

Help me migrate


Breaking update changes in Directus

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

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

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 in Directus

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

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

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.



Benefits of Ghost

Key advantages

Ghost is genuinely great if all you want is a fast, clean, no-nonsense blogging machine. It keeps things beautifully simple: a slick Markdown editor, zero clutter, and performance scores so good they’ll make WordPress users cry into their PHP logs. If your plan is “just publish content,” Ghost actually gets out of your way and lets you do that.

The built-in memberships and payments system is also a win. You can slap a paywall on your content, charge people to read your mediocre hot takes, and do it all without duct-taping together 12 plugins. For solo creators, small publications, and anyone who wants a simple writing-first experience, Ghost delivers exactly what it promises and nothing you didn’t ask for.

Start my migration


Lightweight JSON API

Lightweight JSON API

Ghost’s API is fast, predictable, and doesn’t make you fight a schema just to fetch a title. It’s perfect for JAMStack setups where you want speed without ceremony. Pull content, ship pages, move on with your life.

Intuitive Markdown editor

Intuitive Markdown editor

If you enjoy writing without 19 toolbars screaming at you, Ghost’s Markdown editor is bliss. Clean, distraction-free, and actually enjoyable to use.

Built-in membership system

Built-in membership system

Memberships, paywalls, and subscriptions come built in, no plugin Frankenstein required. Hook up Stripe and you’re basically running your own mini-Substack in minutes.

SEO-friendly defaults

SEO-friendly defaults

Ghost ships with fast performance, clean URLs, structured data, and proper metadata, without needing an SEO plugin the size of a small country. Most sites hit solid scores straight out of the box.

Native subscription support

Native subscription support

You don’t need 3 SaaS tools duct-taped together to run a newsletter. Ghost handles email delivery, subscriber lists, and automated posts natively.

Easy theme customization

Easy theme customization

Themes are simple to tweak thanks to Ghost’s handlebars-based templates. If you know basic HTML/CSS, you can make it look exactly how you want without fighting a visual builder from 2011.





Common questions

Directus to Ghost migration FAQs

Answers to the most common questions about Directus to Ghost migration

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 Ghost CMS really cost beyond the "free" open source version?
Ghost is free to self-host, but "free" is misleading. You'll need a VPS ($5-$20/month minimum), someone to handle server maintenance, security updates, SSL certificates, and backups. That's either your time or a developer's hourly rate. Realistically, self-hosted Ghost costs $50-$200/month in labour and infrastructure for a small team. Ghost's managed hosting (Ghost Pro) starts at $9/month for the Starter plan (500 members), jumps to $25/month for Creator (1,000 members), and scales to $199/month for the Business tier. Once your membership list grows past a few thousand, costs climb fast. We've seen publishers hit $300+/month on Ghost Pro before questioning whether the platform still made sense for them.
Does Ghost need a developer to maintain it?
If you're self-hosting, yes. Ghost runs on Node.js and requires regular updates, database maintenance (MySQL), and server monitoring. Major version upgrades (Ghost 4 to 5, for example) can break themes and integrations, and someone technical needs to handle those. On Ghost Pro, maintenance is handled for you, but customisation still requires a developer. Custom themes use Handlebars templating, and anything beyond basic styling means editing theme files and redeploying. If your team is purely non-technical and you want to go beyond Ghost's default themes, you'll need developer support on an ongoing basis.
When should you migrate away from Ghost?
Ghost hits its ceiling when you need more than blog posts and newsletters. If you're trying to build landing pages, manage structured content across multiple page types, run an ecommerce store, or handle multi-language content, Ghost wasn't designed for any of that. We've migrated publishers off Ghost when they outgrew the "blog plus newsletter" model and needed a real content platform. The migration itself is painless. Ghost's JSON API makes content extraction simple, and posts map cleanly to markdown. The typical timeline is 4-6 weeks to move content into a headless CMS and rebuild the frontend.
Can Ghost handle a site with more than just a blog?
Barely. Ghost gives you two content types, posts and pages, and that's it. There's no custom content modelling, no relational fields, no structured data beyond tags and authors. You can hack together something with custom routes and internal tags, but it's brittle and hard to maintain. If you need case studies, service pages, team directories, or any structured content beyond articles, you're fighting the platform. Ghost is excellent at what it does. It just doesn't do very much. For sites that need a blog alongside other content types, a headless CMS gives you the flexibility Ghost intentionally leaves out.


Get in touch

Fill out the form below and we'll get back to you