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 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…
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…
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.