Bun shipped 1.0 last week. We've been watching it for a year, partly out of curiosity and partly because the JavaScript runtime story has been weirdly static since Node's early days. Bun is interesting. It is not yet our production answer.

What's good

  • 01 Speed. Cold starts and dev server boots are dramatically faster than Node.
  • 02 Built-in TypeScript without a separate tool.
  • 03 A bundler, test runner, package manager and runtime in one binary.
  • 04 Native fetch, native WebSocket, sensible defaults across the surface.

Bun vs Node, side by side

Capability Node.js Bun
Runtime engine V8 JavaScriptCore
TypeScript Via tsx / ts-node Built in
Bundler External (esbuild, Vite, Webpack) Built in
Test runner External (Vitest, Jest) Built in
Package manager npm / pnpm / yarn bun install (much faster)
Native fetch / WebSocket Native (recent versions) Native
Maturity Battle-tested since 2009 New, less proven

Node.js vs Bun, feature parity in late 2023.

What we're cautious about

  • 01 Compatibility edges with the long tail of npm packages. Most things work; some don't.
  • 02 Production deployment story is less battle-tested than Node's.
  • 03 When 'fast' becomes 'fast in this specific benchmark', it's worth checking against your actual workload.

" Twelve months from now, Bun is either a quiet daily tool we've forgotten was ever new, or a footnote. We think it's the first.

Where we are using it

  • 01 Local scripts and ad-hoc tooling — Bun's start time is genuinely a quality-of-life win.
  • 02 Test suites where the dev loop matters more than the production runtime.
  • 03 Internal CLIs that don't ship to clients.

Twelve months from now, Bun is either a quiet daily tool we've forgotten was ever new, or a footnote. We think it's the first. We're keeping our production stack on Node until we've watched another year.