Tools

Bun

Fast TypeScript runtime and package manager — my default over npm.

Bun is my default runtime and package manager. I use it everywhere by default, including legacy projects where npm is expected, and I would rather find a workaround than switch back.

I use it for:

  • Package managementbun install is fast enough that I don't think about it
  • Script runningbun run for dev servers, builds, and custom scripts
  • Testing — Built-in test runner that's fast and simple
  • TypeScript — Runs .ts files directly without a build step

The ecosystem compatibility is good enough that I rarely hit issues with existing packages. For new projects, Bun is the default choice.

When I use it

  • New TypeScript projects where I control baseline tooling.
  • Legacy repositories where I can still operate Bun-compatible workflows.
  • Repositories with frequent install/run loops during daily development.

When I avoid it

  • Collaborative teams already standardized on npm where I do not have decision authority to change it.
  • Deep cross-project coupling where downstream consumers explicitly require package-lock.json rather than bun.lock.

One real example

In legacy npm-oriented setups, I still use Bun locally and align output/lockfile expectations only where external consumers strictly depend on npm lockfiles.