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.
Four years into Go generics, here is what I actually reach for in production, the constraints I write, and the patterns I quietly stopped using.
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.
My one-line rule for SQLite vs Postgres, the four PRAGMAs that made SQLite production-ready for me, and the cases where I still pick Postgres without…
PHP 8.4 array_find, array_any, array_all, and array_find_key replaced years of array_filter plus current chains in my codebase. Here is what stuck.
Three TypeScript generics patterns I actually use in production code, plus the places I learned to delete the generic and what I write instead.
How I split thiserror and anyhow inside Axum handlers, then let IntoResponse map domain errors to real status codes without leaking internals to callers.
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…
I almost shipped a phishing URL inside an AI-generated PR. Here are the AI code review tools and checks I now run before any AI-written…