Last updated: August 20, 2026 (40/40 manifests migrated · 3 of 40 packages have real source — directus complete but
not yet runnable, types complete (56 of 56 files), schema newly started (3 of 16 files) · 5 real gaps found and
fixed, 1 tracked openly)
This is an independently maintained port of Directus's own monorepo — a real-time API/App dashboard that wraps any SQL database with REST and GraphQL APIs and a visual management Studio — migrated from pnpm to Yarn and rebuilt one package at a time, each file evaluated and upgraded against what's actually current rather than copied over wholesale.
Not a fork left as-is. Every pnpm-specific mechanism Yarn has no exact equivalent for got a real decision, tested against a real install — two of those first-pass decisions were wrong and got corrected properly rather than left standing. Two more real gaps turned up in Directus's own published source and tooling. All five are disclosed, not smoothed over — see the Yarn Migration diagram.
At a glance: 40/40 workspace manifests migrated, packages/types complete (56 of 56 files) and packages/schema
started (3 of 16 files) — each file added one commit at a time and diffed byte-for-byte against upstream before landing
— five real gaps found and fixed, and this repo's own status kept honest across five public surfaces — todo.md,
architect.md, the profile README, the portfolio site, and the wiki — with a full drift sweep run periodically rather
than assumed still accurate.
- System Architecture — the four-layer dependency shape (foundation → CLI → runtimes → tests) and exactly what's real today
- Yarn Migration — the six pnpm mechanisms with no exact Yarn equivalent, five real gaps found and fixed, one still open
- Package Manifests — all 40 workspace packages, grouped by role, each with a real one-line description
- Known Gaps — CI, testing, and Docker gaps, stated plainly rather than buried in a table
The wiki goes deeper per completed piece of work, each page linking back to the real source rather than repeating it.
todo.md— the evidence-backed log of everything done and everything still open, with commit hashes. This is the source of truth for progress.architect.md— how this repo is put together and why, verified against the real source rather than described generically.- GitHub Project board — a Scrum-style Backlog/In Progress/Done
view of the same work, kept in sync with
todo.md. portfolio.html— this repo as a portfolio piece: real gaps found, real corrections made, and why, for anyone scanning it rather than reading it as documentation.contributing.md— development setup and contribution principles.
Moving a large monorepo off pnpm is a genuinely common, genuinely underrated engineering task — the kind of work that
shows up in real migrations far more often than greenfield builds do. Directus's own monorepo (40 workspace packages, a
331-entry shared version catalog, 17 CI workflows, two Dockerfiles) made a useful subject precisely because pnpm has
mechanisms Yarn has no exact equivalent for: catalog:, pnpm.overrides, a regex script-filter, pnpm deploy,
pnpm fetch's layer-caching, and an onlyBuiltDependencies allowlist. Each one needed a real decision, verified
against a real install or a real compiler run — not assumed correct because it looked reasonable.
Every workspace's package.json (40 of them) is migrated — yarn install resolves the full dependency graph today.
directus (the CLI wrapper) has a complete source tree, though not yet a runnable one: cli.js imports
@directus/update-check and dynamically imports @directus/api/cli/run.js, both still manifest-only. packages/types
is complete — 56 of 56 files, added one file per commit and diffed byte-for-byte against upstream before landing —
though it doesn't fully type-check yet: cross-package dependencies on @directus/constants and @directus/schema touch
several of its files each, plus one more on @directus/ai. packages/schema is newly started (3 of 16 files), directly
chipping away at two of those gaps. The other 37 workspace packages exist on disk as manifests only. See
todo.md for the full build-out plan and the honest current state.
packages/types/ shared TypeScript types ✅ 56 of 56 files
packages/schema/ DB schema inspector 🚧 3 of 16 files
directus/ CLI wrapper (bin) ✅ source done, not yet runnable
packages/ (30 others) constants, utils, storage drivers… ⬜ manifest only
sdk/ TypeScript client for integrators ⬜ manifest only
api/ Express/Knex backend ⬜ manifest only
app/ Vue 3 Studio ⬜ manifest only
tests/ blackbox (+2 fixtures), e2e, mock-license… ⬜ manifest only
Not runnable end-to-end yet — directus's own CLI can't execute until @directus/api and @directus/update-check
have real source, and api/app are still manifests. See todo.md for the honest current state. What
follows is prerequisite setup, useful today regardless of how much of the app exists.
- Clone this repository:
https://github.com/Terrence721/directus-main - Install Node.js 26 (pinned in
package.json'sengines.node) — Corepack isn't bundled in this Node build, confirmed locally, so runnpm install -g corepackfirst, thencorepack enablefor Yarn 4.18.0 - Install & start Docker Desktop —
docker-compose.ymlbrings up every supported database backend (Postgres, MySQL, MariaDB, MSSQL, Oracle, CockroachDB) plus Redis and MinIO for the eventual test matrix
yarn installResolves the complete 43-manifest dependency graph today, even though most packages are source-empty — adding real source to each one is purely additive from here.
yarn buildScoped to --include directus in the root script — the only workspace with a build script and real source right now.
That scope grows by name as each package lands real source, not all at once.
For more information on contributing to this repo, read the contribution documentation and the Code of Conduct.
Licensed under the Monospace Sustainable Core License (MSCL) 1.0 — see license for the full text.
Free for most builders. Organizations under $5M in annual revenue and 50 employees can use it for free.
Free Core Tier. A free tier is available to everyone to explore and build on without a commercial license.
Commercial License. Organizations above those thresholds using advanced or enterprise features require a commercial license.
Built from Directus's own monorepo, copyright Monospace Inc. — kept as-is in
directus/license rather than reattributed. For the original, upstream-maintained version, see the
source repo directly.
