When we reach for it
APIs and orchestration layers alongside a TypeScript front end, and anything I/O-bound where the work is waiting on other systems rather than on the CPU.
Web and application frameworks
A JavaScript runtime for the server, which lets one language, one set of types and one set of validation rules cover both sides of a request.
What we reach for first
APIs and orchestration layers alongside a TypeScript front end, and anything I/O-bound where the work is waiting on other systems rather than on the CPU.
Not for CPU-heavy work, and not as a default simply because the front end is JavaScript. Where a service has to hold a heavy load with predictable latency, we will propose Go and say why.
Node earns its place when the contract between client and server is shared rather than duplicated — one schema, validated at the boundary, generating both the runtime check and the type. That is a class of integration bug that stops existing.
Where this appears on the site
Derived from the stacks published on those pages, not written here — so this list cannot claim something the page it points at does not say.
Tell us what it is running, what it costs you today, and what you need it to do next. A senior engineer will tell you what we would keep and what we would change.