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

Global Search Modal Laravel Package

charrafimed/global-search-modal

Add a polished global search modal to your Filament panel. Search resources and pages instantly with a keyboard shortcut, customizable results, and a fast command-palette experience that feels native to Laravel and Filament.

Deep Wiki
Context7

Technical Evaluation

Architecture fit. The package is a presentation-layer plugin for Filament panels: it swaps the default global-search slide-over for a command-palette-style modal (typically triggered by a keyboard shortcut). It introduces no models, migrations, queues, or external services, so it sits entirely at the edge of the architecture. That is the ideal shape for a third-party dependency — the blast radius of a failure is a UI regression, not data loss or an outage. Fit is strong only if the product already runs Filament panels; against a hand-rolled Laravel/Blade admin, there is no integration point and the package is irrelevant.

Integration feasibility. Mechanically trivial: composer require, then register the plugin in the relevant PanelProvider. The real feasibility question is not installation but contract stability. Filament's global search is a Livewire component with internal events and view hooks; plugins that decorate it depend on internals that Filament does not guarantee across minor releases. Confirm which hooks the package actually uses — PanelsRenderHook and published views are reasonably stable, direct Livewire component overrides are not — and whether it targets Filament v3, v4, or both. The package metadata is thin (repository unknown, low composite score), so treat the "last release 2026-09-14" date and absent repo link as unverified until confirmed on Packagist.

Technical risk.

  • Version coupling (high). Filament majors ship breaking changes to panel internals; a single-maintainer package with 173 stars may lag by weeks or months.
  • Behavioural inheritance (medium). The modal must preserve what Filament already does correctly: per-resource canGloballySearch(), canViewAny() authorization, tenant scoping, and result-limit throttling. If the plugin re-implements the search pipeline rather than wrapping it, it can silently leak cross-tenant results — the single most serious risk here.
  • Accessibility regression (medium). Hand-built Alpine modals commonly miss focus trapping, aria-modal, ESC handling, and screen-reader announcements that Filament's native component provides. This is a compliance issue in public-sector or enterprise contexts.
  • Query amplification (low–medium). Type-ahead across many resources on every keystroke; verify debounce and lazy loading are present.
  • Supply chain (low). Small dependency surface, but no visible security policy or release cadence.

Key questions.

  1. Which Filament versions are supported, and is there a stated compatibility matrix?
  2. Does the modal delegate to Filament's existing search pipeline, or reimplement it? Does it honour authorization and tenancy scoping?
  3. What is the license, and is the repo publicly auditable?
  4. Does it degrade gracefully if the hook is unavailable, or fail loudly?
  5. Who maintains it, and what is the response time on issues?

Integration Approach

Stack fit. Valid for Laravel 10/11+ on PHP 8.1+ running Filament v3/v4 panels. Confirm the Composer constraints resolve against the pinned Filament version in composer.lock before anything else — a constraint mismatch ends the evaluation cheaply.

Migration path. Effectively a configuration toggle, which makes this a low-ceremony adoption. Register the plugin in the panel provider behind an environment or config flag so the modal can be disabled per environment without a redeploy. No data migration, no backfill, no dual-write. Rollback is a one-line removal plus composer remove; keep that path tested.

Compatibility. Three surfaces to verify: (a) Filament version pin; (b) coexistence with any custom global search results, custom GlobalSearchProviders, or existing Cmd+K/Ctrl+K bindings in the app's JS; (c) the asset pipeline — if the panel uses a custom Vite theme, confirm the plugin's views/JS don't collide with the compiled bundle, and that php artisan filament:assets publishes cleanly.

Sequencing.

  1. Spike in a throwaway branch: install, register, confirm the modal renders and search returns the same result set as the default UI — diff the two outputs for a seeded dataset.
  2. Authorization and tenancy test: run as a scoped tenant user and a low-privilege role; assert no cross-tenant or unauthorised results appear.
  3. Accessibility pass: keyboard-only navigation, ESC, focus return, screen-reader smoke test.
  4. Performance check against production-scale data for the largest searchable resource.
  5. Internal dark launch (staff only) for one to two weeks, then general rollout with the flag documented as a kill switch.

Operational Impact

Maintenance. No runtime infrastructure, no scheduled jobs, no storage. Maintenance cost is concentrated in upgrade windows: budget a compatibility check on every Filament minor and a real integration task on every Filament major. Assign an owner; do not let this become an orphaned dependency. Because the maintainer base is one person and the project is small, assume you may need to fork and vendor the package — verify the license permits that before adopting, and confirm the code is small enough (likely a handful of Blade/Livewire files) that forking is a day's work, not a week's.

Support. The user-visible change is a new search interaction, which generates "where did search go?" tickets unless the affordance (search field in the topbar plus the shortcut hint) is preserved and discoverable. Pre-empt with a short release note and a one-line pointer in internal docs.

Scaling. Client-side and roughly constant-cost; it adds no server load beyond the search queries already issued. The scaling risk is indirect — if the modal encourages heavier type-ahead use, query volume against large searchable tables rises. Confirm debounce and per-resource result caps, and watch slow-query logs for the first month.

Failure modes.

  • Modal fails to render after a Filament upgrade (broken hook or view namespace) — symptom is a dead shortcut or an empty overlay; kill switch resolves.
  • Search results diverge from native behaviour (missing resource types, broken tenancy scoping) — highest-severity mode, caught only by explicit testing.
  • Keyboard shortcut collision with browser or app-level bindings.
  • Asset build conflict in panels using a custom Vite theme.
  • Silent no-op if plugin registration is added to the wrong panel provider.

Ramp-up. Low. A developer already fluent in Filament needs roughly half a day to install, verify behaviour parity, and run the authorization and accessibility checks; add a day if a custom theme build is involved. No new mental model is required — the package changes appearance, not architecture — so onboarding cost is essentially the cost of reading its README once.

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.
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
pnscripts/filament-broadquill-lite
pnscripts/laravel-sentfold-lite
vleap/mx-sdk-laravel-internal
twidpay/utils
htetmyathlaing/scout-elasticsearch-driver
artisan-toolbox/front-awesome
ls/client-assistant
users-au/laravel-client
cgv/localized-resource