Zero Downtime Deployment on One VPS With Compose and Caddy
How I deploy to a single VPS without dropping requests: Docker Compose health checks, a second replica, and Caddy dynamic upstreams. Script and test loop…
How I deploy to a single VPS without dropping requests: Docker Compose health checks, a second replica, and Caddy dynamic upstreams. Script and test loop…
Grant keeps Laravel roles and permissions in PHP enums. I compare it with Spatie: the typo bug enums fix, the orphaned rows they cause, and…
Haiku 5.5 costs a tenth of Haiku 4.5 per token, but a new tokenizer and a 100k step change the bill. A worked example and…
Docker's new agent sandboxes put each agent in its own microVM. Here is why I'm removing docker.sock mounts from agent containers, and the hardening I'd…
Next.js 16.4 adds await navigation() so prefetch stops loading data for links nobody clicks. How it works, where I would skip it, and a test…
Laravel 13 shipped March 17th, 2026, but the date that matters is when bug fixes end. The support table, a composer.json fix and a script…
ThinkingBox grades AI agents on the database they leave behind. Here is what its numbers show about silent failures, plus a Postgres harness to test…
Go 1.25 added WaitGroup.Go, which removes the Add and Done boilerplate. Here is the before and after, plus when errgroup and SetLimit are still the…
depends_on only waits for a container to start. Here is how Docker Compose healthcheck, service_healthy and up --wait fix cold-start failures, plus the restart gap.
Vinext 1.0 runs Next.js apps on Vite. I read Cloudflare's announcement closely and wrote down the checks I'd run, including the use cache gap, before…