ozankurt/laravel-modules-blog
A drop-in blog module for Laravel modular applications, providing posts, categories, and admin scaffolding that plugs into your existing module structure with minimal setup.
What this release is. v2.0.0 is a platform-baseline release, not a feature release. The release notes state explicitly that "no source changes were needed" and that the suite (98 tests, 297 assertions) plus PHPStan level 8 pass as-is. The substantive change is the support matrix: PHP ^8.4, Laravel ^13.0, Pest 5, Orchestra Testbench 11, plus companion module bumps (ozankurt/laravel-modules-core ^2.0, ozankurt/laravel-modules-interactions ^2.0). Blog domain behaviour is unchanged, including the caching rule that a view-count-only bump does not invalidate the post-by-slug cache.
Architecture fit. The package presents as a modular blog/content capability for Laravel: illuminate/contracts|database|support coupling, cviebrock/eloquent-sluggable for slug routing, spatie/laravel-package-tools for service-provider/config registration, and Filament 3/4/5 for admin surfaces. That is a conventional, low-surprise shape for a Laravel package and should sit alongside an existing Laravel app without asserting its own runtime opinions. The companion laravel-modules-* dependencies imply the package participates in a module system rather than being a standalone monolith — worth confirming which side owns discovery/registration.
Integration feasibility. High in principle, but gated entirely by platform currency. Consumers on Laravel 12 / PHP 8.3 are hard-blocked by this version; there is no deprecation runway described. Filament 3/4/5 breadth is a genuine positive — it decouples the admin-UI decision from the blog-core decision and lets teams stage a Filament upgrade independently. The version constraint on eloquent-sluggable (^12.0 || ^13.0) shows deliberate dual-track tolerance, which is a good signal for transitive dependency friction.
Technical risk.
*-core ^2.0, *-interactions ^2.0, this). Partial upgrades will produce resolution conflicts rather than clean errors.Key questions for the maintainer.
laravel-modules-core?laravel-modules-* v2 bumps themselves breaking, or purely baseline-aligned? This materially changes the migration scope.Stack fit. Assume a Laravel application with a Filament admin panel and an existing blog or content surface using slug-based public routing. The package is a drop-in capability layer: contracts and support bindings for the domain, eloquent-sluggable for routing keys, package-tools for config/provider registration, Filament resources for authoring. No architectural reorientation is implied — which is exactly what a TPM wants from a dependency of this class.
Compatibility gates. Two hard gates must both clear before scheduling work: (a) application runtime on PHP 8.4, (b) application framework on Laravel 13. A third soft gate: every other third-party package in the app must have Laravel 13 support. Gate (c) is the one that historically slips, and it is outside this package's control — so it belongs in the risk register, not the package evaluation.
Migration path. Because the package itself has no source changes, the migration is a dependency-resolution exercise plus an application platform upgrade. Tractable sequence:
laravel-modules-* companions to ^2.0 in a single change. Run the integration suite.The value of steps 2 and 3 as distinct stages is that they convert one large unknown into two small ones; collapsing them makes failure diagnosis expensive.
Sequencing note. Do not bump Filament in the same change as the platform upgrade. The package supports Filament 3/4/5 across the matrix, which means Filament version is a free variable — keep it fixed while the platform moves.
Maintenance. Low ongoing cost if the app stays on the supported floor. The maintainer is demonstrably investing in the quality bar — PHPStan level 8, Pest 5, a CI matrix spanning three Filament majors — and a release with zero source changes and a green suite is a strong hygiene signal. The counterweight: a maintainer willing to drop a Laravel major and a PHP minor in a single minor-numbered release (1.x → 2.x for a baseline bump) is signalling a fast-follow support policy. Plan for a similar jump at Laravel 14.
Support. Two questions determine supportability: is there a maintained 1.x line (see Key Questions), and is there a documented upgrade guide. Absent both, consumers who cannot move to Laravel 13 are effectively unsupported, and the team inherits the upgrade risk unassisted. Escalate this before adoption if the application cannot reach Laravel 13 within roughly one release cycle.
Scaling. The package is not the scaling bottleneck. The relevant scaling surface is the caching contract: post-by-slug caching with a deliberate exemption for view-count increments is precisely the design that keeps a high-traffic read path off the database while avoiding pathological cache churn on a write-heavy counter. That is the right trade-off for a blog, and unchanged semantics in v2.0.0 mean no re-tuning is required. Watch only that the view-count write path itself (likely an increment, not a full model save) is batched or throttled at the application layer if traffic is high.
Failure modes.
laravel-modules-* or a third-party package without Laravel 13 support. Manifests as a Composer error, not a runtime bug — cheap to detect, potentially slow to resolve.Ramp-up. For a team already fluent in Laravel and Filament, near zero — the public API is unchanged in this release and the domain is familiar. Budget the real effort against the platform upgrade, not the package. For a team new to the laravel-modules-* pattern, add roughly a day to understand module registration and where this package's service provider sits in the boot order, since misregistration failures are opaque. Recommend one engineer own the upgrade as a tracked workstream with the Filament decision explicitly deferred, and require the cache-invariant test as an exit criterion.
How can I help you explore Laravel packages today?