formfeed-uk/nova-dependable-panel
A Laravel Nova package for building dependable panels that conditionally display or hide groups of fields based on other form values. Keep complex Nova forms cleaner, clearer, and more intuitive by showing only the relevant fields when needed.
Architecture fit. formfeed-uk/nova-dependable-panel is a Laravel Nova extension — a Vue-backed panel/container that adds conditional ("depends on") visibility logic to fields rendered inside it. It sits entirely in the presentation layer of the Nova admin panel and does not touch application runtime, routing, Eloquent models, or queue/console paths. Fit is therefore narrow but clean: it only matters if the product already runs Nova as its back-office, and it delivers value only where form UX currently relies on hand-rolled dependsOn chains or canSee closures that are hard to maintain.
Integration feasibility. Installation is a standard Composer require plus Nova's package discovery; usage is declarative in NovaServiceProvider/resource fields(). No database migrations, no config publishing expected, no external services. Effort to a working spike is measured in hours, not days.
Technical risk. Release 1.2.3 is a single-line patch — "fix: issue with array keys" — which is a strong signal that the dependency-resolution path had an indexing defect for multi-value source fields (BooleanGroup, MultiSelect, Checkbox/CheckboxList, or keyed option arrays). Low blast radius, but two caveats: (a) the fix implies the array-key path was previously unreliable, so any form depending on multi-value fields should be treated as freshly-changed behaviour and regression-tested rather than assumed identical; (b) it is a patch on a small, single-maintainer package, so the correctness guarantee rests on that maintainer's test coverage, which we have not inspected.
Key questions.
composer.json constraints or only in the README?dependsOn on non-field components (tabs, cards), and Nova's ->canSee() precedence rules?Stack fit. Only applicable to the Nova admin surface of the Laravel app. It must not be introduced into customer-facing views, API resources, or any Blade/Inertia front end — those are unaffected by and incompatible with this package. Confirm the app is on Nova (not Filament/Backpack) before any work is scheduled.
Migration path. Additive, not a migration. Bump formfeed-uk/nova-dependable-panel from 1.2.2 to 1.2.3 in composer.json, commit the lockfile, and deploy through the normal release pipeline. Because Nova assets are compiled, the deploy must include the Nova asset publish/build step; a Composer-only deploy will leave stale JS in public/vendor/.
Compatibility. Semver patch, so no API breakage expected. Verify the composer.json constraint against the installed Nova version and PHP version before merging. If the app pins Nova 4 while the package's latest constraint targets Nova 5, pin the package to the last compatible tag rather than force-resolving.
Sequencing.
canSee closures to dependable panels) as a separate, later change so the version bump and the refactor are not entangled in one rollback boundary.Maintenance. Low ongoing cost by volume — the package is a thin UI wrapper with infrequent releases — but the maintenance risk is concentrated in a single maintainer at Formfeed-UK. Budget for the possibility of abandonment: keep the dependency optional and behind a small number of resource files so it can be removed or vendored without a wide refactor.
Support. GitHub issues only; no commercial SLA, no security advisory process observed. Acceptable for an internal admin tool; not acceptable as a dependency anything customer-facing or compliance-critical rests on.
Scaling. Negligible server-side impact — dependency evaluation happens client-side in the Nova SPA. The only scaling consideration is form complexity: heavily nested dependable panels on large resources (hundreds of fields) can add render latency and make behaviour harder to reason about. Prefer flat panels per tab over deep nesting.
Failure modes.
Ramp-up. Low. The declarative API is a few methods on a panel/field, so a Laravel developer familiar with Nova is productive within an hour and a half, and the concept maps onto the dependsOn/canSee mental model most Nova developers already hold. The non-obvious learning is the interaction between panel-level dependency logic and Nova's own visibility rules — document the team's chosen precedence convention once, in the repo, so it does not get re-litigated per resource.
How can I help you explore Laravel packages today?