Laravel 12 Is a Maintenance Release, and I’m Oddly Relieved
Laravel 12 is a maintenance release, and after a year in production that is exactly why I trust it: the real changes, the new starter…
Laravel 12 is a maintenance release, and after a year in production that is exactly why I trust it: the real changes, the new starter…
Symfony vs Laravel in 2026, compared through real projects: philosophy, Eloquent vs Doctrine, tooling, release cadence, and the rule I use to pick one.
I moved my marketing site from Next.js to Astro islands and cut the JavaScript bundle by 91%. Here's the partial hydration setup I actually ship…
A year of shipping PHP 8.4 property hooks in production: what actually replaced my old methods, where they made things worse, and the gotcha I…
I moved a Next.js app from Tailwind v3 to v4 on a Sunday. Here's what the @theme block, the Oxide engine, and the one migration…
When to pick Server-Sent Events over WebSockets in 2026: a shipping engineer's take on real-time channels for dashboards, LLM streams, and more.
I stopped rotating Go web frameworks and picked one. Here's when I reach for Chi, Gin, Fiber, Echo, and plain net/http on production Go services…
CSS Subgrid finally solved my card-grid alignment problem without JavaScript. Here's the before/after code I use in production, plus what still breaks.
htmx or React in 2026? After shipping both, here's when I reach for htmx, when I stay on React, and why the online essays get…
I spent three years faking a CSS parent selector with useEffect and MutationObserver. Then :has() shipped everywhere. Here's what I deleted and what stayed.