Tip
For better experience, I'd recommend reading it on the NodeBook Website
NodeBook is my my way of explaining everything about Server side developement using Node.js, it's internals and the parts that matter when apps misbehave.
I started writing it because most Node material stops too early. You learn routes, middleware, promises, maybe some streams, then the hard parts get left as "go read the docs" or "profile it". Memory leaks, slow requests, blocked event loop, file descriptor limits, weird DNS behavior, broken backpressure, GC pauses, module loading issues. That is where Node starts getting interesting.
This repo has the public chapters. Some are finished, some are still being edited, and some parts will probably move around.
If you're brand new to JavaScript, this may be a bit much. You can still read it, but it assumes you know the basics and have written some Node before.
You don't need V8 internals to ship a small app.
Run Node in prod long enough and the internals stop feeling optional. The event loop, libuv, buffers, syscalls, TCP, thread pools, GC, module resolution, process signals, they all show up in bugs.
Node is also easy to poke at. Write a small script, run it, profile it, break it, change one thing, run it again.
NodeBook is planned as four volumes, 38 topics, and around 200+ sub-chapters.
You don't have to read it from page one. Pick the part you're dealing with. Streams, files, modules, networking, async behavior, perf, prod work, whatever.
Volume I covers the runtime basics. What Node is, V8, libuv, event loop phases, microtasks, process lifecycle, buffers, streams, files, modules, and async patterns.
Volume II is about building with Node. Worker threads, child processes, clustering, crypto, HTTP, TLS, databases, queues, and the places where small choices get expensive later.
Volume III is performance and debugging. V8 optimization, hidden classes, inline caches, deopts, garbage collection, heap snapshots, flamegraphs, event loop delay, and memory leaks.
Volume IV is prod Node. Deploys, logs, metrics, security, scaling, incidents, and keeping services understandable after they've been running for a while.
Volume I is completely done. The rest is being written and reviewed.
There are runnable examples and small labs where they make sense. If something is wrong or unclear, open an issue or PR.
Read the book at thenodebook.com.
Main repo: github.com/ishtms/nodebook
- 01. What Node.js Actually Is
- 02. Inside the v8 engine
- 03. The Node.js Event Loop
- 04. Node.js Process Lifecycle
- 01. What is a Buffer?
- 02. Buffer Allocation Patterns
- 03. Working with buffers
- 04. Memory Fragmentation and Exercises
- 01. Foundation of Streams
- 02. Readable Streams
- 03. Writable Streams
- 04. Transform Streams
- 05. Modern Async Pipelines and Error Handling
- 06. Zero-Copy, Scatter/Gather I/O
- 01. File Descriptors & Handles
- 02. Reading & Writing Files
- 03. fs.promises & FileHandle
- 04. Watching & Atomic Writes
- 05. Permissions, Metadata & Edge Cases
- 01. CJS require() Internals
- 02. Module Resolution Algorithm
- 03. ES Modules import/export
- 04. CJS/ESM Interop & Dual Packages
- 05. import.meta, Caching & Circular Deps
- 01. Callback Patterns and Error-First Convention
- 02. Promises and Microtask Scheduling
- 03. Async/Await Under the Hood
- 04. EventEmitter Internals
- 05. Async Iterators and for-await-of
- 06. Promise Combinators and Advanced Patterns
