Weave 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

Resource Generator Laravel Package

cloudstudio/resource-generator

Laravel package that generates resource classes from your Eloquent models, cutting the boilerplate out of API scaffolding. Point it at a model and get ready-to-edit resources, so you spend less time on repetitive setup and more on your app's logic.

View on GitHub
Deep Wiki
Context7

Technical Evaluation

Architecture fit. cloudstudio/resource-generator is a build-time scaffolding utility, not a runtime dependency. It introspects the database schema and emits Eloquent models, controllers, requests, routes, and/or Nova resource classes; there is no service provider to keep registered in production, no middleware, no queue workers, no schema changes, and no request-time config surface. For a TPM this is an unusually clean profile: the durable artifact is ordinary PHP that we own outright, the package can live in require-dev, run once per domain, and be removed. Blast radius is confined to the generation session, lock-in is effectively zero, and the decision is reversible — which is exactly the property that makes a small pilot worth approving.

Integration feasibility. Feasibility is gated almost entirely by whether Nova is already in the stack and at what version. Nova is a paid, closed-source first-party product with its own release cadence, and this package's last release is 2022-03-12, predating Laravel 10/11 and later Nova field APIs. Composer constraint resolution against a current stack is the first real gate, and it should fail loudly rather than degrade silently. The practical path is a scratch/dev environment, a staging schema snapshot, generate, review, commit. No migration, no cutover, no runtime coupling; effort is measured in hours, not sprints, provided that gate passes. There is a documentation inconsistency to resolve before scoping: the repository tagline and product notes describe Nova-specific resource scaffolding, while the package description describes generic Laravel JsonResource generation with configurable namespaces. Those are different decisions with different prerequisites — one requires a paid Nova license — and the command surface should be read from source rather than trusted from the README.

Technical risk. Three risks dominate. (1) Staleness and maturity: no release in roughly three years, ~105 stars, zero dependents, single-maintainer signal, and a low composite score of 1.335. The correct default assumption is unmaintained. Low dependents in a niche ecosystem is not proof of poor quality, but it does mean no community backstop. (2) Introspection fidelity: schema-driven generation infers field types and relationships from column types and foreign keys, so polymorphic relations, pivot tables, enums, JSON columns, custom casts, and non-standard primary keys are the predictable failure points. Generated resources can load cleanly and still render wrong or throw at query time — a quiet failure, which is the expensive kind. (3) Regeneration drift: re-running the generator over hand-tuned resources risks overwriting manual edits, so it must be treated as a deliberate, diff-reviewed, one-way operation and never a routine command. Secondary risk: emitted code inherits our Nova version's conventions, so a future Nova upgrade becomes a normal upgrade problem rather than a package problem — acceptable, but the plan should state it explicitly.

Key questions. Which Laravel and Nova versions are we actually on, and does the composer constraint admit them? Does it generate fields only, or also policies, filters, lenses, actions, and relationship metadata — and can it target a scratch namespace or path so we can generate and diff before touching app/Nova? What is its behavior on our largest and most irregular tables — idempotent, additive, or overwriting? Who reviews generated resources, against what written definition of done? Which of the two conflicting scope descriptions is accurate? And what is the measurable baseline — hours currently spent per resource — so we can tell whether the pilot paid off rather than assuming it did?

Integration Approach

Stack fit. Effectively binary. Valuable if the target application runs Laravel Nova; irrelevant otherwise. If the admin surface is Filament, a custom Blade console, or a separate SPA, stop here and spend no evaluation budget. Assuming Nova, the fit is clean: the tool writes ordinary resource classes into the standard namespace, so there is no runtime contract or architectural coupling to justify. It also assumes a relational schema with recognizable column types and foreign keys; document-oriented or heavily JSON-driven data models will produce weak output regardless of package quality.

Migration path. There is no data or traffic migration; the migration is procedural. Install pinned in require-dev, generate against a schema snapshot (staging or a seeded local database), commit the output as hand-owned code, then retire the package from composer.json or leave it parked behind a documented runbook. That converts an unmaintained third-party tool into a one-time capital expense rather than an ongoing liability. Write the exit criterion before the pilot starts: if generated output requires more editing than authoring from scratch, we keep the hand-written resources and drop the tool — a legitimate, cheap outcome that should be framed as success of the evaluation, not failure of the package.

Compatibility. Verify three constraints before any pilot: PHP version, Laravel major, Nova major. Given the 2022 release date, expect validated support for roughly Laravel 8/9 and Nova 3/early 4. On Nova 4.3x+ or Laravel 10/11, plan for either a narrow forked patch of the generator (MIT permits it, and the surface is small) or acceptance that the tool produces a first draft to finish by hand. Both are workable; neither should surface mid-sprint. Confirm the package does not pin a specific doctrine/dbal version — a common transitive-conflict trap for schema-introspecting tooling.

Sequencing. (1) Confirm Nova tier and version, and reconcile the Nova-specific versus generic-scaffolding scope question from source. (2) Create a throwaway branch with a schema snapshot. (3) Run the generator against one small, representative module containing a mix of belongsTo, belongsToMany, and a polymorphic relation. (4) Diff output against a hand-written reference resource to calibrate quality and quantify actual time saved. (5) If acceptable, proceed per domain in dependency order — lookup/reference tables first, dependent entities after — so relationship targets exist before dependents. (6) Codify the runbook, record the pinned version, and retire or park the package. If step 4 fails, fall back to hand-authored resources plus a small internal Artisan command: modest work, zero dependency, better long-term posture.

Operational Impact

Maintenance. Assume zero upstream maintenance. Dependabot and security scanning will flag the dev dependency indefinitely, and each flag costs a triage cycle for no benefit once generation is done — a concrete argument for removal rather than pinning. Post-generation, maintenance shifts entirely to the generated PHP, which is the desired outcome: reviewable, owned, and covered by the normal Nova upgrade process. The one standing operational obligation is the runbook: document the pinned version, the schema snapshot used, the exit criterion, and the "do not re-run over hand-tuned resources" rule, so a future engineer does not rediscover it destructively.

Support. There is no vendor, no SLA, and no realistic expectation of upstream issue response. Internal support burden is therefore front-loaded into the pilot: whoever runs the generator becomes the de facto owner of the generated resources and should be the code reviewer for them. Budget for that review time explicitly rather than treating it as incidental — it is the control that catches introspection errors before they reach ops.

Scaling. Scaling characteristics are favorable because they are bounded: generation cost is per-table and linear, and the runtime cost of the output is Nova's, not the package's. The package does not scale into a platform dependency — it produces a fixed corpus of classes and stops. Practically, this means the tool never becomes a bottleneck or a capacity-planning concern; the constraint is review throughput, not the generator.

Failure modes. Three to plan for. Silent fidelity failure — resources load but render wrong or throw at query time on polymorphic, enum, JSON, or non-standard-key tables; mitigated by diffing against a hand-written reference and exercising each generated resource in a browser before merge. Regeneration overwrite — re-running the command clobbers hand edits; mitigated by a scratch path first and a documented one-way rule. Composer resolution failure — the pinned dependency conflicts on a current stack; this fails loudly at install, before any code is written, and is the cheapest possible failure. Add the usual dev-dependency risk: nothing generated ships with a runtime import of the package, so a later removal cannot break production.

Ramp-up. Low. Setup is a Composer require, a config publish, and one Artisan invocation; a mid-level Laravel engineer is productive within an hour, and the real learning is Nova conventions rather than the generator. Scope the pilot to hours, not sprints, and gate it on the compatibility check and a confirmed fork path. Success looks like measured hours saved per resource and a documented retirement of the tool; failure falls back to native Nova tooling or a lightweight in-house generator — a modest amount of engineering work with far better long-term posture.

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.
robertmarney/lara-hierarchial-collections
simonschaufi/rule-doc-generator
emissaoja/emissaoja
blackbricksoftware/gravityforms-civicrm-form-processor
al-rahabi/fancy-crud
jinas/dhivatar-component
mltstephane/laravel-quality
bernskiold/laravel-talentlms
bernskioldmedia/laravel-form-architect
youbar/easy-crud
c-point-labs/laravel-hostyourai
dbravoan/dbcms-admin-theme-dbcms
dbravoan/dbcms-theme-db-cyber
dbravoan/dbcms-blocks-basic
dbravoan/dbcms-module-content-audit
dbravoan/dbcms-module-ai-assistant
paygate-to/paygate-php
padosoft/askmydocs-connector-base
defstudio/supercharged-carbon
bernskioldmedia/laravel-matomo