The Daily
A note a day on APIs and the realities of shipping web applications. Stuff I've actually learned across 25 years of doing the work.
Let's Encrypt in Docker: Ditch the Cronjob, Use a Sidecar
Cronjob-based cert renewal inside Docker is a disaster waiting to happen. Here's the sidecar pattern that actually holds in production.
The cronjob approach to Let's Encrypt renewal inside Docker works fine — until it doesn't, and then it fails silently at 2 a.m. thirty days before your cert expires. I've been burned by this twice, once badly enough that a client's e-commerce checkout was throwing browser warnings on a Monday morning. This is the…
Read the daily →Galera Cluster's Write Penalty Will Quietly Ruin Your Week
Multi-master replication sounds like the right answer until your writes start hanging and you can't figure out why. Here's what Galera is actually doing to your latency.
I spent three weeks diagnosing a latency problem for a client that turned out to be a feature, not a bug. That's the most frustrating kind of bug to find. The setup was a three-node Galera cluster running MariaDB 10.6, hosted across two availability zones on AWS. The goal was high availability with no single point of…
Read the daily →API Versioning in Laravel: The Operational Pain Nobody Warns You About
URI vs. header versioning both work until they don't. Here's where each one actually burns you in production.
Every architecture post on API versioning draws the same clean diagram, explains the two main camps — URI versioning () vs. header versioning () — and then says "choose based on your needs" and moves on. That's where they all stop. I'm going to start there. I've shipped both approaches across a dozen production APIs…
Read the daily →Telescope Will Burn You in Production
Laravel Telescope is the best debugging tool I've ever accidentally left in production. Here's why I don't use it anymore, and what I run instead.
Telescope is a genuinely great debugging tool. It's also one of the most dangerous things you can leave running in a production environment, and the Laravel ecosystem doesn't talk about that loudly enough. I've seen it expose request payloads, slow down apps under load, and balloon databases — all while sitting…
Read the daily →Build vs. Buy Your Admin Panel (And When You're Fooling Yourself)
Filament and Nova are genuinely good. But I've watched teams spend three weeks customizing one into something they should have just built from scratch.
Filament and Laravel Nova are both genuinely good pieces of software. I've used both in production. But I've also watched a project start as "we'll just use Filament" and end three months later as a barely-recognizable fork with seventeen custom Livewire components, a hacked-together permission system, and a teammate…
Read the daily →