The official client repository is a pnpm + Nx monorepo. Use it when you work on @owdproject/core, kits, or the reference desktop/ demo with workspace:* linking.
For how to wire dependencies (npm vs workspace:* vs Git), read Package linking first — most install failures come from a mismatch there.
pnpm-workspace.yaml includes:
| Glob | Contents |
|---|---|
desktop/ | Reference Nuxt shell (pnpm run dev target). |
packages/* | @owdproject/core, @owdproject/kit-theme, @owdproject/kit-fs, @owdproject/kit-explorer, @owdproject/nx, … |
apps/* | App modules when cloned locally (gitignored by default). |
themes/* | Theme modules when cloned locally (gitignored by default). |
plugins/* | Optional Nx/plugin extensions. |
Not in packages/ (external npm modules):
@owdproject/module-fs — virtual filesystem (ZenFS).@owdproject/module-persistence — optional Pinia persistence.Install them with desktop add module-fs and list them in desktop.config.ts → modules. They are documented as extension modules, not vendored core packages.
| Script | Purpose |
|---|---|
pnpm run dev | Starts desktop/ via Nx (desktop:serve). |
pnpm run prepare:stubs | Stub-builds kit packages and any workspace themes/apps that use nuxt-module-build. |
pnpm run prepare:modules | prepare:stubs + dev:prepare on packages/apps/themes (--if-present). |
pnpm run prepare:themes | Theme dev:prepare only. |
pnpm run validate:modules | Runs desktop validate across the workspace. |
pnpm desktop | Core CLI (add, validate, template, …). |
pnpm template:sync | Refresh template/ from the core blueprint. |
After changing source of a publishable module (not just stubs), run prepack / nuxt-module-build build before testing consumers that import dist/module.mjs.
Commit pnpm-lock.yaml at the repo root for reproducible CI. Re-run pnpm install after removing workspace packages or changing workspace:* entries so ghost importers disappear from the lockfile.
/themes and /apps are gitignored in the client repo so you can:
git clone https://github.com/owdproject/theme-nova.git themes/theme-nova
pnpm install
pnpm run prepare:stubs
Each nested repo keeps its own Git history. Prefer workspace:* for @owdproject/core and kits when the folder sits under the workspace globs; use npm semver for @owdproject/core inside standalone theme repos.