UnfoldCMS vs Directus

Data platform vs marketing CMS — honest comparison

UnfoldCMS vs Directus

Directus and UnfoldCMS are the two products in the self-hosted CMS space that are easiest to confuse on paper. Both are open or source-available. Both run on your servers. Both are pitched at developers. Both expose REST and GraphQL APIs. The differences only show up once you've used either one for more than a weekend.

This page compares UnfoldCMS and Directus head-to-head: pricing, architecture, what each one is genuinely good at, and where each one fits.

TL;DR: Directus is a Node CMS that auto-generates an admin from your existing SQL database — point it at any Postgres or MySQL schema and it builds the editor for you. UnfoldCMS is a Laravel CMS with a hand-crafted admin and a fixed content model (posts, pages, sections, custom content types). Pick Directus if you have an existing database you want to expose as a CMS. Pick UnfoldCMS if you want a polished marketing-site CMS out of the box, with one-time pricing and PHP shared hosting support.


Quick Comparison

Feature Directus UnfoldCMS
Pricing model Free OSS + $49–$999/mo Cloud + Enterprise One-time $39–$999
License BUSL (Business Source License) Source available, commercial
Self-hosted Yes (Node + Postgres/MySQL) Yes (any PHP host, including shared)
Backend stack Node.js + TypeScript PHP 8.3 + Laravel 12
Admin generation Auto from existing SQL schema Hand-crafted, fixed content model
Database support Postgres, MySQL, SQLite, MariaDB, MS SQL, Oracle MySQL, SQLite
API REST + GraphQL (auto-generated) REST + GraphQL
Admin UI Vue 3 + custom design system shadcn/ui + Tailwind v4 + 3 themes
Includes themed frontend? No (headless only) Yes (Aurora, Default themes)
Hosting requirement Node + Postgres PHP shared hosting works
Docker required Recommended No
Real-time updates Yes (WebSockets) No (REST polling)
File storage drivers Local + S3/Azure/GCS/Cloudinary Local + S3
Granular permissions Yes (field-level) Yes (role-based)
Built-in marketing sections No Yes (block-based section builder)
Built-in SEO records Plugin/extension Yes (per-post)
Built-in redirects Plugin/extension Yes (admin UI)

Two Approaches to "Self-Hosted CMS"

Directus and UnfoldCMS sit on the same shelf in a CMS comparison list, but they solve different problems.

Directus is a "data platform" first, CMS second. The pitch: you have a SQL database (existing or new), point Directus at it, and it generates a full admin interface, REST API, and GraphQL API from your schema. This is genuinely powerful for use cases like exposing an internal CRUD app, building a custom admin for a SaaS product's data, or wrapping a database that already has business logic in it. The CMS use case (blog, marketing pages, content delivery) is one application of the data-platform idea, not the core focus.

UnfoldCMS is a CMS first, last, and only. The data model is fixed — posts, pages, sections, menus, redirects, SEO records, media library. The admin is hand-built around content publishing workflows. There's no "point it at any database" feature because the database is the CMS's database, not yours. The trade-off is less flexibility and more polish for the specific job of running a marketing site, blog, or product content site. We covered this in self-hosted CMS vs SaaS CMS — both products are firmly self-hosted; the question is which mental model fits your work.

If you're building an internal admin for a SaaS product's existing database, Directus is the better tool. If you're building or migrating a marketing site, blog, or content-driven product page, UnfoldCMS is the better tool.


The Pricing Story

Directus has two pricing models:

Directus (open source, self-hosted): Free under the BUSL. The BUSL is not OSI-approved open source — it's a "source-available" license with a 4-year delay before each version becomes Apache 2.0. For most users this is fine; for organizations with a hard MIT/Apache requirement, it's a problem. You run Node, manage a Postgres or MySQL database, and handle Docker orchestration in production.

Directus Cloud: Managed hosting starting at $49/month (Starter), with Team ($199/month) and Enterprise (custom) tiers. The Cloud product has its own limits — admin users, API request volume, asset bandwidth — that scale with the tier.

UnfoldCMS pricing:

Tier Price Domains
Core $39 1
Pro $99 1
Business $269 3
Agency $999 Unlimited

No monthly fees. No Cloud tier. No metered API requests. The Agency tier covers unlimited domains under one license — for agencies running multiple client sites, the math is straightforward.

"Directus Cloud's Team tier was great until we hit the API request limit during a launch. Forced upgrade to Enterprise mid-month. Self-hosting saved us, but I wish we'd done it from day one." — paraphrased from r/selfhosted, 2024

5-year cost comparison (one site, mid-tier usage):

Platform Monthly 5-Year Total
Directus Cloud Team $199 $11,940
Directus self-hosted ~$15 (VPS) $900 (hosting only)
UnfoldCMS Pro + VPS ~$15 (VPS) $1,000 ($99 once + hosting)

Self-hosted Directus is cheaper than Cloud by a wide margin — but the operational cost (running Node, managing Postgres, Docker upgrades) is real. UnfoldCMS lands at similar cost but runs on PHP shared hosting that doesn't need ops.


Where Directus Wins

A fair comparison admits where the other side is genuinely better. Directus wins in three places:

Database flexibility. Directus auto-generates an admin from any supported SQL database — Postgres, MySQL, SQLite, MariaDB, MS SQL, Oracle. Bring an existing schema, point Directus at it, and you have a working admin in minutes. UnfoldCMS uses its own fixed schema; if you have an existing database you want to expose, Directus is the right tool.

Field-level permissions. Directus supports granular permission rules at the field level — Role A can edit title but not published_at, Role B can read slug but not body. UnfoldCMS uses role-based permissions at the content-type level, which covers most editorial workflows but isn't as fine-grained.

Real-time and webhooks ecosystem. Directus ships WebSocket subscriptions for real-time updates and a mature webhook/event system for integrations. For applications that need live content updates pushed to clients, this is a real advantage.

If your project is "expose an existing SQL database as an admin and API" or "build a custom admin where multiple roles have different field-level access", Directus is the cleaner fit.


Where UnfoldCMS Wins

Polished marketing-site features out of the box. Directus is headless — you build the frontend separately. UnfoldCMS ships with two themed frontends (Aurora, Default), a section block builder for marketing pages, built-in SEO records, redirects, forms, and menus. For a marketing site, blog, or product content site, you're up in minutes instead of hours.

One-time price. Directus self-hosted is free; UnfoldCMS isn't. But if you're considering Directus Cloud at $49–$199+/month, UnfoldCMS Pro at $99 once is roughly six months of Cloud Starter. After that, you're saving money every month.

PHP shared hosting compatibility. Directus requires Node, Postgres or MySQL, and ideally Docker for production. UnfoldCMS runs on the same $5/month cPanel hosting that runs WordPress. For freelancers, agencies, and small projects without dedicated ops, this matters.

Hand-crafted admin built on shadcn/ui. Directus auto-generates the admin from your schema, which is powerful but inevitably looks generic — every Directus admin looks like every other Directus admin. UnfoldCMS's admin is built on 50 shadcn/ui components in production, tuned for content publishing workflows. We covered the broader why shadcn/ui matters for a CMS argument — fork-and-modify, not auto-generate.

Modern Laravel stack. Laravel 12 + React 19 + TypeScript + Inertia 2 + shadcn/ui. For PHP-shop teams, this fits naturally. For Node-shop teams, Directus is closer to home.


Developer Experience

Directus's developer story is strong if you live in Node. The CLI is solid, the SDK is well-documented, and the API is auto-generated and consistent. The friction shows up in three places:

Schema-first means schema-coupled. Adding a content type means adding tables, columns, relationships — all in the database. The admin reflects whatever the schema says. This is great for data-platform use cases and awkward for editorial workflows where you want curated content types instead of raw SQL.

Customization requires extensions. Directus has an extension API (Vue components, custom hooks, custom endpoints), but extending the admin means writing Vue code and packaging it as a Directus extension. For teams that want to bend the admin to their workflow, this is a learning curve.

Upgrade complexity. Directus has shipped major versions with breaking changes (v8 → v9 → v10 timelines were rough). The BUSL license also affects long-term planning if your org cares about license terms.

UnfoldCMS runs on Laravel. Adding a content type is a Laravel migration plus a model — same pattern any Laravel developer already knows. The admin is React + Inertia, so customizing it is editing React components, not packaging extensions. Upgrades follow standard Laravel patterns: git pull, composer install, php artisan migrate. We covered the developer-friendly CMS features that drive these trade-offs.

If you're a Node developer building a custom admin for an existing schema, Directus is the cleaner DX. If you're a Laravel developer (or stack-agnostic) building or migrating a marketing site, UnfoldCMS is the cleaner DX.


Who Should Choose Directus

  • Teams with an existing Postgres/MySQL/MS SQL database they want to expose as an admin and API
  • SaaS products building internal admin tools where field-level permissions matter
  • Projects needing real-time updates via WebSockets
  • Node-first teams comfortable with Docker, Postgres, and TypeScript
  • Anyone whose project is fundamentally a "data platform" with a CMS use case attached

Who Should Choose UnfoldCMS

  • Agencies and freelancers running marketing sites, blogs, and product pages
  • Teams that want a CMS, not a data platform — fixed content model, polished editorial workflow
  • Anyone hosting on PHP shared hosting where Node and Docker aren't an option
  • Developers on Laravel stacks who want a CMS that fits their existing tools
  • Teams running multiple sites under one license (Business: 3 domains, Agency: unlimited)

If you're moving from WordPress and weighing self-hosted alternatives, the question to ask is: do you need a database admin or a content management system? Both Directus and UnfoldCMS are good products — they're just answering different questions.

For more comparisons, see how UnfoldCMS stacks up vs Strapi (the other Node OSS option), vs Payload (Node + TypeScript with React admin), vs Contentful (managed headless SaaS), vs Sanity, vs Storyblok, vs Ghost, or vs WordPress.


Migration: Directus → UnfoldCMS

Directus-to-UnfoldCMS migration is mechanical but requires explicit content-model mapping. Directus's auto-generated admin reflects whatever your database schema says, so the migration depends on how that schema is structured.

Typical migration steps:

  1. Inventory Directus collections — which ones map to blog posts, which map to pages, which are custom content types
  2. Export each collection's items via the Directus API (GET /items/{collection}?limit=-1)
  3. Map Directus fields to UnfoldCMS content-type fields (some fields drop, some get renamed, some need transformation)
  4. Import via the UnfoldCMS REST API or direct database import
  5. Mirror media assets from Directus's file storage to UnfoldCMS media library
  6. Set up redirects if URL patterns change

Most projects with under 5,000 items migrate in a half-day. Directus sites with deep relational schemas, custom fields, and complex permission rules take longer.

Migration Service

If you'd rather not do it yourself, we offer two options:

Migration Starter — $149 A 30-minute call to map your Directus collections to UnfoldCMS content types, plus a written migration plan you can hand to a developer or follow yourself.

Migration Concierge — $499 Done-for-you migration of one site: up to 10,000 items, all media assets, content model mapping, field-level transformations, and a post-migration review call. You provide Directus API access; we deliver a live UnfoldCMS installation.

Both services include a 30-day guarantee — if something doesn't transfer cleanly, we fix it.


Trust Block

Who this is for: Developers and agencies running self-hosted Directus for marketing-site or content-publishing use cases who want a more focused CMS — fixed content model, polished editor, PHP-stack compatibility, and one-time pricing.

What it replaces: Directus self-hosted (free + ops cost) or Directus Cloud Starter ($49/mo) / Team ($199/mo).

What it costs: UnfoldCMS Pro license — $99 one-time. Agency tier ($999 one-time) for unlimited domains.

What happens after you buy:

  1. Download the installer and run composer install — live in under 5 minutes on any PHP host
  2. Map your Directus collections to UnfoldCMS content types via the migration guide or book the Migration Starter call
  3. Point your frontend at the UnfoldCMS REST/GraphQL API — same headless pattern, different endpoint

FAQ

Is UnfoldCMS open source like Directus? Directus is licensed under the BUSL (Business Source License) — source-available with a 4-year delay before each version becomes Apache 2.0. UnfoldCMS is source-available under a commercial license — full source, modify and self-host without restriction. Neither is OSI-approved open source like Strapi (MIT) or WordPress (GPL). If pure OSS is a hard requirement, look at Strapi or Ghost.

Can Directus run on PHP shared hosting? No. Directus requires Node.js and a managed Postgres or MySQL database. Shared cPanel hosts that only run PHP can't host Directus. UnfoldCMS runs on the same shared hosting that runs WordPress.

Does UnfoldCMS support arbitrary databases like Directus? No. UnfoldCMS uses its own fixed schema (MySQL or SQLite). It's a CMS, not a data platform. If your project needs to expose an existing Postgres database as an admin, Directus is the right tool.

Which has a better admin UI? This is subjective. Directus's auto-generated admin is functional and consistent, but every Directus admin looks similar regardless of what you put in it. UnfoldCMS's admin is hand-crafted on shadcn/ui with three switchable themes — more polished for editorial workflows, less flexible for arbitrary database admins.

How does pricing compare for an agency running 10 client sites? Directus self-hosted is free per-site, plus Node hosting (~$15–$25/month per site) — ~$150–$250/month across 10 sites recurring. UnfoldCMS Agency is $999 once for unlimited domains plus your hosting bill. Over 5 years, the difference is meaningful.

Can I use UnfoldCMS as a pure headless CMS like Directus? Yes. UnfoldCMS exposes a full REST API and GraphQL endpoint — same headless pattern as Directus. The difference is that UnfoldCMS also ships with themed frontends, so you can use it traditionally if you want, or headlessly with Next.js/Astro/SvelteKit/Nuxt.

What about real-time updates and WebSockets? Directus ships WebSocket support for real-time content updates. UnfoldCMS uses standard REST polling for now. For applications that need live updates pushed to clients (collaborative editing, live dashboards), Directus is the better fit.

Can I migrate from Directus to UnfoldCMS without losing content? Yes. Directus exposes content via the REST API. Map collections to UnfoldCMS content types, import via REST API, mirror media. Our Migration Service handles content, media, and content model mapping at $149 (small sites) or $499 (production sites with up to 10,000 items).


Methodology

Directus pricing data is from directus.io/pricing as of May 2026. License terms reference the Directus BUSL documentation. Self-hosted requirements come from Directus's official documentation. Major version migration history references public Directus changelogs and community discussions on r/selfhosted, GitHub Discussions, and the Directus Discord (2022–2025). UnfoldCMS pricing is from /pricing. Feature comparison is based on direct product testing of both platforms and review of each vendor's official documentation.


Try UnfoldCMS

If UnfoldCMS sounds like the right fit, the live demo takes about 90 seconds — browse the admin, edit a post, switch themes without installing anything. Pricing is one-time and all tiers include the full source. Questions about migrating from Directus? Contact us — we'll scope it honestly before you commit.

If Directus is the right answer for your project, that's a fine call too. Both products serve different audiences.

Looking at other options? See how UnfoldCMS compares to Strapi, vs Payload, vs Contentful, vs Sanity, vs Storyblok, vs Ghost, or vs WordPress.

Related: CMS for agency client sites, migrating from Strapi, or browse all CMS comparison guides.

Powered by UnfoldCMS