Podcast Summary: Software Engineering Daily
Episode: pnpm with Zoltan Kochan
Date: September 18, 2025
Host: Josh Goldberg
Guest: Zoltan Kochan (creator of pnpm)
Episode Overview
This episode explores pnpm, a modern, fast, and disk-efficient JavaScript and TypeScript package manager built as an alternative to NPM and Yarn. Host Josh Goldberg interviews pnpm creator Zoltan Kochan, tracing his journey from coder to open source maintainer, diving into technical distinctions of pnpm, challenges of managing monorepos, and innovations in package management. The conversation also covers unique features in pnpm, its growing role in complex codebases, and predictions about the future of tooling in the JavaScript ecosystem.
Key Themes and Discussion Points
1. Zoltan Kochan’s Background
- Early Steps in Coding
- Started coding at school in Ukraine (ca. 2004), before having home internet access.
- Was initially interested in painting before pursuing engineering and programming.
- Early experiences included using Pascal, then C, and transitioning to the .NET stack at JustAnswer.
- “In the first couple of years I was coding without Internet...using just old school books and pirate content, I guess in Ukraine.” – Zoltan Kochan [01:42]
2. C#/.NET to JavaScript/Node Transition
- Relished the prototyping speed and lighter tool requirements of JavaScript vs. the boilerplate-heavy .NET stack.
- Emphasized that JavaScript eliminates the need for heavyweight IDEs.
- “What I really loved about JavaScript...it's so much easier to use because you don't need to deal with all that boilerplate...” – Zoltan Kochan [04:53]
3. Why Create pnpm? The Origins and Motivation
- Described slow install speeds and extreme disk usage (30+ minutes for installs, dozens of GBs for node_modules) in monorepos at JustAnswer.
- Discovered pnpm as a solution for improving speed and storage, especially in large monorepos.
- The history of “hoisting” problems in NPM and duplication issues (notably with NPM2’s nested dependencies and NPM3’s change to flattened structure).
- Explains that pnpm was inspired by, and originally forked from, undermaintained projects that tried to resolve structural issues in node_modules using symlinks.
- “If you run PNPM install...it immediately improved speed drastically.” – Zoltan Kochan [06:48]
- “So that's the main reason why PNPM was created.” – Zoltan Kochan [09:54]
4. Technical Deep Dives: hoisting, symlinks, and performance [10:23 – 16:02]
- Hoisting Explained
- Hoisting moves dependencies up to the root of node_modules, which inflates directory size and creates versioning ambiguity.
- “By hoisting we mean that every dependency in the dependency graph is moved to the top of your node_modules directory.” – Zoltan Kochan [10:47]
- Symlinks & pnpm’s Node Modules Structure
- pnpm creates a flat installation with actual code stored in a hidden .pnpm directory; root node_modules contain symlinks to these real folders.
- Leads to vastly reduced disk use and isolation per dependency.
- “The speed difference is actually achieved by something else...instead of having separate installation stages...pnpm [runs] separate independent pipelines for each package.” – Zoltan Kochan [14:56]
- Performance
- pnpm pipelines resolving, fetching, and linking, allowing concurrent, per-package optimization.
5. State of Node.js Package Managers: NPM, Yarn, pnpm [16:53 – 20:32]
- Monorepos and Adoption
- pnpm is considered the best-in-class for monorepo support; widely adopted by large, popular projects like Nuxt and Vite.
- Feature Comparisons and Collaborations
- Yarn’s Plug’n’Play (PnP) is unique and recommended if that’s crucial.
- Recent pnpm innovation: Configurational Dependencies – dependencies injected to run before others, mainly for sharing configuration/settings/plugins across projects.
- “You can see...big names there like Nuxt or Vite. Some well known projects use PNPM for their monorepos.” – Zoltan Kochan [17:14]
- Noted respect and exchange between maintainers of pnpm, Yarn, and even shared use of core code between them.
6. Monorepo Management Features and Innovations
- Configurational Dependencies
- Allows packaging configurations/patches/overrides for easy reuse in multiple repos.
- Helps centralize and share environmental and linter rules, helping teams avoid drift and duplication.
- “With configurational dependencies, you can add this patch file...in each of your repositories...Also you can for instance have some standard overrides.” – Zoltan Kochan [22:56]
- Catalogs
- Central place to synchronize dependency versions across a workspace.
- Reduces reliance on linter rules to enforce version alignment.
- Catalogs can be future candidates for configurational dependencies, potentially including allow-lists for packages.
- “With catalogs, it's a bit nicer because it's centralized in one place and it's nicer to see only change in one file, not in many packages.” – Zoltan Kochan [24:33]
7. Bit.dev and Future of Component Management [25:48 – 29:11]
- Bit.dev’s Unique Approach
- Supports dynamic, component-level workspaces with independent version control.
- Solves monorepo scaling issue by blurring line between monorepos and multi-repos.
- Enhanced PR/review experience across many components; especially strong for UI component libraries.
- “The problem with Monorepos is that you can't scale it...at some point it will break...Bit is a really unique approach because nobody else tries to solve it this way.” – Zoltan Kochan [28:46]
8. Looking to the Future of JavaScript Package Management [30:26 – 33:53]
- Upcoming Trends and Potential Directions
- Surging competition: BUN, Origin, Vault, Deno’s JSR.
- Considered rewriting pnpm in Rust, found negligible performance gains due to network constraining speed.
- Registry-side innovations: more intelligent/faster package resolution, custom archiving, fetching only needed files.
- Monetization and differentiation may center on providing alternative or registry-integrated services.
- “My biggest idea for the next few years would be to create some registry integration...move resolution to the registry side, it could make installation faster...” – Zoltan Kochan [32:13]
Notable Quotes & Memorable Moments
- “There's an old joke among developers, a famous cartoon on the Internet, about how in increasing order of size, there's the planets, the stars, a black hole, and then node modules.” – Josh Goldberg [10:23]
- “You run pnpm install and it feels the same as an npm installation, just faster. But under the hood, it is kind of shockingly different.” – Josh Goldberg [14:37]
- “There is an unfortunate amount of community virtual. But you're all working towards a better future and it's really lovely to see.” – Josh Goldberg [20:08]
- On food and personal background:
“I'm Hungarian and in Hungary there is a famous soup, goulash, which should be consumed spicy. And there are some sauces, a Hungarian sauce called eru spishto. But then I discovered Asian food, which is even more spicy, and Mexican food. And I really, really love Indian food.” – Zoltan Kochan [34:23]
Timestamps for Key Segments
- [01:42] – Zoltan Kochan’s Coding Origin Story
- [04:53] – .NET to JavaScript: First Impressions
- [06:48] – The Motivation Behind pnpm
- [10:23] – Hoisting and Node Modules Bloat
- [12:03] – How Symlinks Work in pnpm
- [14:56] – pnpm’s Technical Edge in Performance
- [17:14] – Comparative Strengths: pnpm, Yarn, NPM
- [22:56] – Configurational Dependencies: New Power-User Features
- [24:33] – Catalogs: Centralizing Version Management
- [25:48] – What Bit.dev Solves for Component/Repo Management
- [30:26] – The Future of Package Management: Language, Competition, and Registries
- [34:23] – Zoltan’s International Food Adventures (fun closer)
- [35:33] – Where to Follow Zoltan and Community Details
Where to Find Zoltan Kochan
- GitHub: Most active – pnpm repository
- Discord: Active pnpm channel/community
- Social: Bluesky, Twitter/X
Conclusion
This episode offered a deep technical and cultural dive into JavaScript package management, monorepo strategies, and the vibrant modern open source ecosystem. Zoltan's practical insights demonstrate both the challenges and rapid innovation in this space, with pnpm standing out as a high-performance, future-focused tool. The conversation is rich for anyone curious about scaling JavaScript projects, solving dependency chaos, or the human side of open source infrastructure.
