TypeScript
Type checking that catches an error while you write, not in production.
What it is
TypeScript adds static typing on top of JavaScript - errors such as the wrong argument type or a nonexistent object property are found at compile time, not when a customer encounters them.
Why we use it
In strict mode, type checking requires explicit handling of `null`/`undefined` and does not allow implicit `any` - exactly the errors that ordinary JavaScript lets pass unnoticed until production.
Proof, not claims
This website runs in TypeScript strict mode (`"strict": true` in tsconfig) throughout the codebase, not just in part of it.