beyondcode/nova-filterable-cards
Nova Filterable Cards lets you add interactive, filterable cards to Laravel Nova dashboards. Define metrics and filters so users can quickly narrow results by date range or custom criteria, making dashboard insights more flexible. Simple to configure and ideal for dashboards that need more than stat...
filters query parameter and replays each filter's apply() against the card's metric query, plus a Vue control in the card header. That is enough to scope an in-house equivalent at roughly one to three sprints — without paying for discovery or UX design.Consider it when:
Look elsewhere when:
refreshWhenFiltersChange()), which largely duplicates this package's reason to exist. Verify this first — if confirmed, the package is obsolete.vcs Composer repository — treat that as an immediate supply-chain item, since deletion breaks builds.For executives: This is a small MIT-licensed add-on that lets each metric card on a Laravel admin dashboard carry its own filter — so a "Monthly Revenue" card can be scoped to a plan or region without rebuilding the whole page. The strategic value is not the code; it is the validated pattern. It confirms that filterable KPI cards are a low-cost, high-leverage lever for cutting ad-hoc data requests from ops and finance. The package itself is archived, unmaintained since 2018, has no downstream users, and targets a Nova version we are unlikely to be on — so I am not recommending it as a dependency. I am recommending we treat it as a reference design and fund a small, owned implementation, or confirm our current Nova version already covers the need, in which case we close the gap for near-zero cost.
For engineering: It is a thin Nova card abstraction plus a Vue 2 filter component: a PHP base class that reads the dashboard's filters parameter, decodes it, and applies each filter to the card's metric query, and a frontend control injected into the card header. There is no service-provider asset registration — you register your own cards as usual. The integration path is not composer require; 2018-era constraints (php ^7.1, laravel/framework 5.6|5.7, laravel/nova ^1.0) fail resolution on modern stacks. The right move is a one-to-two-day clean-room reimplementation against current Nova scaffolding, using the source as a behavioral reference. The real work is not the widget — it is defining the filter contract: which dimensions, how scoped by policy and tenant, how composed with Nova's native filters, and how date-range boundaries and timezones are handled. Note the scaling surface too: each card issues its own aggregate query and re-queries on every filter change, so confirm indexes on filtered timestamp columns and consider caching before rolling this out over large tables. If we do vendor instead of reimplement, mirror the code into our own VCS and pin supported Nova/PHP versions in the fork's README — do not depend on the archived upstream.
How can I help you explore Laravel packages today?