Skip to content

⭐ Architecture Overview

Terrence Daniels edited this page Aug 26, 2026 · 5 revisions

Full detail: architect.md in the main repo. This page is the short version.

Why a monorepo

Directus's own split is the starting point, not something redesigned from scratch: api (Express/Knex backend) and app (Vue 3 SPA) are different runtimes that ship together; packages/* (32 of them) are the shared surface split by concern — types, utilities, 6 independent storage-driver backends, the extension framework, standalone tooling; directus is a thin published bin wrapper, not application logic itself; sdk targets a genuinely different audience (third-party integrators); tests/* are their own workspace projects with their own dependency graphs.

What's real today

Every one of the 40 workspace package.json files exists and is migrated — yarn install resolves the complete dependency graph. directus/ (6 files: cli.js, version helpers, license, readme) has complete real source, types/ is complete (56 of 56 files — see Known Gaps for the 1 cross-package dependency still blocking a full type-check), schema/ (15 of 15 files) and constants/ (12 of 12 files) are both complete and build for real, and ai/ is in progress (2 of 4 files) — the last of types/'s three original blockers. sdk, api, app, the other 28 packages/*, and all 4 tests/* projects are manifests waiting on source trees — see Package Manifests.

Services breakdown

  • CLI: directus — depends on @directus/api/@directus/update-check via workspace:*.
  • Core runtime: api, app, sdk.
  • Extension system: extensions, extensions-registry, extensions-sdk, create-directus-extension.
  • Storage: storage + 6 drivers (local, S3, Azure, GCS, Cloudinary, Supabase).
  • Shared foundation: types, utils, constants, errors, env, schema, schema-builder, system-data, validation, format-title, memory, pressure, themes, stores, visual-editing, ai.
  • Release tooling: release-notes-generator (mid-migration, see Known Gaps), create-directus-project, update-check.
  • Tests: blackbox, e2e, mock-license-server, sandbox.

Clone this wiki locally