Boltzmann: A JS HTTP Framework

Boltzmann: an introduction

4 minute read

Boltzmann is a JavaScript framework for writing web servers. It is implemented in a single file that lives alongside your code. Boltzmann is focused on delivering a great developer experience and makes its tradeoffs with that goal in mind.

Our design goals:

  • Make all return values from route handlers and middlewares be valid responses, mapping to http semantics.
  • Prefer zero-cost abstractions: pay for what you use and nothing more, including in installation and startup time.
  • Use global types, no special response types.
  • Only modify objects we provide; do not rely on modifications to node's request & response objects.
  • Provide pluggable behavior for body-parsing and middleware, with good defaults.
  • Use only minimal, well-vetted dependencies.
  • Bake in observability (optionally), via Honeycomb tracing.
  • Rely on a little bit of documented convention to avoid configuration.
  • Making throwing Boltzmann away if you need to move on possible.

Boltzmann provides Typescript definitions for its exports, for your development convenience, but it does not require you to opt-in to Typescript or do any transpilation. We'd like you to be able to run Boltzmann apps under deno or in a web worker some day, so we make API choices that move us toward that goal.

Who's the "we" in this document? @ceejbot and @chrisdickinson.