Practical JavaScript guides — language features, async patterns, performance and the parts of the spec that surprise people.

Temporal hit Stage 4 in March 2026 and shipped in Chrome, Edge and Firefox. Safari has none of it. What that means for using it today.
The TweakPad Team
V8 runs xorshift128+ with 128 bits of state an attacker can recover from a few outputs. When to reach for crypto instead.
The TweakPad Team
One family emoji is 11 units, 7 code points, 1 grapheme and 25 bytes. Which number your limit means decides the bug.
The TweakPad Team
Why a promise resolves before setTimeout(0), how the microtask queue drains between tasks, and the loop that freezes a page.
The TweakPad Team
encodeURI leaves & and = alone, so it corrupts query values. Which to use per URL part, and why + is not always a space.
The TweakPad Team
How the event loop schedules work, why promises run before setTimeout, and how to stop long tasks freezing your page.
The TweakPad Team
What a closure is, why the classic loop bug happens, and three patterns closures enable: memoisation, private state, currying.
The TweakPad Team
How ?. and ?? work, why ?? is not the same as ||, and the short-circuit behaviour that surprises people. With practical patterns for API data.
The TweakPad Team
Why 0 == "" is true, NaN !== NaN, and when Object.is differs from strict equality — a model, not memorised rules.
The TweakPad Team
How async/await really works, the sequential-await mistake that costs 10x, and how to handle errors and parallel work.
The TweakPad Team
Which array methods mutate, which return new arrays, and which to reach for — with performance notes and real examples.
The TweakPad Team