React Server Components vs 'use client': What Actually Ships to the Browser
Server Components send the result; Client Components send the result plus the code. What 'use client' really does, why it doesn't mean browser-only, and where to put it.

Practical, diagram-first explanations you can read over coffee. 74 posts and counting.
Newest postJohn Ousterhout's book in one sitting: complexity is the enemy, deep modules fight it, and 10–20% of your time should go to design. Five ideas to use on Monday.
Server Components send the result; Client Components send the result plus the code. What 'use client' really does, why it doesn't mean browser-only, and where to put it.

React matches list items between renders by key. Use the index and React gets the wrong match, so state ends up in the wrong row. How keys work and when an index is fine.

V8 translates your code in four stages and spends more effort only on code that runs a lot. Why the same function got 43× faster without changing a line.

use cache stores a result, cacheLife decides when it goes stale, cacheTag lets you throw it out on demand. When to use each, and where TanStack Query fits.

V8 labels every array by what it holds and whether it may have gaps. Labels only get more general, and holey arrays take slower paths.

'this' in JavaScript depends on how a function is called, not where it's written. Four rules and one arrow-function exception cover every case.

The React Compiler normally runs through Babel in Node.js. Next.js can run a Rust version inside Turbopack instead. Learn what that changes and what it saves.

Turbopack is the Rust bundler inside Next.js. Learn the one idea behind its speed, remembering every small step, and when you'll actually feel it.

Short posts on one theme, meant to be read in order. Each part stands alone, and together they build the full picture.
Get new posts in your inbox
One email when a new post is out: short, diagram-first explanations of JavaScript, React and Next.js. No spam, unsubscribe any time.