grafite/crudmaker
Grafite's CrudMaker scaffolds complete Laravel CRUD from a simple YAML config, generating models, migrations, controllers, routes, views, and tests in seconds. Customize the templates to match your conventions and skip repetitive boilerplate.
Architecture fit. CrudMaker is a Laravel-native scaffolding package: a service provider registers an Artisan command (crud:make) that reads a YAML/JSON schema and emits migrations, Eloquent models, controllers, routes, Blade views, and tests from published stubs. This is a generation-time tool, not a runtime dependency — architecturally it sits beside the app, not inside the request path. That is the most favorable thing about it: generated artifacts are plain Laravel code we own outright, so there is no library lock-in at runtime. The fit is otherwise narrow — the package's idioms (Laravel 5.x-era stubs, older Blade directives, Faker-based factories, implicit route model binding patterns) are dated relative to a modern Laravel 10/11 codebase.
Integration feasibility. Low as a direct Composer install. The realistic paths are (a) fork and port, (b) install in an isolated generator service and copy output into the monolith, or (c) mine it for patterns and build our own. All three are viable; only (c) avoids owning abandoned code. Before committing we need a compatibility matrix: which Illuminate versions the composer constraints permit, whether the stubs emit PHP 8-compatible code, and whether the YAML layer has unmaintained transitive dependencies.
Technical risk. The dominant risk is abandonment. The repository is archived, upstream will never ship a security or compatibility patch, and there is no CVE feed to subscribe to. Secondary risks: generated controllers frequently ship without authorization policies or FormRequest validation, so a naive run can produce insecure CRUD by default; template drift means regenerated code diverges from hand-edited code with no reconciliation story; and generated migrations can collide with existing schema.
Key questions.
Stack fit. Assume Laravel 5.5–5.8 and PHP 7.x as the designed target. Modern Laravel requires stub rewrites, helper-function replacement, and Blade/Faker API updates. Treat it as a reference implementation of schema-driven generation rather than a drop-in library.
Migration path. Recommended sequence: pin the fork to a known commit, vendor it into an internal tools/crudmaker package under our namespace, and relicense notice-per-MIT. If the port cost exceeds ~2–3 engineer-weeks, pivot to building a thin in-house generator that reuses CrudMaker's schema grammar and stub structure but emits our house standards (FormRequests, policies, API resources, Pest tests). The schema format is the reusable asset; the stubs are the liability.
Compatibility. Audit hard-coded dependencies: illuminate/support version bounds, Symfony Console constraints, str_*/array_* global helpers removed in Laravel 6, Faker\Generator signatures changed in Faker 1.10+, and Blade @php/@endforeach syntax changes. Every one of these is a silent-failure vector in a generator — the output looks plausible but won't run.
Sequencing.
Maintenance. Adoption equals ownership. An archived package means every Laravel major upgrade becomes our problem: no upstream PRs, no release notes, no compatibility shims. Budget a recurring maintenance line item (roughly 10–15% of one engineer) for stub upkeep and dependency patching, or explicitly scope it as a one-time codegen tool that is not kept current.
Support. No upstream support, no maintainer responsiveness, no security advisories. Internal support burden falls on whichever team owns the fork. Document this in the ADR so future teams don't mistake it for a supported dependency.
Scaling. Low runtime risk — it generates code and exits. Scaling concerns are organizational: template sprawl (multiple teams forking stubs locally), inconsistent output across modules, and onboarding cost as new engineers encounter generated code they didn't write and don't fully recognize. Mitigate with a single blessed stub set and a generation-time lint/review gate.
Failure modes.
Ramp-up. Moderate for Laravel-fluent engineers — the schema DSL is learnable in a day, but the stubs are undocumented beyond a stale README, so effective ramp-up is "read the templates." For teams without Laravel depth, the generated code is opaque enough to be a net negative.
Recommendation. Do not adopt as a production dependency in its current archived state. Evaluate it as a one-time scaffold source or a pattern reference, gated behind a two-week spike with a hard go/no-go at the fork-vs-rebuild decision point. The 4.91 opportunity score is the interesting signal — there is a real gap for schema-driven Laravel generation — but CrudMaker is evidence the gap exists, not a vehicle for closing it.
How can I help you explore Laravel packages today?