mrkeyoor.com_
Wed 16 Sept 18:59 UTC
Dataevaluationupdated 26 Aug 2026

directus review

Directus sits in front of a SQL database and generates REST and GraphQL APIs, a browser-based data Studio, authentication, permissions, automation flows, and an MCP server. It lets developers keep control of the schema while editors and operators work through a friendlier interface.

+112stars / 7d
Verdict

Our Directus install added 2,195 packages and used 1,227 MB, then built in 42 seconds before the overall test command failed after 292 seconds. Directus is a strong fit when an existing SQL schema needs governed APIs and a capable data interface for non-developers. Read the MSCL terms before architecture work, and treat MCP access as production database access with the same narrow roles and audit expectations.

We ran it

Lab card: what happened when we ran directusScreenshot of directus (directus.com)
Install✓ · 86s2195 packages · 1227 MB
Build✓ · 42s
Tests✗ · 292s5 passed · 0 failed of 5 (vitest)
Repo4625 files~528,493 lines of source · 26 MB · 19 CI workflows · Dockerfile · tests dir

Answers from our run

Does directus build from source?

Dependencies installed in 86 seconds (2195 packages), and the build succeeded in 42 seconds. We cloned commit 2abb57f into a clean Debian container with 3 CPUs and no project-specific setup.

Do directus's tests pass?

Yes: 5 of 5 passed when we ran the project's own test command (vitest). Some failures need services or credentials a bare container does not have.

Who should not use directus?

Organizations that assume source-visible means OSI open source: Directus uses the Monospace Sustainable Core License, with revenue, employee, tier, and commercial terms.

What are the alternatives to directus?

Strapi, Payload, Supabase. Our Directus install added 2,195 packages and used 1,227 MB, then built in 42 seconds before the overall test command failed after 292 seconds.

Setup3/5Build passed, but 2,195 packages and full services add weight
Docs5/5Clear product, deployment, permissions, extension, and license docs
Community5/537,548 stars with active releases, issues, and pull requests
Maturity4/5v12.3.1 is active; CLI tests failed in the measured run

Discussed on

  1. hnDirectus – real-time REST and GraphQL API of any SQL database72 points
  2. hnOur repo hit a milestone today with 25k GH stars7 points
  3. hnDirectus become semi-closed source after benefits from open source contributions5 points
  4. hnSelf-hosted Directus 12 requires a license key to lift caps4 points
  5. hnDirectus – Open-source headless CMS and API built with PHP3 points

Who it’s for

Teams with SQL data that need an API and an admin interface without building both.
Product groups where developers own schemas but non-developers manage records and files.
Organizations that need field-level permissions for people, applications, and MCP agents.
Self-hosters prepared to operate a database, file storage, caching, upgrades, and backups.
Projects whose size and feature use fit the MSCL terms or whose budget includes a commercial license.

Who it’s NOT for

Organizations that assume source-visible means OSI open source: Directus uses the Monospace Sustainable Core License, with revenue, employee, tier, and commercial terms.
Teams wanting a document-first CMS whose schema is hidden from editors: Directus exposes relational data concepts and expects deliberate modeling.
Operators who want a tiny dependency footprint: our install added 2,195 packages and used 1,227 MB.
Buyers who require a completely green source test run: the CLI package reported 18 failed tests and 2 errors in our sandbox.
Anyone giving an MCP agent broad database permissions without review: the README says agents act on live data under assigned policies.

Setup reality

Our pnpm install succeeded in 86 seconds, adding 2,195 packages and using 1,227 MB. The build passed in 42 seconds. Tests exited 1 after 292 seconds: the harness summary recorded 5 passed and 0 failed of 5, while the CLI package reported 485 passed, 18 failed, and 2 errors across 503 tests.

A useful instance needs a supported SQL database, an administrator account, storage, and permission policies. Redis and S3-compatible storage appear in the Railway deployment. The native MCP server needs narrowly scoped agent credentials.

This is a 4,625-file pnpm monorepo with about 528,493 source lines, 19 CI workflow files, a Dockerfile, a compose file, and tests. Licensing must be checked against organization size and selected features.

Directus turns one SQL schema into three working interfaces

Directus reads a SQL schema and exposes it through REST, GraphQL, and a visual Studio. Developers keep the database model, while editors can update records, upload files, run flows, and use saved views without asking for a custom admin screen. Authentication and policy rules sit across those entry points. This is useful when the database is the product's shared source of truth and several kinds of user need different ways to reach it.

The repository is a sizable TypeScript system: 4,625 files, about 528,493 source lines, and a 26 MB checkout. Its pnpm workspaces contain the API, Studio, CLI, SDK, extension tools, storage drivers, themes, validation, and shared packages. Adopting Directus removes a custom backend and admin build, but it introduces a platform whose schema metadata, permissions, extensions, and release migrations become part of the application.

The 1,227 MB install makes local setup easy, not small

Directus Cloud is the lowest-operations path. The README also links a Railway deployment that provisions PostgreSQL, Redis, and S3-compatible storage. Self-hosters can use the included Docker and compose assets, then choose a database and storage driver. Starting a process is only the first milestone. A production review still needs connection limits, file retention, email, secrets, cache behavior, backups, restores, and an upgrade procedure.

Our clean install completed in 86 seconds, adding 2,195 packages and consuming 1,227 MB. The build passed in 42 seconds. Those numbers are acceptable for a large monorepo and heavy for a developer who expected a thin API wrapper. Published containers may be the more representative deployment path, while source contributors and extension authors should budget disk and package-cache space for the complete workspace.

What happened when we ran it

We cloned commit 2abb57f into an unprivileged Debian container with 3 CPUs, 8 GB of RAM, Node 22, and no secrets. The 26 MB checkout installed in 86 seconds and built in 42 seconds. Our scan found 19 CI workflow files, a Dockerfile, a compose file, a tests directory, and monorepo workspaces.

The overall test command ran for 292 seconds and exited with code 1. The harness summary recorded 5 Vitest tests passed and 0 failed out of 5. Later, the @directus/cli package reported 28 passing test files and 2 failing files. Its case summary was 485 passed and 18 failed out of 503, plus 2 errors, and pnpm stopped at that first failing workspace.

Those two summaries describe different layers of the run and should not be collapsed into one pass rate. The decisive outcome is the command's exit code: the checked-out monorepo did not finish green in our sandbox. The supplied tail does not include the individual assertion messages, so we cannot say whether the 18 CLI failures came from environment assumptions or product behavior.

Field-level policy also governs MCP agents

The native MCP server connects compatible agents directly to live Directus data. The README says those agents use the same policy system as human users, which is the right security model. It is still only as safe as the assigned role. An agent that can update every collection can make every update its human counterpart can make, only faster and through less predictable instructions.

Create a dedicated MCP role, allow only required collections and fields, and separate read tools from mutations. Test flow triggers because an agent's record update can have effects beyond that row. Release v12.3.1 fixed an MCP OAuth settings-title bug, while recent issue 27184 covered overlapping flow nodes inserted through MCP and had a linked fix. Active work is reassuring; it also confirms that the agent path reaches complex product behavior.

MSCL 1.0 changes the buying calculation

Directus is source available under the Monospace Sustainable Core License 1.0, not an OSI license. The README says organizations under $5 million in annual revenue and 50 employees can apply for an Open Innovation Grant. It also describes a free core tier and says larger organizations using advanced or enterprise features need a commercial license. Legal and procurement teams should read the actual terms and current pricing, not rely on a GitHub badge.

This distinction matters early because Directus can become central infrastructure. Replacing it after editors, APIs, flows, permissions, and extensions depend on its model is expensive. A commercial fee may be reasonable compared with building those parts, but it belongs in the architecture decision. Strapi, Payload, and Supabase divide the same problem differently and carry their own licensing and product boundaries.

v12.3.1 is active, with 388 issues and PRs open

GitHub recorded the latest push on August 25, 2026, when v12.3.1 was also published. The release fixed WebSocket listener accumulation, GraphQL null fields, registration verification, permission recommendations, instance-setting sync, subscriptions, and storage dependencies. GitHub showed 37,548 stars and 388 open issues and pull requests. That combined number includes proposed changes and should not be reported as 388 bugs.

Directus earns a serious trial when relational data needs an accessible control surface and instant APIs. Model a representative schema, reproduce real permission boundaries, connect the intended storage, and test backups before committing. Our successful 42-second build supports confidence in the source path, while the 18 CLI test failures rule out calling this commit clean in our environment. The license and agent permissions deserve the same attention as the interface.

Alternatives

ProjectWhat it isPick it when
Strapi gh↗A JavaScript headless CMS with a visual admin panel and plugin system.pick this instead when content types and editorial workflows matter more than wrapping an existing SQL schema.
Payload gh↗A TypeScript application framework and headless CMS designed to live inside a codebase.pick this instead when developers want the CMS configured in TypeScript and shipped with the application.
Supabase gh↗A Postgres-centered backend platform with APIs, authentication, storage, and realtime features.pick this instead when database infrastructure and application backend services matter more than an editor-facing data Studio.

Sources

  1. Directus README
  2. Directus v12.3.1 release
  3. Directus issue 27184
  4. Directus issue 27742

More data reviews

dbt · GeoLibre · TradingView-API · os-taxonomy · Lean · bokeh · the whole board →