13 min read
When to Use WebSockets (and When You Don't Need Them)
If the browser barely talks back, you probably want something simpler.
13 min read
If the browser barely talks back, you probably want something simpler.
12 min read
"Which AI is best for coding?" is the wrong question. Here are the three right ones.
8 min read
A message handler without an origin check is an open API.
11 min read
DevTools shows every request and none of the messages. So I built the missing panel.
10 min read
A deep dive into the React commit phase - what actually happens after reconciliation ends. Covers all three sub-phases, the exact execution order of useInsertionEffect, useLayoutEffect, and useEffect, cleanup sequencing, and the bugs that follow when you get it wrong.
11 min read
The state management landscape has settled. Server state and client state are now separate disciplines with different tools. Here is the practical breakdown of Zustand, TanStack Query, Jotai, and Context - when to use each and how they fit together.
9 min read
React Compiler v1.0 hit production in October 2025 and changed how we think about performance. Here is what it actually does, when you still need useMemo and useCallback, and how to migrate an existing codebase.
8 min read
A practical comparison of Next.js App Router and Pages Router - routing, data fetching, layouts, caching, and when to actually use each one.
7 min read
How React rendering works under the hood: reconciliation, virtual DOM, batching, and what actually triggers a re-render.
6 min read
Practical tips on useEffect, useLayoutEffect, useReducer, and useRef - their optimization patterns and common pitfalls.
4 min read
A deep dive into generics - one of the most powerful and misunderstood features of TypeScript.
5 min read
Key techniques to keep your React app fast and responsive.