Bun is the most exciting JS package manager and the youngest. These rules keep the excitement productive.
Try Bun on a new project before committing to it for an old one. A greenfield project removes 90% of compatibility risk. Once you've shipped a few new things on Bun and learned where it stumbles, you have grounds for migrating something legacy.
Always run a separate type-check in CI. Bun's native TS is great DX but it doesn't replace tsc --noEmit. Add a CI step that runs bunx tsc --noEmit on every PR.
Pin the Bun version in package.json. Bun ships fast; subtle behavior shifts between versions are real. "packageManager": "bun@1.3.0" in package.json keeps your CI and your laptop on the same version.
Use bun pm migrate for converting projects. It reads yarn.lock or pnpm-lock.yaml and produces an equivalent bun.lock. Don't hand-translate.
Watch Anthropic's Bun roadmap. Now that Bun is at Anthropic, expect tighter integration with the Anthropic API, Claude SDK, and Pippa-relevant tooling. That's the Bun bet that didn't exist a year ago.