ARTICLES

Everything I've written.

tailwind

Style the Exception with Tailwind v4's not-* Variant

CSS negation used to mean a base style plus a `:last-child` override. Tailwind v4's `not-*` variant compiles to `:not()` so you state the exception in one utility.

6 min read
Laravel AI SDK

Track Token Usage and Cost with the Laravel AI SDK

Every Laravel AI SDK response carries a usage object. Here's how to capture it, attribute it to a user and feature, and turn tokens into a real cost dashboard.

8 min read
php

First-Class Callable Syntax for Cleaner Laravel Collection Pipelines

Turn any method into a Closure with a trailing (...) for cleaner Laravel collection pipelines — and dodge the map() arity trap that silently corrupts your output.

6 min read
duster

Duster: Run Pint, PHPStan, and Rector with One Command

A mature Laravel app ends up with four code-quality tools, four configs, and four CI steps. Here's how Duster collapses them into one command — and when that's actually worth it.

7 min read
peck

Catch Spelling Mistakes in Your Laravel Codebase with Peck

Typos harden into method names, routes, and API fields you can't rename without a breaking change. Here's how I wire Peck into a Laravel project to catch them before they ship.

7 min read
devops

Run the Laravel Scheduler in a Docker Container the Right Way

The classic crontab line assumes a host cron that containers don't ship. Here are the two clean ways to run schedule:run in a container — supercronic and a Kubernetes CronJob.

7 min read
laravel

Zero-Downtime Database Migrations in Laravel: The Expand and Contract Pattern

Renaming a column in production is a classic self-inflicted outage. Here is the expand and contract playbook that ships breaking schema changes in Laravel with zero downtime and an instant rollback path.

14 min read
laravel

Automated Laravel Database Backups to S3 with spatie/laravel-backup

Wire up off-site, encrypted, self-pruning Laravel database backups to S3 with spatie/laravel-backup — scheduling, retention, and failure alerts included.

8 min read