joshbrw/laravel-module-installer
Composer installer that places Laravel modules in a custom Modules directory instead of vendor, so module code stays editable and autoload-friendly. A lightweight drop-in for modular Laravel projects, commonly used alongside nwidart/laravel-modules.
Modules/, but they can be versioned, published, and installed like dependencies. That's a middle path — modularity without the operational cost of separate deployables.composer update instead of copy-paste drift.nwidart/laravel-modules contract plus Composer distribution gives you a real plugin ecosystem story.Adopt (or fork) when all of these hold:
nwidart/laravel-modules — this package is meaningless outside that ecosystem.Modules/ rather than vendor/.composer-plugin-api constraint covers your Composer minor version (Composer 2.2+ tightened plugin permissions — audit that allow-plugins works and that the plugin declares a compatible API range).Look elsewhere — or don't adopt at all — when:
path repositories in composer.json (with symlinks) solve the same problem natively, with zero plugin surface and zero abandonment risk. This is the default recommendation unless you truly need remote distribution.nwidart/laravel-modules majors of unverified compatibility. Treat it as abandoned and assume you own it.oomphinc/composer-installers-extender layered on composer/installers supports arbitrary custom package types with installer-paths, and is actively maintained — a lower-risk substitute for the same behavior.Diligence checklist before committing: confirm Composer 2.2 allow-plugins behavior, confirm compatibility with your nwidart/laravel-modules major, confirm PHP 8.2/8.3 support, and confirm the install path is configurable enough for your layout.
For executives (one paragraph): We're choosing a modular architecture so features can be built, released, and even sold independently instead of riding one monolithic release train. This package is a small but load-bearing piece of plumbing that lets a Laravel module be installed like any other dependency, into a predictable Modules/ folder. It's MIT-licensed, tiny, and does one job. The caveat a non-technical stakeholder needs to hear: it hasn't been updated since 2021, so we should treat it as code we own — either by vendoring/forking it or using a maintained equivalent — and that decision is a half-day of engineering, not a project. Net effect: it protects the roadmap by letting us ship modules on their own schedule.
For engineering (one paragraph): It's a Composer plugin that registers an installer for the laravel-module package type so nwidart/laravel-modules packages install into Modules/ instead of vendor/. That's the whole feature. The risk is entirely lifecycle, not design: unmaintained since Jan 2021, so verify the composer-plugin-api range against our Composer version and PHP 8.x, and confirm compatibility with whatever nwidart/laravel-modules major we pin. Recommendation: don't take it as a blind dependency — fork it into our namespace (~200 LOC), or use oomphinc/composer-installers-extender + composer/installers with an installer-paths mapping if we'd rather stay on maintained tooling. If we don't actually need remote distribution, use path repositories and skip this entirely.
Recommendation: Conditional adopt. Use it only as part of a deliberate modular-monolith platform decision; budget an owner, a fork or a maintained alternative, and a compatibility spike before it enters composer.json.
How can I help you explore Laravel packages today?