yaoko/nova-text-filter
A Laravel Nova filter that adds a text input to resource index screens, letting users narrow listings by typing a search term. Simple to register and configure per resource, it keeps filtering lightweight and works alongside Nova's built-in filters.
Architecture fit
where-style constraint on a resource or lens query. This is one of the smallest possible extension surfaces in the Nova ecosystem — Nova's own Laravel\Nova\Filters\Filter base class already supports arbitrary field types via fields(), so a text filter is achievable in roughly 20–40 lines of in-repo code with no third-party dependency.Integration feasibility
composer require, register the filter class in filters() on the target resource or lens, and (for custom Vue components) ensure Nova's asset compilation picks up the package's dist/ bundle via Nova::script()/service-provider boot.npm run dev/nova:publish step, and whether the apply() signature matches the Nova version in use (apply(Request $request, $query, $value) in Nova 4+).Technical risk
yaoko) that reads as a personal/agency namespace. No implied support path, no issue-triage history, no downstream bug surface to learn from.Key questions
composer.json, and does that match our installed Nova?f-wangbaoshi repo owner vs. yaoko vendor suggests a possible fork lineage)? If so, what is the true upstream and its maintenance status?LIKE %term%, case sensitivity, multi-column target? Undefined semantics here produce surprising admin UX.Stack fit
Migration path
TextFilter extends Filter with a single Text field, an apply() that constrains the relevant column(s), and a key()/name(). This is a small, testable, fully-owned artifact that inherits our Nova version pin and our code review. Cost is measured in hours, not sprints, and it eliminates the entire dependency-risk column above.composer require on a zero-dependent package into a production admin panel.Compatibility
composer.lock conflict with Nova's own dependency tree.Sequencing
composer.json constraints, license.apply().Maintenance
Support
Scaling
LIKE %term% on a large table will do a full scan and can degrade the admin index for high-row-count resources. Specify the matching strategy and, where needed, constrain to indexed columns or require a minimum term length.Failure modes
apply() signature mismatch with the Nova version — filter renders, returns unfiltered results, and no one notices until an admin acts on the wrong dataset. Mitigate with a test asserting the generated SQL/bindings.apply().f-wangbaoshi/nova-text-filter is itself a fork, license and provenance obligations may be unclear.Ramp-up
How can I help you explore Laravel packages today?