milwad/laravel-crod
Laravel CRUD generator that scaffolds controllers, models, migrations, routes, and views from a single Artisan command. Quickly build working resource management with customizable stubs and field definitions.
What it is: milwad/laravel-crod is a dev-time CRUD scaffolding package for Laravel — an opinionated superset of make:model/make:controller that emits a full vertical slice (controller, model, migration, form request, resource, and supporting service/action classes, depending on stub configuration) from a single Artisan command. It is not a runtime dependency: it produces plain PHP files that live in your repository. That single fact drives most of the risk profile.
Architecture fit. Shallow coupling by construction — the package never executes in production, has no service provider that touches request lifecycle, no middleware, no DB hooks. It fits conventional Laravel monoliths and teams already organized around a controller → request → service/action → resource layering. It fits poorly if the codebase uses modular/DDD boundaries, Livewire or Filament-first UI, or house conventions (DTOs, enums, custom pagination envelopes) that the shipped stubs don't express. The evaluative question is not "is it safe" but "does it encode our conventions, or do we spend the savings in review."
Integration feasibility. High. Composer install, publish config/stubs, run a command. Reversal is composer remove plus deleting generated files — no lock-in, no data migration, no infra change. A one-day spike is sufficient to reach a go/no-go. Effort to evaluate: ~1 engineer-day. Effort to adopt properly (custom stubs + internal doc): ~2–3 engineer-days.
Technical risk. Low blast radius, moderate sustainability risk:
Key questions to resolve before approval:
Stack fit. Laravel 9–12 / PHP 8.1+, Composer-managed, database-agnostic. Install as a require-dev dependency so it never appears in the production autoload graph. It coexists fine with Pint, PHPStan/Larastan, and Rector; it does not conflict with existing make:* commands.
Migration path. Do not retrofit existing code — generated output would churn the codebase for zero business value. Adopt for new verticals only, and treat the package as a template engine, not a framework:
stubs/ or equivalent) so they are version-controlled and reviewable.Compatibility management. Pin an exact version in composer.lock. Add the package to the matrix you already run when evaluating a Laravel major upgrade — the failure mode is a broken Artisan command, not a broken app, so this is a low-severity, easily-detected break.
Sequencing.
Keep it out of CI/CD as a gate. It is a developer convenience, not a pipeline stage.
Maintenance. Near-zero runtime maintenance — nothing to operate, monitor, or patch on a schedule. The recurring cost is stub drift: when the package updates its templates, our customized copies must be reconciled. Budget roughly half a day per Laravel major release. Security exposure is effectively nil because there is no runtime surface.
Support. Community-only, single maintainer, no SLA and no commercial backing. The mitigation is structural rather than contractual: because every artifact is committed source, the worst case is "the generator stops working and we write files by hand again." That is a productivity regression, not an incident class.
Scaling. No effect on application runtime scaling. Team-scaling effects are mixed and worth naming: it improves consistency and onboarding speed for CRUD-shaped work (which is a large share of most Laravel backlogs), but it also lowers the friction of adding endpoints — which is exactly where review discipline must compensate. Generated code that nobody reads is uniformly wrong rather than inconsistently wrong.
Failure modes and mitigations:
Ramp-up. ~1–2 hours per developer for commands and conventions; ~half a day for whoever owns stub customization. Ramp-up quality is gated by the package's own README, so pair it with an internal doc rather than pointing people at the upstream repo.
Recommendation. Approve as an internal, dev-only tool with customized stubs, piloted on new features only, gated by static analysis. It is a low-cost, low-risk, medium-value developer-experience decision — not a platform or architecture commitment — and it remains fully reversible at any point.
How can I help you explore Laravel packages today?