Weave Code
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

Module Manager Laravel Package

nasirkhan/module-manager

Laravel module management for Laravel Starter: track module versions, handle migrations and updates, resolve dependencies, publish/enable/disable modules, scaffold/build modules, diff changes, and generate module tests via artisan commands.

View on GitHub
Deep Wiki
Context7

Product Decisions This Supports

  • Modular Monolith Architecture: Justify building a modular Laravel application (vs. microservices) by reducing complexity, improving maintainability, and enabling incremental feature delivery. This package provides the scaffolding, dependency management, and lifecycle tools to make modularity feasible at scale.
  • Feature Flags & Progressive Rollouts: Leverage module:enable/module:disable to A/B test modules or roll out features gradually without code branching. Prioritization (priority in module.json) ensures safe load ordering.
  • Build vs. Buy: Avoid custom module systems (high dev effort) by adopting a battle-tested package with version tracking, migration management, and dependency resolution—reducing technical debt.
  • Roadmap Prioritization: Use dependency graphs (module:dependencies) to plan feature releases. For example:
    • Build "Tag" and "Category" modules first (no dependencies).
    • Delay "Post" until dependencies are stable.
  • Tech Debt Reduction: Replace ad-hoc module structures with standardized scaffolding (module:build), reducing onboarding time for new developers.
  • Multi-Tenant or Plugin Systems: Enable tenant-specific modules by dynamically enabling/disabling modules per environment or user group.
  • Migration Safety: Mitigate risks of breaking changes during updates with module:track-migrations and module:detect-updates, ensuring smooth composer updates.

When to Consider This Package

  • Adopt if:

    • Your Laravel app has >50K LoC or growing complexity, and you need to decompose into manageable modules.
    • You require versioned, dependency-managed modules (e.g., CMS plugins, SaaS features, or legacy system integration).
    • Your team lacks time to build a custom module system from scratch (this package handles scaffolding, migrations, and conflicts).
    • You need fine-grained control over feature enablement (e.g., for staging, beta testing, or feature flags).
    • Your app uses Laravel 12/13 and PHP 8.3+ (compatibility is strict).
  • Look elsewhere if:

    • You’re building a microservices architecture (this is for monoliths).
    • Your modules are truly independent (consider standalone services or packages).
    • You need hot-reloading or runtime module loading (this requires manual composer updates).
    • Your team prefers file-based routing (e.g., spatie/laravel-routing) over module-based organization.
    • You’re using Laravel Octane or Vapor (this package is optimized for traditional Laravel deployments).

How to Pitch It (Stakeholders)

For Executives:

*"This package lets us build Laravel like LEGO—breaking the app into reusable, version-controlled modules. Instead of one monolithic codebase that slows us down, we can:

  • Ship features faster: Enable/disable modules on demand (e.g., turn on ‘Payments’ for a beta group).
  • Reduce risk: Dependency checks and migration tracking prevent breaking changes during updates.
  • Lower costs: Avoid reinventing module systems (saves 3–6 months of dev time).
  • Scale cleanly: Add new features (e.g., ‘Analytics’) without touching core code.

ROI: Faster iterations, easier maintenance, and future-proof architecture for our growing team. Used by [hypothetical company] to cut deployment time by 40%."*

For Engineering:

*"This is a Swiss Army knife for Laravel modularity:

  • Scaffolding: module:build generates CRUD, migrations, and tests in seconds (no more copy-pasting resources/).
  • Dependency Hell Solved: module:dependencies flags conflicts before they break staging.
  • Migration Safety: Tracks schema changes per module—no more ‘surprise’ migrate:fresh failures.
  • Programmatic Control: Use ModuleVersion and MigrationTracker services to build custom workflows (e.g., auto-disable modules with failing tests).

Trade-offs:

  • Requires discipline to keep modules decoupled (but the tooling enforces this).
  • Slight overhead for composer updates (mitigated by module:detect-updates).

Next Steps:

  1. Pilot with 2–3 high-priority modules (e.g., ‘User Management’ + ‘Billing’).
  2. Integrate with CI to auto-track migrations on PR merges.
  3. Train devs on module:publish workflows to customize vendor packages."*

For Developers:

*"Stop fighting Laravel’s monolith—this package gives you: ✅ php artisan module:build User → Full module skeleton in 1 command. ✅ module:enable payments --env=staging → Test features in isolation. ✅ module:diff posts --detailed → See what changed between versions. ✅ No more ‘it works on my machine’: Dependency graphs catch conflicts early.

Pro Tip: Use priority in module.json to control load order (e.g., 10 for auth, 5 for UI). Pair with module:make-test to auto-generate test classes.

Gotchas:

  • Published modules need composer dump-autoload (add to deploy scripts).
  • Livewire/Blade assets must be manually published (but the CLI guides you)."*
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.
elnasnato/laraliveui
labrodev/rest-sdk
sampaui/sampaui
babelqueue/php-sdk
facebook/capi-param-builder-php
babelqueue/symfony
hamzi/corewatch
minionfactory/raw-hydrator
hexters/coinpayment
rjcodes/rjcms
act-training/laravel-permissions-manager
alimarchal/laravel-chart-of-accounts
babenkoivan/elastic-scout-driver
mkwebdesign/filament-watchdog-v5
renatomarinho/laravel-page-speed
zedmagdy/filament-business-hours
renatovdemoura/blade-elements-ui
devgeek/beacon-admin
benjamin-rqt/data-watcher-bundle
atriumphp/atrium