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 Pill Filter Laravel Package

eolica/nova-pill-filter

Nova Pill Filter adds a pill-style filter to Laravel Nova resource indexes, letting users toggle predefined options with a single click instead of opening a dropdown. Lightweight and quick to register in your Nova resource.

View on GitHub
Deep Wiki
Context7

Technical Evaluation

Architecture fit. The package occupies a narrow, well-defined extension point in Laravel Nova: a custom filter that renders as clickable pills instead of Nova’s default dropdown. Architecturally this is low-coupling, UI-only, and has no database schema impact, no background jobs, and no service integrations. For a TPM, that means the blast radius is small and the pattern is easy to reason about. The value is not the package as a dependency but the reference implementation of a Nova filter view — and because it is MIT-licensed, the realistic leverage path is to fork or reimplement, not to consume it as-is.

Integration feasibility. Moderate for a spike, low for production adoption without a fork. The last release was October 2020, which places it in the Nova 2/3, Vue 2, PHP 7.x/8.0 era. Nova 4+ moved to Vue 3 and a materially different asset and filter-rendering pipeline, so the shipped front-end is likely incompatible with a current Nova install even if the PHP filter class still composes. Feasibility hinges on inspecting composer.json for the Nova constraint, whether compiled assets are committed or built via npm, and whether the filter relies on Nova internals that have since changed.

Technical risk. High, concentrated in abandonment rather than runtime behavior. The repository is archived, has 1 star, 0 dependents, and no upstream maintainer. There is no security exposure of consequence in a UI-only filter, but there is dependency rot (Vue 2 is end-of-life), no test signal, and no upgrade path. The most dangerous failure is not a crash: it is a filter that silently renders but does not apply, causing users to believe they are viewing a filtered dataset when they are seeing all records.

Key questions.

  • Which Nova major version is targeted, and what is the declared Composer constraint?
  • Does the package ship compiled assets, or require an npm build against Nova’s current toolchain?
  • Does the filter implement Nova’s standard apply(Request, Builder, $value) contract, and is that contract stable in our Nova version?
  • Is multi-select, query-string persistence, or default-value behavior supported, and is it tested?
  • Who will own the fork if we adopt it, and what is the acceptable window before Nova’s next major upgrade?

Integration Approach

Stack fit. Laravel + Nova with a Vue-based custom filter view. Fits cleanly if we are on Nova 3 or earlier; requires a port if we are on Nova 4/5. The PHP side is likely a small Filter subclass and a service provider that registers a view or asset; the front-end is the part that carries version risk.

Migration path. Treat the package as a source reference, not a long-term Composer dependency. Preferred path: vendor the filter into the application (for example under nova-components/ or app/Nova/Filters) with MIT attribution, or reimplement the same UX as a first-party custom filter using our current Nova version’s conventions. If we must install it initially, pin the exact version and isolate it to a single resource so removal is trivial.

Compatibility. Validate against the actual Nova version before any estimate is committed. Check the Composer constraint, whether vendor/ assets are published, and whether the filter view uses Vue 2 syntax or Nova 3-era mixins. Assume the PHP filter class is portable and the Vue component is not. Budget for rewriting the view against Nova’s current asset pipeline and testing the filter’s applied-query behavior, not just its rendering.

Sequencing.

  1. Timeboxed spike in a non-production environment on the target Nova version; confirm install, render, and that the filter actually constrains the query.
  2. Inspect package source and Composer constraints; record exact incompatibilities.
  3. Decide fork vs. reimplement; fork is usually cheaper if the UX is acceptable, reimplementation is cleaner if Nova 4+ is in play.
  4. Port build tooling and add a minimal test that asserts the applied query for a known filter value.
  5. Pilot on one low-traffic Nova resource; verify empty-state, multi-value, and “clear filter” behavior.
  6. Document ownership and roll back to Nova’s native dropdown filter if the pilot exposes ambiguity in filtering.

Operational Impact

Maintenance. High-touch if forked and kept current; frozen and fragile if consumed as-is. The ongoing cost is small in absolute terms — a single filter view and a small PHP class — but it is recurring and must be assigned. Without an owner, the component will quietly drift out of compatibility at the next Nova upgrade.

Support. No upstream support. The repository is archived, so issues and pull requests will not be addressed. MIT licensing permits a fork, which is the only durable support model. Internal documentation should capture the Nova version, the fork point, and the attribution notice.

Scaling. Runtime cost is negligible: the filter is UI-only and does not add queries beyond whatever the filter’s apply method produces. The scaling concern is query performance, not package performance. If pill values map to unindexed columns or large whereIn sets, filtering can become slow on large Nova resources; that is an application concern to validate during the pilot.

Failure modes.

  • Nova upgrade breaks the Vue component; the filter may render incorrectly or disappear without a hard error.
  • Published assets 404 after a deploy, leaving a blank or unstyled filter.
  • Filter value mismatch causes the query to be ignored, silently showing all records — the highest-severity failure because it misleads operators.
  • No test coverage means regressions are discovered by users, not CI.
  • Dependency rot in the front-end build chain increases the cost of any future port.

Ramp-up. Low for a Laravel developer familiar with Nova custom filters: the PHP side is a day or less to understand. The front-end port to a current Nova/Vue 3 pipeline is the real effort — roughly one to two weeks including testing, depending on how much of the original view can be reused. Recommend adopting only if the pill UX is a confirmed product requirement; otherwise use Nova’s native filter and avoid the ownership burden.

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.
shitoudev/permissionmanager
johannesclimacus/laravel-tui
hocvt/seotools
vitalybaev/sypexgeo
amphibee/themosis-ignition
gito-me/fast-excel
frankyso/laravel-ipaymu
geolize-studio/laravel-chile
boomerangui/chat
jinas/dhivatar
store-doc/laravel-storage-driver
plus-it/laravel-translation-manager
diephp/perhaps
diephp/telegraph
osmaviation/spreadsheet
microsoft/fluentui-system-icons
mmccook/php-json-canonicalization-scheme
middlewares/firewall
qubiqx/montapacking
nyoncode/laravel-package-console