November 29, 2025
Six Years of Hooks
Hooks turned six. A retrospective on the mental models, the mistakes, and how the patterns evolved — from class components to hooks to Server Components to the Compiler.
Showing posts tagged: hooks
Technical articles about software engineering, architecture, and web development.
November 29, 2025
Hooks turned six. A retrospective on the mental models, the mistakes, and how the patterns evolved — from class components to hooks to Server Components to the Compiler.
September 7, 2024
React 19's useOptimistic hook lets you show users what they expect to see before the server confirms it. One hook, one pattern, and a UX problem I've been solving the wrong way for years.
June 15, 2024
I recommended React Hook Form in my very first blog post. Four years later, I've removed it from three projects. Are React 19's built-in form primitives enough? The honest answer is: it depends, and here's where I draw the line.
April 16, 2022
React 18 shipped. I've been using both concurrent hooks in production for six weeks. Here's each one side by side — same UI, with and without — so you can see exactly what they do and when to reach for which.
September 4, 2021
Compound components, render props with hooks, headless hooks, polymorphic components. Four patterns, minimal prose, lots of code. Bookmark this one.
February 13, 2021
Week 1: my first custom hook was terrible. Week 3: slightly less terrible. Month 2: I think I get it. Here's the progression from embarrassing to actually useful, with all the mistakes I made along the way.
January 16, 2021
I see this in every codebase review — performance optimizations that make the code slower. Here's when memoization actually helps.
December 6, 2020
Most tutorials introduce useRef as 'the hook for DOM nodes.' That covers about 30% of what it actually does. Here are the things I had to learn the hard way.
October 4, 2020
When you have five related useState calls and scattered update logic, useReducer brings order. A practical guide with real form and cart examples.
August 29, 2020
Context solves prop drilling but introduces re-render traps. Here are the questions I keep getting from study groups and Slack channels, answered honestly.
July 21, 2020
Race conditions, stale closures, missing dependencies, infinite loops — useEffect is where most React bugs are born. A deep dive with real patterns and strong opinions.
June 3, 2020
useState looks simple. Then you hit state batching, stale closures, and object mutations, and you spend a Saturday debugging something that should have taken five minutes.
April 19, 2020
I resisted hooks for longer than I want to admit. Then I actually understood the mental model, and everything about how I write components changed.