- What is akki-io/laravel-nova-search and what problem does it solve?
- It is a Laravel Nova package that provides a trait extending the search behaviour of a Nova resource, making global search more flexible across your admin panel. Instead of writing custom search plumbing for each resource, you apply the trait and let it hook into Nova's existing search pipeline. It is aimed at admins navigating large datasets who need to find records quickly across resources.
- How do I install laravel-nova-search with Composer?
- Install it with composer require akki-io/laravel-nova-search, since it is distributed as a normal Composer package. Laravel Nova itself must already be installed and configured, as this package extends Nova rather than replacing it. Use the ^2.0 constraint if you are on Nova 5, or stay on the 1.x line if you are still running Nova 4.
- Which Laravel Nova versions does this package support?
- The v2.0.0 release implements applySearch typings aligned with Nova 5, which strongly implies it targets Nova 5 only. Teams on Nova 4 should assume they must remain on the 1.x line until they upgrade Nova. Expect a hard fork in the version matrix, so pin per application rather than standardising on a single package version across apps on different Nova releases.
- How do I use the trait in a Nova resource?
- You add the package's trait to your Nova resource class, which lets it participate in Nova's search behaviour without introducing new infrastructure. Any local subclasses or resources that override searchable, searchableColumns, or search execution methods are the blast radius you should inventory first. Check the repository README for the exact trait name and method signatures before rolling it out.
- Does laravel-nova-search require database migrations or configuration?
- No. The package is a thin extension to Nova's search pipeline and does not add migrations, queues, storage, or external services. It also has no front-end build impact, so adoption is essentially just a Composer dependency plus the trait on your resources. That low coupling also makes it easy to remove if you decide to revert.
- Is version 2.0.0 a breaking change compared to 1.x?
- Treat it as breaking until you verify otherwise. The release notes describe an applySearch typing change for Nova 5, but the major version bump means the changelog alone does not tell you whether runtime behaviour changed. Because it ships alongside a Nova major upgrade, plan the Nova 5 move and the package bump as sequenced steps rather than one unreviewed change.
- Will this package affect my application's front-end performance?
- It has no runtime presence in customer-facing request paths, because it sits entirely inside the Nova admin panel boundary. Its only effect is on how Nova resources expose and execute search queries in the admin UI. The practical performance consideration is query cost on large tables, so regression-test global search and per-resource search against production-like data volume.
- What Laravel and PHP versions do I need for this package?
- It assumes the stack supported by Laravel Nova 5, which is roughly Laravel 10 through 12, plus PHP 8.1 or newer. There are no additional runtime dependencies beyond Nova itself. Always confirm the exact laravel/nova, illuminate/*, and PHP constraints in the package's composer.json before upgrading.
- Is laravel-nova-search safe to use in production?
- It is low-risk architecturally: no new infrastructure, no data backfill, and no coordination window required for deployment. The main risk is a signature mismatch, which typically surfaces as a fatal error at boot or resource resolution rather than subtly wrong results, and that may not be covered by your CI. Apply the applySearch signature to any local overrides and regression-test saved or filtered search views in staging before releasing.
- Is the package actively maintained, and what are the alternatives?
- It is a single-maintainer community package with a narrow feature surface, so long-term availability is not guaranteed and the bus factor is high. If you need a supported path, Nova's built-in searchable columns and custom resource search methods are the default alternatives, or you can write a small trait in-house. Because the package is easy to remove, many teams adopt it with a pinned version constraint and a plan to replace it if maintenance stalls.