Partial Prerendering Isn’t a Flag Anymore in Next.js 16
Partial prerendering is now the App Router default via cacheComponents. Why my dashboard got slower after the upgrade, and the mental model that had to…
Partial prerendering is now the App Router default via cacheComponents. Why my dashboard got slower after the upgrade, and the mental model that had to…
React 19's useOptimistic hook replaced my hand-rolled optimistic update code. The before and after, the rollback I deleted, and the two gotchas that bit me.
React 19 and the compiler quietly killed half the hooks advice I used to give. Here's what I dropped, what I kept, and the code…
React Compiler went stable in late 2025. Here is what changed after I deleted most of my useMemo and useCallback calls, and the two places…
React 19's useActionState and useFormStatus let me delete the loading flags, error state, and controlled inputs I hand-wrote in every form. Before and after code.
I finally moved a production app from the Next.js Pages Router to the App Router. The real data-fetching and layout rewrite, plus what annoyed me.
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.
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…
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…