cleaniquecoders/blueprint-macro
Extend Laravel Blueprint with reusable macros that streamline schema and model definitions. Cleanique Coders' package adds handy shortcuts for common columns and boilerplate, cutting repetition so you can generate migrations and models faster.
What shipped: 5.4.0 is a compatibility-and-tooling release, not a feature release. The substantive additions are illuminate/* ^13.0 constraints, PHPUnit 12 compatibility, Pest 4 support, a modernized phpunit.xml.dist, a standardized CI workflow (Laravel 12 + PHP 8.4/8.3), and refreshed dev dependencies (larastan, phpstan plugins, collision).
Architecture fit: This package sits in the schema-definition layer — it registers macros against Laravel's Blueprint builder to give teams shorthand for common column/table patterns. That is a shallow, dev-time integration: no service container bindings of consequence, no request lifecycle hooks, no queue/event surface. Fit is good precisely because the blast radius is small and confined to migration files. The tradeoff is that the package's value proposition is entirely coupled to a semi-internal Laravel API (Macroable + Blueprint's column-definition methods), which Laravel does not contractually guarantee. Every Laravel major is therefore a real compatibility event for this package, regardless of how small the changelog looks.
Integration feasibility: High. The changes are additive in intent — widened framework constraints plus test-tooling alignment. No deprecations or removals are announced, so consumers on 5.3.0 should see a drop-in minor upgrade. Two caveats to verify rather than assume: (1) whether the minor bump silently raised the floor (dropping Laravel 10/11 or an older PHP minor), which would be a breaking change wearing a minor version number; (2) whether PHPUnit 12 support came at the cost of PHPUnit 10, which only matters if we build on the package's own test scaffolding.
Technical risk: Low-to-moderate, concentrated in three places.
^13.0 support almost certainly targets a pre-stable Laravel 13. Claiming support ahead of a stable release means the constraint may not hold at GA, and we could be pinned to a version range that resolves to something the maintainer never tested against the final tag.Key questions:
illuminate/support and illuminate/database constraint ranges in 5.4.0 — what is the minimum supported Laravel and PHP, and was either floor raised versus 5.3.0?dev-master allowlist?laravel/framework versions outside its tested range, or does it resolve optimistically?Stack fit: Strong for any Laravel application that already writes migrations by hand and wants terse schema sugar. It is not load-bearing infrastructure — nothing in the runtime request path depends on it. That means the correct integration posture is "adopt early in non-production, roll forward on a normal cadence," not "gate behind a formal review board."
Migration path: Treat 5.3.0 → 5.4.0 as a routine bump, but verify before committing:
composer why-not cleaniquecoders/blueprint-macro 5.4.0 against the actual application lockfile to confirm resolution against our current Laravel and PHP versions.composer.json constraints (not the changelog) to establish the true floor.If we are currently on Laravel 12 and not moving to 13, 5.4.0 buys us the PHPUnit 12/Pest 4 alignment and dev-dependency hygiene only. That may still be worth taking, if only to stay on a maintained branch.
Compatibility: The realistic constraint is PHP tooling, not Laravel. PHPUnit 12 and Pest 4 imply PHP 8.3+ in the test environment. If our CI runs PHP 8.2 or PHPUnit 10, upgrading this package's dev tooling is orthogonal to production but relevant if we inherit its CI workflow. Keep the production require surface and the require-dev surface mentally separate here — the changelog mixes them.
Sequencing:
migrate --pretend) and diff the generated SQL against the 5.3.0 baseline.Maintenance: Near-zero steady-state. Schema macros are write-time conveniences; they do not run in production request paths and generate no ongoing operational load. The real maintenance cost is the annual Laravel major, which forces a package bump and a migration-suite re-run — a predictable, schedulable cost of roughly an afternoon per cycle. Worth budgeting explicitly rather than discovering it.
Support: This is the material risk. The package is published by a small independent organization, and the changelog shows a single-maintainer release rhythm. There is no vendor SLA, no commercial support tier, and no evident second maintainer. For a package this shallow that is tolerable — worst case we inline the macros into our own base migration class, which is a day of work. The mitigation is to keep that exit path documented rather than to demand more from the maintainer.
Scaling: Not a scaling concern. Macro expansion happens at migration execution; there is no runtime contention, no memory profile change, no effect on throughput or concurrency. The only scaling-adjacent consideration is team scaling: shorthand macros reduce schema-definition variance across many engineers, which is arguably the package's strongest argument.
Failure modes:
--pretend output; not detectable by tests that merely assert a migration ran.^13.0 resolves to a Laravel 13 patch that changes Blueprint internals before the package catches up. Mitigate by pinning the package version in composer.json rather than floating.Ramp-up: Low — roughly half a day for an engineer already comfortable with Laravel's schema builder, most of which is reading the macro list rather than learning concepts. The genuine onboarding risk is the inverse of the package's benefit: engineers who learn the macros without learning the underlying Blueprint API cannot debug the generated SQL when it misbehaves. Pair adoption with a short internal note mapping each macro to its expanded form, and keep at least one migration in the codebase written longhand as a reference.
Recommendation: Adopt 5.4.0 as a routine minor upgrade once the constraint floor and Laravel 13 CI coverage are confirmed. Do not treat "Laravel 13 support" as an endorsement to upgrade the framework — that decision should wait for Laravel 13 GA and evidence of tested support.
How can I help you explore Laravel packages today?