jeremykenedy/filament-spotlight-2
A Filament plugin that adds a Spotlight-style command palette for quickly searching and navigating your admin panel.
Package context. jeremykenedy/filament-spotlight-2 is a Filament v2 admin-panel plugin that adds a Spotlight-style global search/command palette (Livewire component + Blade view + publishable assets). It is a UI convenience layer over existing Eloquent resources — no schema changes, no separate datastore, no background workers.
What v2.0.1 actually contains. Every entry in the changelog is a Dependabot bump of JavaScript build-time dependencies (webpack, postcss, @babel/traverse, axios, loader-utils, json5, browserify-sign, ip, async). There are no PHP source changes, no config changes, no new features, no deprecations, and no migrations. The PRs are dated across late-2023/early-2024, so this release is a backlog-clearing of npm audit findings rather than a functional release.
Architecture fit. Good, and deliberately shallow. The plugin auto-discovers a service provider, registers via the panel's plugin API, and resolves results against Filament resources you already expose. It does not own domain logic, so removing it later is a composer remove plus one line in the PanelProvider.
Integration feasibility. High. Runtime behavior for consumers is identical to v2.0.0. The practical effect of this release is on supply-chain posture: the patched packages carry known CVEs (prototype pollution in json5/loader-utils, SSRF in ip, and the @babel/traverse and browserify-sign advisories). Because these are devDependencies compiled into the shipped asset bundle, an application that consumes the prebuilt dist assets is not exposed to the vulnerable code paths — but SCA scanners that traverse vendor/ or the package's node_modules will still flag them.
Technical risk.
^2.0 has a finite horizon; the real decision is not v2.0.0 vs v2.0.1 but whether we continue on Filament 2 at all.Key questions.
canViewAny() per resource, or does it surface records a user cannot otherwise reach?Stack fit. Laravel (9/10 era) + Filament 2.x + Livewire 2 + Alpine/Tailwind, PHP 8.x. Confirm via composer why-not jeremykenedy/filament-spotlight-2 ^2.0 before committing. If the estate has already moved to Filament 3/4, do not attempt to bridge — evaluate the maintained successor package instead.
Migration path.
composer require jeremykenedy/filament-spotlight-2:^2.0, register the plugin in the target PanelProvider, publish config and assets, then verify searchable-resource discovery in a non-production panel.composer update, rebuild caches, smoke-test the palette. Treat as a patch in the normal dependency cadence; it does not need its own change window.Compatibility. Two surfaces to check: the Composer constraint against our Filament minor, and the shipped asset bundle against our published-asset version. Filament caches published assets aggressively — run php artisan filament:assets (or the v2 equivalent) and php artisan optimize:clear after upgrading, or you will silently serve the old bundle and conclude the release "did nothing."
Sequencing.
composer.lock.Maintenance. Low touch. This release is dependency housekeeping with zero application-facing surface change; it should be absorbed in a routine sprint, not a planned upgrade. The ongoing cost is not patching the plugin but periodically re-validating it against Filament releases.
Support. Single-maintainer open-source with no SLA and no vendor escalation path. Mitigating factor: the blast radius is a search modal. If upstream goes quiet, we can pin, fork, or delete the plugin with an afternoon's work — it holds no data and no business logic.
Scaling. The palette issues a server round-trip per keystroke unless debounced. On large resource sets that is a real query-cost line item: ensure debounce + result caps are configured, and watch for N+1s when global search fans out across many resources. It is an admin-panel feature, so absolute volume is bounded by staff concurrency — not a capacity-planning concern, but a panel-latency one.
Failure modes.
Ramp-up. Hours for a competent Laravel/Filament developer to install, register, and configure. The learning cost is concentrated in permissions/config review and asset publishing, not in the package's code. Document the install steps and the asset-rebuild command in the team runbook so the next person doesn't rediscover the cache trap.
How can I help you explore Laravel packages today?