Skip to main content
Magic Resume is a pnpm + Turborepo monorepo. Package manager is pinned to pnpm@10.28.1 in the root package.json so CI and local installs stay aligned.

Workspaces

Package boundaries

These are enforced by code review rather than tooling. Keep them honest:
@magic-resume/mcp must not import from:
  • Next.js or React component packages
  • Browser APIs (window, localStorage, IndexedDB)
  • Anything in apps/web
It’s a plain Node ESM library + CLI. Adding a browser import will break node --test and npm publish.
  • apps/web may depend on any packages/* workspace.
  • packages/resume-templates depends on packages/resume-schema. The reverse must not happen — schema is the leaf.
  • packages/mcp depends on packages/resume-schema and packages/resume-templates. Not on apps/*.
  • New shared shapes belong in packages/resume-schema, not duplicated into apps/web.

Turborepo

The root package.json runs everything through Turbo:
To target one workspace, skip Turbo and use a pnpm filter:

Working with workspace:*

All cross-workspace deps use the workspace:* protocol in package.json. This means you must run pnpm install from the repo root, not from inside a workspace, or pnpm can’t resolve the link. When you publish @magic-resume/mcp, pnpm rewrites workspace:* to the real version at pack time — no manual bumping needed.