React 19 useOptimistic: The Loading Spinners I Finally Deleted
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.
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 moved my marketing site from Next.js to Astro islands and cut the JavaScript bundle by 91%. Here's the partial hydration setup I actually ship…
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…
TypeScript is structural, which is fine until two strings mean different things. Here is the branded types pattern I use to stop shipping ID mix-ups.
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.
I ran Cypress for years, then moved my e2e suite to Playwright. Here's what actually broke, what improved, and how I'd do the migration again.