TanStack Query in 2026: What I Reach For Instead of useEffect
Why I stopped writing useEffect-for-data-fetching and what TanStack Query actually replaces in 2026, with real before/after code from production.
Why I stopped writing useEffect-for-data-fetching and what TanStack Query actually replaces in 2026, with real before/after code from production.
Six months running Biome alongside ESLint on real projects. Where Biome won, where I kept ESLint, the migration gotchas, and when to switch in 2026.
useOptimistic in React 19 is the first optimistic UI API I actually shipped. Six months of production lessons: where it fits, where it doesn't, what…
Stage 3 decorators in TypeScript 5+ are finally something I use without flinching. Here is when they earn their keep, and four times I still…
I spent a Sunday turning on the React Compiler in a real Next.js app. Here's what I deleted, what bit me, and the eslint rule…
I avoided React Suspense for two years and was wrong. Six months in, here are the patterns that actually saved me, and where I still…
I've built real-time features both ways for years. Here's how I actually pick between WebSockets and Server-Sent Events without overthinking it.
Six weeks with useActionState in React 19: where it kills useReducer, the error-handling pattern I use, and when I still reach for the old way.
I replaced Redux Toolkit with Zustand on two React apps and stopped on a third. Here are the patterns I actually use and when Redux…
I've been migrating projects from Jest to Vitest since late 2024. Here's where Vitest actually wins, where Jest still beats it, and the playbook I…