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.

