outhebox/nova-fields-agent
A Laravel Nova package from outhebox that adds an Agent field to your Nova resources, making it easy to store, display, and manage agent-related data directly in admin panels. It fits into Nova's field system and helps keep resource forms and detail views informative.
Architecture fit. outhebox/nova-fields-agent is a Nova field package, not an application-layer library. It plugs into Nova's field-resolution pipeline (a PHP Field subclass plus a Vue component and CSS) to hide columns on narrow viewports. That architecture is idiomatic for Nova custom fields, so conceptually it fits any Nova resource — but it also means the package is coupled to Nova's internal field contract rather than to Laravel proper. Nova is a paid, separately-versioned product, and this package has not shipped since December 2019, when Nova 2 was current. Nova 3 (2020), 4 (2022, Vue 3 + Inertia rewrite of the asset pipeline), and 5 (2024) all changed field registration and front-end scaffolding. The realistic fit is "Nova 2 only," which in 2025 means almost no greenfield fit.
Integration feasibility. Low, and largely independent of the package's own quality. Two implementation questions determine whether integration is a one-line wrapper or a rewrite: (1) does it decorate a field (adds a responsive class) or wrap one (must proxy resolve, resolveForDisplay, resolveUsing, sorting, filtering, and relationship metadata to the inner field)? A wrapper that fails to proxy silently blanks columns — the classic failure mode for Nova field wrappers. (2) Is hiding enforced client-side via CSS media queries, or server-side via user-agent sniffing? Client-side is safer but leaves the payload unchanged; server-side avoids over-fetching but is uncacheable and UA-fragile. Neither is documented well enough at 10 stars to assume.
Technical risk. Dominant risk is abandonment, not defects. Zero dependents and a single maintainer mean no downstream pressure to keep it working; the MIT license is the escape hatch, not a support contract. Secondary risks: composer constraints almost certainly pin laravel/nova to ^2.x and will hard-fail on install against a modern Nova; a broken Vue component can take down the entire resource index view rather than degrade gracefully; and display:none-style hiding has accessibility implications (content removed from the accessibility tree with no alternative) that need a design decision, not a package default.
Key questions.
composer.json constraints exist on laravel/nova, php, and laravel/framework?hideFromIndex() / hideWhenCreating()?Stack fit. Only relevant for teams running Laravel Nova, which is a minority position and a paid one. For everyone else this package is a pattern to read, not a dependency to install. Where a Nova 2 estate does exist, the fit is cosmetic-only — it changes presentation, not data, authorization, or persistence, so it cannot leak data or corrupt writes. That bounded blast radius is its one genuine strength.
Migration path. Strongly favor build over buy. The functional requirement — "collapse low-priority columns on small screens" — is roughly 20–40 lines of custom CSS scoped to the Nova index plus a thin field wrapper, or simply Nova's native hideFromIndex() combined with a breakpoint-aware stylesheet. That gives the team version control over Nova upgrades, which is precisely what this package cannot offer. A defensible middle path: fork the repo, vendor it internally, and treat it as first-party code you now own.
Compatibility. Assume Nova 2 / PHP 7.x-era syntax and Nova 2's asset mix. Nova 4's Vue 3 and Inertia migration invalidates the front-end half of the package outright; the PHP half may survive with edits. Do not plan an upgrade path through this package — plan an upgrade path off it. Verify with a spike against the exact Nova version in use before committing to anything.
Sequencing. (1) Spike: attempt install in a throwaway Nova app and confirm composer resolves and a wrapped field renders and sorts correctly. (2) If it resolves, pin the exact version, fork to internal ownership, and add a smoke test asserting the wrapped field still returns its underlying value. (3) If it does not resolve — the likely outcome — close the evaluation and implement the CSS/wrapper in-house. (4) If a Nova major upgrade is on the roadmap, do not adopt at all; sequence the responsive work into the upgrade instead.
Maintenance. Effectively 100% internal from day one. Six-plus years without a release, no issue triage, no security response. Forking is the only sustainable posture, and the fork immediately becomes a Nova-upgrade blocker you must service at every Nova major. Compare against a one-hour in-house implementation with zero external upgrade debt.
Support. No vendor, no maintainers-on-call, no community to escalate to. At 10 stars and zero dependents, there is no signal that anyone else has run this in production. Internal engineers will be the sole source of truth, and the original author's intent will have to be reverse-engineered from source.
Scaling. Runtime cost is negligible — it is presentation-layer CSS, not a query or serialization change. The scaling concern is organizational: if hiding is done client-side, mobile index pages still ship every column's data, which matters for wide resources on cellular connections. If done server-side, you lose cacheability behind a CDN. Neither scales problematically at typical admin-panel traffic volumes.
Failure modes.
Ramp-up. Technically trivial — a mid-level Laravel engineer understands the pattern in under an hour. The real ramp-up cost is the Nova-version investigation and the decision to own a fork. Recommendation: do not adopt as a dependency. Mine the source for the responsive pattern, implement in-house in a day, and keep the Nova upgrade path unencumbered.
How can I help you explore Laravel packages today?