clevyr/nova-action-button
A Laravel Nova package that adds customizable action buttons to your resources, letting you trigger actions directly from index and detail views with minimal setup. Quickly wire buttons to routes, actions, or custom callbacks for smoother admin workflows.
Architecture fit
clevyr/nova-action-button is a Laravel Nova extension, not a general Laravel package — its value is entirely contingent on Nova being part of the admin surface. It sits in the presentation layer of Nova (Vue components + a small PHP service provider) and lets teams render Nova actions as standalone buttons on index/detail/toolbar surfaces rather than only inside the actions dropdown. Architecturally this is low-coupling: it does not touch domain code, queues, or persistence. It is a UI ergonomics layer over Nova's existing action pipeline, so it inherits Nova's authorization, validation, and lifecycle semantics rather than reimplementing them.
Integration feasibility Composer-only install, no infrastructure change, no data model change, no migration. Effort is dominated by Nova version alignment and by rewriting whichever custom Vue/Blade action menus we've hand-rolled. v2.0.2 is a patch on the v2 line, so anything already on v2.x needs a lockfile bump and a smoke test, nothing more.
Technical risk
Low and well-bounded. The v2.0.2 change is a single-line behavioral fix: withoutConfirmation() on an action is now respected, so actions the developer marked as non-destructive no longer pop a confirmation modal. Two risk notes:
withoutConfirmation() and confirm that is genuinely desired.withConfirmation path is untouched). One test on a destructive action covers this.Key questions
withoutConfirmation() in a flow where a second click was an intended safeguard? If yes, add explicit guards before upgrading.confirmation text/attributes, or does it impose its own copy? Affects UX consistency and localization.Stack fit Fits cleanly into a standard Laravel + Nova stack. No new runtime services, no node build step for the host app beyond what Nova already requires. The package should be treated as a UI dependency of the admin panel only — it must not leak into public-facing routes or into any non-Nova controller.
Migration path
clevyr/nova-action-button to a v2.x constraint in composer.json (caret on 2.0.2, not a floating dev-*).Compatibility
The 2.0.1 → 2.0.2 step is patch-level and semver-safe: no config keys renamed, no published assets invalidated, no migration. Confirm the package's Nova constraint against our Nova minor before bumping; if we are on v2.0.1 today this is a trivial composer update clevyr/nova-action-button.
Sequencing
composer update and the Nova asset build.withoutConfirmation() action, and an action with a redirect/close behavior.withoutConfirmation() usages and add explicit pre-checks where the removed modal was load-bearing.Maintenance Near-zero ongoing maintenance from our side; the cost is the dependency itself. Pin the version, watch the upstream repo for Nova major bumps (those will be v3 of the package, and will be the real breaking event). Keep a one-page internal note on which resources use inline action buttons so a future upgrade has a blast-radius map.
Support Support burden is developer-facing only — end users see buttons that either work or don't. Because the failure surface is confined to Nova pages, rollback is a one-line composer revert plus asset rebuild. No on-call implication, no data-recovery scenario.
Scaling Irrelevant at the infrastructure level — this renders admin UI for a small internal user population. The only scaling concern is action volume: if a resource exposes many inline actions, the index view gets noisy for operators. Govern by convention (primary action inline, everything else in the dropdown) rather than by tooling.
Failure modes
withoutConfirmation() usage; prefer leaving confirmation on unless the action is truly reversible.Ramp-up
Low. A Laravel developer familiar with Nova can adopt this in under a day; the learning curve is the package's component API (button placement, confirmation options, redirect handling), not Laravel or Vue. Document one canonical example per surface (index row action, detail toolbar, page header) and the team can copy the pattern. Allocate roughly half a day of TPM time to the withoutConfirmation() audit and the smoke-test checklist — that is the only part of this release that carries actual behavioral consequence.
How can I help you explore Laravel packages today?