{
  "id": 6982435,
  "title": "Why we moved our Backstage platform from Yarn to pnpm",
  "url": "https://urgent.news/2026/09/12/why-we-moved-our-backstage-platform-from-yarn-to-pnpm",
  "topic": "tech",
  "section": "Tech",
  "published": "2026-09-12T19:44:23.000Z",
  "source": {
    "name": "Dev.to",
    "slug": "dev-to",
    "url": "https://dev.to/bogdan_nechyporenko/why-we-moved-our-backstage-platform-from-yarn-to-pnpm-21ap"
  },
  "original_language": "en",
  "account": "Bol, a company utilizing the Backstage platform for five years, decided to switch their internal developer platform from Yarn to pnpm. The move aimed to improve parallel development using Git worktrees and enhance the package manager's efficiency. However, the migration turned out to be more complex than anticipated.\n\nDuring the switch, CI runs revealed significant issues with the package manager's cache. The cache was writing to the wrong location in GitLab, causing each job to start from scratch. The solution was to set the correct cache location explicitly in the CI configuration, ensuring jobs could reuse the store effectively.\n\nAnother challenge arose when pnpm's archive grew to 1.42 GB due to cached node_modules trees. This cache was not providing the expected performance benefits as it still rebuilt dependency layouts and native modules. By removing node_modules from the cache paths, the archive size reduced by 72% and file count by 59%, saving approximately six minutes per pipeline.\n\nMoving to pnpm also posed challenges to the custom worktree machinery used for local development. The existing symlinking logic became incompatible with pnpm's virtual store and links, leading to ENOTDIR failures. To resolve this, the custom logic was removed, and the process was simplified to a single command: pnpm install --frozen-lockfile. This change allowed each checkout to get its own installation while still benefiting from the shared store.\n\nIn conclusion, the migration from Yarn to pnpm presented several challenges, including cache misconfiguration and compatibility issues with the custom worktree machinery. By addressing these issues and optimizing the configuration, the company successfully transitioned to the new package manager, achieving better performance and a more efficient development workflow.",
  "summary": "What Git worktrees, parallel coding agents, and a cache pointing at the wrong directory taught us about the assumptions hiding inside node_modules . I’m a developer at bol, where we have been building and running our internal developer platform on Backstage for more than five years. After that much time, a Backstage platform becomes more than a collection of plugins. It accumulates its own ways…",
  "key_points": [
    "Company migrated from Yarn to pnpm for Backstage platform",
    "CI runs revealed cache issues causing each job to start from scratch",
    "Optimizations reduced pnpm archive size by 72% and saved pipeline time"
  ],
  "editors_take": null,
  "illustration": null,
  "coverage": {
    "outlets": 1,
    "also_reported_by": []
  },
  "ai_generated": true,
  "disclaimer": "Summaries, key points and the editor’s take are written by software from other outlets’ reporting and may contain errors — always check the linked original."
}