Writing on software design, company building, and the aerospace industry.

All of my long-form thoughts on programming, leadership, product design, and more, collected in chronological order.

Laravel AI SDK Adds Human-in-the-Loop Tool Approval

Announced at Laracon US 2026, the Laravel AI SDK's new human-in-the-loop API pauses an agent before it runs a sensitive tool so a person can approve, reject, or edit the tool call first.

CPX: The Composer Package Executor for PHP

cpx 2.0 is a full rewrite of the Composer package executor. It runs a command from any Composer package without adding it to your project, prefers the binaries your project already pins, and returns JSON when an AI agent is driving it.

Blade Formatting in Laravel Pint

Pint 1.30.0 adds a --blade flag that formats .blade.php files through Prettier, alongside fixes for --diff, --quiet, and a new in key for pint.json.

Vocalizer: Local Text-to-Speech for PHP

Vocalizer is a native PHP extension for local speech synthesis, embedding sherpa-onnx and audio.cpp to run eight TTS model families — including Chatterbox voice cloning — behind one API.

First-Party Image Processing in Laravel 13.20

Laravel 13.20.0 introduces an Image facade for resizing, converting, and storing images, along with a WithoutMiddleware controller attribute, a separate Redis session prefix, and quiet bulk increment methods on Eloquent.