What is the Node runtime?
Node runs JavaScript on the server, with the same language you use in the browser but a different set of APIs — files, networking, processes — and a single-threaded event loop that handles many requests without blocking. It is the server half of the TypeScript full-stack stack.
Why it matters
Running JavaScript on the server is what lets full-stack developers use one language end to end. Understanding the event loop and async I/O is what keeps your API responsive under load. Everything in the backend and seam stages assumes you are comfortable here.
What to learn
- The event loop and non-blocking I/O
- Modules and the difference from browser JS
- Core APIs: files, HTTP, environment, process
- async/await on the server
- A web framework (Express, Fastify, Hono)
- Reading config from environment variables
- Why blocking the event loop is dangerous
Common pitfall
Doing blocking or heavy synchronous work in a request handler — a big synchronous loop, a huge JSON parse — which freezes the single thread and stalls every other request. Keep handlers async and push heavy CPU work elsewhere. This is the most common way a Node API becomes mysteriously slow under load.
Resources
Primary (free):
- Node.js — Introduction · docs
- Node.js — Event loop · docs
- Hono — Documentation · docs
Practice
Build a tiny API with a framework: a couple of routes returning JSON, reading a config value from an environment variable, all async. Add a deliberately slow synchronous operation and observe it block other requests, then move it off the hot path. Done when handlers stay async and responsive.
Outcomes
- Explain the event loop and non-blocking I/O.
- Build routes with a Node web framework.
- Read config from environment variables.
- Keep handlers async to avoid blocking the event loop.