Skip to content

⭐ Architecture Overview

Terrence Daniels edited this page Aug 26, 2026 · 6 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) and now fully type-checks and builds for real — see Known Gaps for the full account of its three original cross-package dependencies, all now resolved. schema/ (15 of 15 files), constants/ (12 of 12 files), ai/ (4 of 4 files), and schema-builder/ (6 of 6 files) are all also complete and build for real — schema-builder/ involved a real circular import in upstream's own class design, surgically removed via a scoped SRP extraction and verified against upstream's own real test suite (15/15 passing). errors/ is newly started (5 of 52 files) — the other of @directus/utils's two remaining blockers. sdk, api, app, the other 26 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