I’ve used pnpm for years and have no real complaints — it does symlinks well, the lockfile is sensible, and the team is responsive. So I wasn’t really shopping. But I kept seeing benchmarks for bun install on social media that didn’t seem plausible, and the only way to get rid of the itch was to scratch it.

On a fresh checkout of my biggest side project (Next.js app, ~480 dependencies), pnpm cold-installed in 38 seconds. Bun did it in 4.2. Warm installs were under a second. That’s the kind of step change that changes habits — I now create branches more freely because the cost of switching is gone.

It isn’t all roses. A handful of packages with native bindings needed a bun rebuild; one obscure CLI broke because it shells out to npm and bun’s npm shim doesn’t accept every flag. The errors were always actionable, but they were errors, and I had to read them.

Where I’m landing: bun for greenfield prototypes and personal projects, pnpm everywhere else. The work codebase has too many sharp edges (private registries, postinstall hooks that assume node) to be worth the swap. But the new things I start? They start with bun.

Worth a try if you keep starting and abandoning side projects. Sometimes a 30× speed up is the friction that was actually killing you.