Weave Code
Weaver
Helps Laravel developers discover, compare, and choose open-source packages. See popularity, security, maintainers, and scores at a glance to make better decisions.
Feedback
Share your thoughts, report bugs, or suggest improvements.
Subject
Message

Blueprint Macro Laravel Package

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.

View on GitHub
Deep Wiki
Context7

Technical Evaluation

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.

  • Chasing an unreleased framework. ^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.
  • CI coverage gap. The standardized workflow is described as Laravel 12 + PHP 8.4/8.3. Laravel 13 — the headline feature — does not appear in that matrix as described, and neither do older supported versions. If the matrix truly is that narrow, "Laravel 13 support" is an untested claim. This is the single most important thing to confirm before we rely on it.
  • Dev-dependency churn. Larastan/PHPStan plugin bumps often shift static-analysis strictness. Harmless to production, but if we vendor or fork this package's CI config, expect a red build on first run.

Key questions:

  1. What are the exact 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?
  2. Is Laravel 13 in the CI matrix at all, and is it tested against a stable tag or a dev-master allowlist?
  3. Is there a documented deprecation path for any macro renamed or removed between 5.3 and 5.4?
  4. Is the maintainer intending to keep pace with Laravel's annual major cadence, and what is the historical lag between a Laravel GA and a supporting release here?
  5. Does the package declare a conflict with laravel/framework versions outside its tested range, or does it resolve optimistically?

Integration Approach

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.
  • Diff the package's composer.json constraints (not the changelog) to establish the true floor.
  • Run the existing migration suite from a clean database — forward and, if we support rollback, backward — because macro behavior changes surface as SQL differences, not exceptions.

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:

  1. Confirm constraint floor and Laravel 13 CI coverage (blocks everything else).
  2. Upgrade in the CI/test environment; run full migration suite against a scratch database.
  3. Promote to staging with a migration dry-run (migrate --pretend) and diff the generated SQL against the 5.3.0 baseline.
  4. Roll to production on the next normal deploy window; no dedicated release needed.
  5. Defer any Laravel 13 upgrade until Laravel 13 reaches a stable tag and we see evidence this package is tested against it.

Operational Impact

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:

  • Silent SQL divergence. A macro's generated DDL shifts across a Laravel major (index naming, column modifiers, default handling) and migrations produce subtly different schemas on different environments. Detectable only by diffing --pretend output; not detectable by tests that merely assert a migration ran.
  • Macro name collision. Another package or our own code registers the same macro name; last registration wins, and the failure surfaces as an unexplained schema shape.
  • Constraint drift. ^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.
  • Abandonment. Maintainer steps away mid-Laravel-cycle and the constraint goes stale. Mitigate with a calendar reminder each Laravel release and the inline-the-macros fallback above.

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.

Weaver

How can I help you explore Laravel packages today?

Conversation history is not saved when not logged in.
Prompt
Add packages to context
No packages found.
abbasudo/artisan-route
mirvan/ippanel
ignibyte/aic-framework
glavweb/data-schema-bundle
glavweb/datagrid-bundle
tacticmedia/scim-server
uni-method/frame
neika-ai/sdk
adachsoft/php-code-style
pharaonic/laravel-notification-dependencies
beautinow/translug
dev-brainiac/bot-cloaked
octoberrain/html
octoberrain/extension
octoberrain/exception
octoberrain/contracts
adachsoft/api-version-bundle
cgv/localized-resource
noith/settings
kda/laravel-package