React 19 useActionState: The Form Boilerplate I Deleted
React 19's useActionState and useFormStatus let me delete the loading flags, error state, and controlled inputs I hand-wrote in every form. Before and after code.
React 19's useActionState and useFormStatus let me delete the loading flags, error state, and controlled inputs I hand-wrote in every form. Before and after code.
Tailwind v4 dark mode: why your theme flashes white on load, the blocking script that fixes it, and the color-scheme line that saves your scrollbars.
I finally moved a production app from the Next.js Pages Router to the App Router. The real data-fetching and layout rewrite, plus what annoyed me.
How I replaced hand-rolled optimistic UI code with React 19's useOptimistic hook. Real patterns, gotchas from two weeks of production, and when to skip it.
I broke a React app twice in one week because an error boundary never fired. Here's the setup I actually ship in 2026 with react-error-boundary…
After two years shipping both Zustand and Redux Toolkit in React apps, here's how I actually decide, plus the migration path most teams miss.
I turned on the React Compiler in a real Next.js app, deleted a pile of useMemo and useCallback, and watched what broke. Honest field notes…
htmx or React in 2026? After shipping both, here's when I reach for htmx, when I stay on React, and why the online essays get…
The React 19 use() hook quietly replaced my useEffect+useState fetch dance and my useContext guards. Here's what works, where it breaks, and how I ship…
I spent three years faking a CSS parent selector with useEffect and MutationObserver. Then :has() shipped everywhere. Here's what I deleted and what stayed.