Making Pest parallel and time-based sharding work in Bitbucket Pipelines
How to set up Pest 4.6's time-based shard distribution in Bitbucket Pipelines, including the gotchas around composer plugins, root permissions, and the missing matrix feature.
Blog
From the workshop: notes, patterns and lessons from projects building custom business software. No marketing, just what we actually learned. Written in English so everyone can read along.
Craft over hype.
From the workshop
How to set up Pest 4.6's time-based shard distribution in Bitbucket Pipelines, including the gotchas around composer plugins, root permissions, and the missing matrix feature.
The User model is not special. Any Eloquent model can extend Authenticatable, issue Sanctum tokens, and resolve as auth()->user() behind auth:sanctum. A pattern that fits surprisingly well whenever the API client is a Project, an Organization, or a device rather than a human.
Running SQLite on a Laravel Forge site with zero-downtime deployments? Every deploy quietly throws your entire production database away. Here is why it happens and how to fix it by moving the database into the shared storage directory.
If you ship AI guidelines with your Laravel package, Boost only reads a single core.blade.php per package and silently drops the rest. Here is the minimal pattern for package maintainers to split their guidelines into organized partials using a Blade view namespace.
The tools we refuse to ship Laravel code without: PestPHP, PHPStan, Rector, Pint, and a GitHub Actions matrix that runs our packages against every supported Laravel and PHP version.