React Suspense in Production: What I Actually Use It For
Six months of React Suspense in production: where I reach for it, where I don't, and the gotchas I wish I'd known before I started…
Six months of React Suspense in production: where I reach for it, where I don't, and the gotchas I wish I'd known before I started…
My honest take on Vercel AI SDK v5 after three production projects, plus the useChat and tool-calling gotchas I wish someone had warned me about…
React Query vs SWR in 2026, picked by use case, not by feature checklist. I walk through cache model, mutations, Next.js fit, and my actual…
Next.js 15 flipped App Router caching from opt-out to opt-in. What changed for fetch and GET route handlers, why it is safer, and how I…
React 19's useOptimistic hook replaced my hand-rolled optimistic UI: instant likes and messages with automatic rollback. Here's how I use it, with code.
React 19 forms, useActionState, and useOptimistic with before-and-after code. The features I actually kept after upgrading, and the one I'm still careful with.
I've shipped Laravel apps with Livewire, Inertia.js, and a separate React SPA. Here's how I actually choose between them, with code and a few regrets.
I switched on the React Compiler in a real app and deleted most of my useMemo and useCallback calls. Here's what changed and where it…
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.