Thoughts on building software that lasts
Insights on web development, design, Laravel, the TALL stack, and building software that matters.
Laravel's Bug Tracker Just Disappeared. Here's What That Means for Your App.
Taylor Otwell turned off GitHub Issues on most Laravel packages. It's a bigger deal for the businesses running on those packages than for the developers filing PRs.
Your Error Logs Have Been Quietly Storing Customer Data. Laravel Just Shipped the Fix.
Laravel 13.27 lets you mask query bindings in exception messages. Here's why that setting exists, and what's probably already sitting in your logs.
AI Agents Don't Know Whose Data They're Looking At. You Have to Tell Them.
A developer tested AI agents against cross-customer data attacks in a fake storefront. The blocking happened in the right places for the wrong reasons. Here's what actually stopped the leaks.
The Best AI Coding Guardrail Isn't a Prompt. It's Code the Model Can't Override.
Laravel Tackle enforces AI agent limits as PHP, not instructions. That design choice matters more than the package itself.
You Don't Need Downtime to Move Where Your Files Live
Laravel 13.26's read-through filesystem driver migrates storage on read instead of in one bulk sync. The pattern behind it applies to more than files.
Livewire Workflows 1.0 Helps Your Visitors Pick Up Where They Left Off
Livewire Workflows 1.0 adds signed resume links and replaces session-backed progress with database-backed as a default so customers can leave a multi-step process and return to the right place.
Your Deploy Finished. Your Background Jobs Didn't Get the Memo.
Every software update has a window where old code and new code overlap. Here's what breaks in it, and what to ask your developer before the next release.
HTML Over WebSockets Isn't New. The Hard Part Is What Nobody Mentions.
The web keeps rediscovering server-rendered HTML pushed over a socket. I build with it every day. Here is the honest production picture, including the failure nobody warns you about.
The Exception Is the Part of Your Workflow Worth Building
A practical test for deciding when a business exception deserves custom software, and when it should remain a human judgment.
Your CRM Is Not Your Source of Truth
A practical way to decide where business data should live when your CRM, accounting system, and internal tools disagree.
When Your Workflow Is Ready for Automation
A practical test for deciding whether a repetitive business workflow is ready for automation, or still needs a clearer owner and process.
Before You Build Custom Software, Write Down the Decisions It Must Make
A feature list is a poor software brief. Start by naming the decisions your team repeats, delays, or gets wrong, then build around those.
The Most Expensive Software Feature Is the One You Never Needed
Before you automate a process or build a feature, prove the problem is worth solving. A practical way to decide what software should leave alone.
The Client Brief Template
A one-page PDF that helps you clarify your project before you talk to any developer. Covers goals, audience, scope, budget, and timeline. Fewer surprises, better outcomes.
Have a project ready to start?
Whether you need a full-stack application, a design refresh, or a technical partner who gets it — we'd love to hear about it.