Next.js Server Actions: When I Stopped Writing API Routes
How I stopped writing Next.js API routes for mutations, what Server Actions actually replaced, the bugs they caused me, and where I still keep API…
How I stopped writing Next.js API routes for mutations, what Server Actions actually replaced, the bugs they caused me, and where I still keep API…
I rebuilt a side project on TanStack Start after rage-quitting Next.js. Here's where Start fits my brain better, and where Next.js still wins for me.
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…