How I Built My Own Private Composer Package Distribution
Why I skipped Satis and Packagist.com and built a private Composer repository directly into my Laravel app — with license-gated authentication and GitHub proxying.
Deep dives, lessons learned, and practical takes on the things I build and ship.
Why I skipped Satis and Packagist.com and built a private Composer repository directly into my Laravel app — with license-gated authentication and GitHub proxying.
From blade-flags to Laravel Translations — the real lessons from maintaining open-source packages used by thousands of developers.
How I structure queued jobs in production Laravel apps — from retry strategies to batch processing to avoiding the pitfalls that silently lose data.
January was about polishing and preparing for launch. Here's the progress across Laravel Translations Pro, the free v2, and kit.
Actions are single-purpose classes that keep your controllers thin and your business logic testable. Here's how I use them across three production Laravel apps.
How I built a multi-language code scanner that finds untranslated strings in Blade, PHP, React, and Vue files — and converts them to translation keys.
The testing patterns I've settled on after writing thousands of Pest tests across three Laravel projects — from naming conventions to factory states to what not to test.
How I built kit's installer — a CLI that validates a license key, resolves selected modules, and generates a clean Laravel project.
I migrated Laravel Translations, Translations Pro, and kit from Tailwind v3 to v4. Here's what broke, what improved, and the patterns to watch for.
How I implemented RBAC in Laravel Translations v2 — from enum-based roles to policy authorization to middleware guards, without any external packages.