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.
PHP 8.4's asymmetric visibility lets a property be public to read but private to write. I deleted a stack of getters. Here's the syntax, the…
I ran Laravel queues on queue:work + supervisord for two years, then a 3am alert made me switch to Horizon. Here's the config that actually…
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…
PHP 8.4 added array_find, array_find_key, array_any, and array_all. Here's where they actually replace a foreach in real code, and where they don't.
Laravel 12 is the quietest major release I've shipped to production. Here's what actually changed, what didn't, and whether the upgrade is worth your Saturday.
I migrated two Laravel apps to Octane with FrankenPHP and watched p99 latency halve. Here's what broke, what I left on FPM, and the real…
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.
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.