Tailwind v3 to v4 Migration: What Actually Broke in My Projects
My real Tailwind v3 to v4 migration notes: the utility renames, the CSS-first config, the PostCSS pipeline change, and every place my styles quietly broke.
My real Tailwind v3 to v4 migration notes: the utility renames, the CSS-first config, the PostCSS pipeline change, and every place my styles quietly broke.
I ran Cypress for years, then moved my e2e suite to Playwright. Here's what actually broke, what improved, and how I'd do the migration again.
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 upgraded to Tailwind v4 out of boredom and got a faster dev loop I didn't expect. Here's what the Rust-based Oxide engine actually changed,…
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…
PHP 8.4 property hooks and asymmetric visibility, with before-and-after code. The getter and setter boilerplate I deleted, and where these features bite back.
Tailwind CSS v4 moves config into CSS, auto-detects content, and bakes in container queries. Before-and-after code on what changed and what it costs you.
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.
Six Next.js server actions mistakes I shipped to production: trusting the client, missing revalidatePath, throwing errors wrong. With code fixes for each.