bbs-lab/nova-items-field
A Laravel Nova field for managing repeatable item lists inside your resources. Add, edit, reorder, and remove rows through a clean native Nova UI, with structured JSON storage that keeps multi-item data simple to build, validate, and maintain.
Architecture fit
Integration feasibility
composer require bbs-lab/nova-items-field with a fluent API mirroring native Nova fields (Items::make()->chips()->suggestions()->rules()->itemRules()). Low ceremony, no service provider wiring described, no schema change beyond an existing JSON/text column.->rules() for the array, ->itemRules() for each row) with inline per-row errors is the strongest TPM-relevant feature: it moves data-quality enforcement into the admin UI instead of relying on downstream cleanup.array/json and that non-Nova write paths (imports, seeders, API endpoints, jobs) produce the same JSON shape — the field validates only what passes through Nova.Technical risk
^8.4 floor is the largest adoption blocker. Teams on 8.2/8.3 cannot install without a runtime upgrade; this gates the package behind an unrelated platform initiative. Verify whether the floor is a hard language-feature dependency or a policy choice.blendbyte/nova-items-field → bbs-lab/nova-items-field, BBSLab\NovaItemsField\Items). The README advertises a migration table, but stored-data compatibility and method-by-method API parity must be proven, not assumed — this is a rewrite, not a patch release.->rules('max:10') and ->max(10)) create ambiguity about which layer is authoritative and whether both are enforced server-side. Clarify defence-in-depth versus duplication.Key questions
blendbyte predecessor for existing records, or is a data migration/backfill required?->rules()/->max() enforced server-side on save, or only in the Vue layer? Can a crafted request bypass per-item validation?chips() and indexAsChips() views, and is there a documented canonical shape?composer update?Stack fit
Migration path
blendbyte/nova-items-field: run the README migration table as a checklist per field, swap imports to BBSLab\NovaItemsField\Items, and diff rendered output in a staging resource before touching production forms.Compatibility
Sequencing
^1.0) and a defined re-evaluation point at the next minor release.Maintenance
Support
Scaling
->maxHeight() and ->max() are UX/validation guards, not performance guarantees.Failure modes
Ramp-up
How can I help you explore Laravel packages today?