robinsamways.ca · Stack Decisions
$ Choosing the Framework With 10x Fewer Downloads, on Purpose
Choosing a Node framework for a rebuild meant actually comparing, not defaulting. Express went without a major release from 2014 until Express 5 in October 2024, and didn't have correct built-in async/await error handling until that release. Fastify was designed from 2016 onward specifically to fix that gap, plus schema-first request validation and plugin encapsulation as first-class features, not bolted-on middleware.
Express still has roughly an order of magnitude more downloads, and is the framework most job postings name explicitly. Choosing Fastify anyway was a knowing trade — technical merit over market visibility — not unaware of the tradeoff, made in spite of it.
Express: no major version 2014 -> Oct 2024 (v5); correct built-in async
error handling only arrives with that release
Fastify: designed 2016+ specifically around that gap, plus schema-first
validation and plugin encapsulation as first-class features
Express: ~10x the downloads; the framework most job postings name explicitly
Fastify: chosen anyway, for the technical reasons aboveThe fix
Not a bug fix — a documented, comparative decision, made with the tradeoff named explicitly rather than discovered later. The evidence (release history, what each framework actually fixed and when) is checkable, not a preference stated as fact.
Why this matters
This is a direct, evidence-backed answer to 'why did you choose X' — the question a copied tutorial stack can't actually answer. Going against the more market-visible choice for a stated, defensible reason is a stronger signal of real technical judgment than following convention because it's what most postings mention.
