Zustand vs Redux: The State Library I Actually Reach For
I defended Redux for years, then Zustand made most of the boilerplate disappear. Here's how the two compare, with real code, and where I still…
I defended Redux for years, then Zustand made most of the boilerplate disappear. Here's how the two compare, with real code, and where I still…
What I actually keep in the hooks folder in 2026 - usePersistedState, useDebouncedValue, useEventListener - and the half-dozen custom hooks I quietly deleted.
Most htmx tutorials skip the part that confuses React developers. Here's the mental model I needed before any of it clicked, plus the four patterns…
React 19 turns ref into a regular prop, so forwardRef is on its way out. Here's how I migrate components, plus the codemod gaps and…
I moved nearly every mutation in two production Next.js apps onto Server Actions. Here is what got deleted, what useActionState fixed, and what still bites.
I shipped the same marketing site in Next.js and then in Astro, then kept score. Here's when I actually reach for each, with bundle numbers…
Why I stopped writing useEffect-for-data-fetching and what TanStack Query actually replaces in 2026, with real before/after code from production.
I shipped chat UIs the hard way before Vercel AI SDK existed. Here's what useChat, streamText, and tools v5 actually replaced in my production apps.
Pages Router in Next.js isn't legacy in 2026. Here's when I still reach for it instead of App Router on real production projects, with code…
Eight months running React Server Components in production. The boundary patterns that worked, the bugs I shipped, and when I still pick client components.