Laramod is a Laravel module package that makes module registration explicit: each module is a class, the capabilities it provides are declared through contracts, and the application lists its module classes in one file. It replaces automatic module discovery with visible declarations—not Laravel’s underlying framework mechanisms.
What is Laramod?
Laramod is a package for organizing Laravel applications into modules. Its README puts the central idea simply: “A module is a class.” A module becomes part of the application when its class is listed in bootstrap/modules.php, and its available features depend on the contracts it implements. The Laramod repository documents PHP 8.3 or later and Laravel 13 as requirements. Treat those as the project’s stated compatibility targets, not as independently tested results.
As an Amazon Associate I earn from qualifying purchases.
Here, “without the magic” means that module registration and capabilities are declared rather than inferred from a directory structure. It does not mean Laravel stops using its normal bootstrap process, service providers, or container. Laravel’s request-lifecycle documentation describes service providers as part of application bootstrapping; that page covers an upcoming framework version and does not establish how Laramod implements its internals.
What’s actually slowing this PC down?
Pick the symptom - the matching free tool is one click away.
How does a Laramod module work?
Install and initialize the package
The documented setup is Composer-based:
- Run
composer require protibimbok/laramod. - Run
php artisan laramod:init.
According to the README, initialization creates a Modules/ directory and bootstrap/modules.php, publishes config/laramod.php, adds a Modules\ PSR-4 mapping, runs composer dump-autoload, and adds module unit and feature test directories to PHPUnit’s suites. The command edits composer.json and phpunit.xml as text while retaining their other contents; if expected insertion points are absent, it prints manual instructions. These are documented behaviors, not the results of an installation test.
#1 Best Overall
Generate a module
The standard generator command is php artisan make:module Blog. The README says it creates a BlogModule.php class along with default web and API routes and controllers, a migrations directory, a feature test, configuration, and English translations. It also adds the module class to bootstrap/modules.php.
Generator options include --api, --plain, and --order=10. The README describes the order of classes in the bootstrap file as the order in which modules are wired. Modules provided by Composer packages can also be listed there, or registered through a service provider using Laramod\Facades\Modules.
Opt into capabilities with contracts
A module’s directory alone does not activate every possible feature. The README lists contracts for these capabilities:
ProvidesRoutesfor web routesProvidesApiRoutesfor API routesProvidesGlobalMiddlewaresfor global middlewareProvidesMigrationsfor migrationsProvidesSeedersfor seedersProvidesCommandsfor commandsProvidesViewsfor viewsProvidesTranslationsfor translationsProvidesConfigfor configuration
For example, the README says a module without ProvidesViews has no views. The pattern makes declared capabilities visible in the module class, but also means developers maintain both those declarations and the central module list.
Rank #3
What commands and defaults are documented?
The README also lists laramod:list, which can output JSON; laramod:vite; and make:* --module={name} commands. Its default configuration uses Modules as the module path and namespace, groups web routes with the web middleware, and puts API routes under the api prefix and middleware. The repository documents composer test and composer lint as project commands.
How does Laramod compare with nwidart/laravel-modules?
The useful distinction in the available documentation is architectural, not a verdict about which package is better. Laramod documents a hand-maintained class list and contract-based capability declarations. The Laravel Modules v13 introduction describes nwidart/laravel-modules as grouping routes, controllers, models, views, migrations, and tests into modules, with service providers registering resources automatically.
Rank #4
| Design question | Laramod | nwidart/laravel-modules v13 |
|---|---|---|
| How are modules registered? | List module classes in bootstrap/modules.php, or use the documented service-provider registration option (Laramod README). |
Service providers register module resources automatically (v13 introduction). |
| How are capabilities expressed? | Contracts such as ProvidesViews declare capabilities (Laramod README). |
Features are organized in a conventional module structure (v13 introduction). |
| What do the sources establish about strict boundaries? | The README establishes explicit wiring, not enforced isolation between modules (Laramod README). | The documentation says the package does not enforce strict boundaries between modules (v13 introduction). |
The nwidart documentation is explicit that Laravel Modules is not a microservices framework: modules in one application can use one another’s models and services, while separate deployments or databases require additional decisions. Laramod’s explicit registration likewise should not be mistaken for proof that modules cannot call one another’s code or are isolated in deployment or data. A folder layout or registration method alone does not establish those boundaries.
This comparison is limited to the documented design choices. The sources do not provide a head-to-head benchmark, usability study, or basis for calling either package faster, more reliable, or easier to use.
Best Value
When does Laramod’s approach make sense?
Laramod’s design may suit a team that wants to inspect the application’s module list directly and declare each module’s capabilities in its class. The trade-off is equally clear: the list and declarations require manual upkeep. Teams that prefer provider-based registration and automatic resource discovery may prefer the documented nwidart approach. Neither choice, by itself, creates independently deployable services or enforces domain boundaries.
Quick Recap
Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.




