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

Nova Resource Click Laravel Package

marshmallow/nova-resource-click

Make Laravel Nova resource index rows clickable. Click anywhere on a row to open its detail page, with configurable behavior, without writing custom JavaScript. A small, focused Nova extension for faster navigation.

View on GitHub
Deep Wiki
Context7

Technical Evaluation

Architecture fit. The package targets a narrow, well-defined seam in Laravel Nova: the index-row click behaviour of a resource. Implementation is almost certainly a service provider registering a Nova asset (a small JS/CSS bundle) plus a static property or macro on Laravel\Nova\Resource that lets a resource declare its click handler. This is idiomatic for Nova extensions and does not touch application domain code, Eloquent models, or routing. Fit with a standard Laravel + Nova stack is therefore high in principle — the blast radius is a single UI interaction on one screen type.

Integration feasibility. Low effort, non-trivial friction. Two blockers dominate:

  1. The repository is archived, so there is no tagged release cadence, no compatibility declarations for current Nova majors (Nova 4/5 changed the resource asset and front-end toolchain substantially versus Nova 3), and no path to upstream fixes.
  2. Composer provenance is unverified. With 3 stars and 0 dependents, the package is effectively unpublished; installation likely requires a vcs repository entry pinned to a commit SHA rather than a stable, audited Packagist release.

Technical risk — high, and mostly non-technical in nature. The functional risk is small (a row-click handler is a few dozen lines of JS). The portfolio risk is not:

  • Superseded capability. Nova 4 introduced a first-party $clickAction property on resources (navigate, select, ignore, preview), which covers the majority of the stated use case. Adopting an archived third-party shim for behaviour the framework now ships is a net-negative trade.
  • Zero community validation. 3 stars / 0 dependents means no peer review, no issue history to mine for known breakage, and no signal that it works against any Nova version currently in support.
  • Abandoned-dependency exposure. An archived, unmaintained Composer package will appear in dependency audits and creates a standing exception in any supply-chain policy. MIT licensing mitigates the legal risk but not the maintenance one.
  • Version drift. Nova's front-end build chain (Laravel Mix → Vite across majors) changed; an archived asset bundle is a likely silent-breakage candidate on the next Nova upgrade.

Key questions.

  • Which Nova major is in production, and does the native $clickAction property already satisfy the requirement? If yes, the package is unnecessary.
  • What is the actual requirement — custom URL navigation, modal/detail-preview suppression, or per-row conditional routing? Native support covers some but not all of these.
  • Can we read and vendor the source (MIT permits it) rather than depend on the archived package?
  • Is there a security/compliance policy that blocks archived dependencies outright? If so, this is a decision, not an evaluation.
  • Who owns the fork if we adopt it, and what is the trigger for retiring it?

Integration Approach

Stack fit. Requires Laravel with Nova installed and a licence — this is a Nova-only package with no utility outside that context. Any Laravel app without Nova gets zero value. Confirm the PHP/Laravel/Nova version matrix by inspecting composer.json in the repo directly; the archived state means no ^ constraints will have been widened for current releases, and a hard nova version pin is likely.

Migration path. Recommended sequence, in preference order:

  1. Do nothing / use native. Verify against current Nova whether public static $clickAction (plus $clickActionModal or a custom fields() link on the first column) delivers the requirement. This resolves most cases at zero dependency cost.
  2. Vendor the logic. If the requirement is genuinely beyond native support, read the package source and reimplement the handler as a first-party Nova asset in the application repo (nova-components/ or a small resources/js extension). The code volume is small enough that the reimplementation cost is measured in hours, not days, and it removes the archived dependency entirely.
  3. Fork. If reimplementation is not viable, fork the MIT source into internal version control, add Nova-version guards, pin to our own tag, and treat it as internal code with an owner.

Direct composer require of the archived upstream is not recommended at any step.

Compatibility. Three axes to test explicitly: Nova major version (asset registration and Resource static-property resolution differ), the front-end build pipeline (Mix vs Vite — an old asset bundle may not survive an upgrade), and coexistence with other index-row customisations (link-to-detail defaults, inline editing, row selection). Because the package is archived, none of this will be validated by anyone but us.

Sequencing. Gate adoption behind the native-capability check. If a build is still warranted: reproduce the requirement in a spike branch against the current Nova version → confirm behaviour → decide vendor vs fork → only then wire into the application. Budget roughly 1–2 developer-days end to end, of which the majority is compatibility verification rather than integration.

Operational Impact

Maintenance. Effectively total ownership transfer. Archived means no upstream patches, no security advisories, no Nova-version compatibility work. Any breakage from a Nova or Laravel upgrade lands entirely on our team, and the fix will require reading unfamiliar (if small) source. This must be recorded as an owned exception, not a normal dependency.

Support. None. No maintainer response, no issue triage, no documentation updates. Internal engineers become the de facto maintainers, and knowledge will concentrate in whoever performs the initial integration — a bus-factor of one unless the work is documented at handoff.

Scaling. Negligible. The runtime footprint is a small client-side asset scoped to index views; no database, queue, or API surface is involved. The package will not be a performance or capacity constraint at any realistic scale. The scaling concern is organisational, not technical: the cost grows with every Nova major upgrade rather than with traffic.

Failure modes. Ranked by likelihood:

  • Silent UI regression on Nova upgrade — asset registers but the handler no longer binds; row clicks revert to default or stop working with no error surfaced. Highest likelihood, hardest to catch without a UI smoke test.
  • Asset registration conflict — a competing row-click or row-selection extension wins, producing inconsistent behaviour per resource.
  • Composer/CI friction — archived or VCS-pinned dependency trips audit tooling or composer update resolution.
  • Accessibility degradation — a JS-driven click target without keyboard/role handling makes index rows unreachable via keyboard. Worth checking explicitly, as this is a common failure in small Nova UI packages.
  • Total loss of upstream — the GitHub repo is archived (not deleted), so source availability is currently stable, but the MIT licence plus a local fork is the only durable insurance.

Ramp-up. Low technical ramp-up, meaningful governance ramp-up. A Laravel/Nova-fluent engineer can read the source and reproduce the behaviour in well under a day. The slower part is process: adding an archived dependency requires an exception, an owner, a retirement plan, and a documented rationale — overhead that is disproportionate to the ~9.47 opportunity score and the functional value on offer.

Recommendation. Do not adopt as a dependency. The package solves a real but narrow problem that current Nova releases largely solve first-party, and it does so from an archived, unvalidated source. Reimplement the behaviour natively or vendor the MIT-licensed logic into the application, capturing the requirement in a UI test so future Nova upgrades surface regressions loudly.

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.
mrnewport/laravel-plaid
mrnewport/laravel-repo
mrnewport/laravel-docsign
mrnewport/laravel-stow
mrnewport/laravel-flow
mrnewport/laravel-priceable
mrnewport/laravel-nestedterms
fredmeng/laravel-apidoc-generator
itstructure/laravel-multilingual-tools
pdustdar/elasticsearch
markupai/php-sdk
rlacerda83/lumem-microservice-shipment
uni-method/symfony-lib
tacticmedia/scim-server-bundle
neika-ai/symfony-bundle
mattleads/agent-publishing-bundle
glavweb/framework-bundle
glavweb/extra-bundle
glavweb/api-bundle
glavweb/admin-bundle