tetes-de-pioche/laravel-modular-api
Laravel Modular API helps you build Laravel APIs from self-contained, reusable modules. Keep routes, controllers, models, and services organized per module for cleaner code, easier maintenance, and scalable structure. Ideal for teams splitting large APIs into independent feature packages.
laravel-modular-api sits in the "conventions + code generation" layer rather than the runtime layer. The decision it informs is not "can Laravel do this?" (it can) but "do we want to own an internal module/API generator, or adopt and shape an existing one?" That is a real cost line: an internal generator is typically 2–6 weeks of initial build plus permanent maintenance drag every time Laravel ships a major version.^1.0.3.1.0.x line still shipping type-extraction fixes tells you the core abstraction is settling but not settled. Plan for churn in generated output over the next few minors; do not hand-edit generated files in ways you can't re-apply.Adopt when:
v1/v2 coexistence).Look elsewhere when:
composer.json and CI before the spike begins.Before committing, run a bounded spike: one module, one endpoint, timeboxed to a few days. Measure (a) time to first working endpoint versus your baseline, (b) how much generated output a reviewer wants to change, (c) whether regeneration is stable and diffable. If reviewers consistently rewrite generated code, the convention is wrong for your team and no amount of adoption discipline fixes it.
For executives (one paragraph): We're evaluating a small open-source Laravel package that standardizes how we structure and generate API modules. The business case is throughput and consistency, not new capability — it reduces the boilerplate and structural drift that slows down API work as we add endpoints and teams. The financial exposure is minimal: it's free, the output is plain Laravel code we keep even if we drop the tool, so there is no meaningful lock-in and no migration cliff. The real risk is maintenance maturity — it's an early-1.x, effectively single-maintainer project — which we mitigate by pinning a version and assigning an internal owner. Recommendation: fund a short, timeboxed pilot on one module with clear success criteria (time-to-endpoint and review churn), then decide.
For engineering leadership: This buys us an enforced module convention and less repetition across API surfaces. It is additive — it does not replace routing, Eloquent, or our test stack. Adoption cost is front-loaded and small on greenfield work; it is a poor fit for retrofitting the existing monolith. The current release, v1.0.3, is a patch that fixes a correctness bug in how API types are identified and extracted — meaning anything generated on v1.0.2 may be subtly wrong. Pin to ^1.0.3 or later and regenerate rather than hand-patching.
For the engineers doing the work: Treat generated code as a reviewed artifact, not an oracle. The v1.0.3 fix shows the type-extraction logic is still maturing, so expect further corrections across the 1.x line: keep generated files free of hand-edits you can't re-apply, keep regeneration diffs small and in their own commits, and route any recurring bug upstream rather than into a local fork. Verify the Laravel version support matrix and the package's test coverage yourself before the spike — that information is not in the release notes, and this assessment is based on the v1.0.3 changelog alone, so treat the maturity read as provisional until someone has read the source.
For security/procurement: New dependency, early-1.x, small maintainer base. Requires the standard intake: license check, dependency-tree review, and an identified internal owner accountable for upgrades. Not a candidate for anything on a regulated or customer-data-critical path without that owner in place.
How can I help you explore Laravel packages today?