matheusmarnt/scoutify
Scoutify adds a production-ready ⌘K global search modal to Laravel apps. Built with Livewire and powered by Scout, it queries multiple Eloquent models at once, groups results by type, auto-discovers Searchable models, and keeps recent search history in session.
globalSearchBuilder() scoping, ranking expectations), not on modal plumbing.HasGlobalSearchPreview with inline PDF/image/video rendering, pre-signed URLs where the disk supports them, and an opt-in scoutify:download event is a genuine lever: it can remove a preview subsystem from the backlog.pt_BR/en/es and NFD accent-insensitive matching (padrao finds and highlights Padrão), which supports launching search in Brazilian/LATAM markets without a dedicated localization workstream.Consider it when:
scoutify:searchable --dry-run codegen as an onboarding accelerator for a team new to Scout.Look elsewhere or proceed with caution when:
scoutify:searchable rewrites model files in place, and boot-time model discovery needs review against config-caching and deploy pipelines."ano" inside "Mariano") fail unless you override globalSearchBuilder(); the package gives you hooks, not solutions.To executives: "This is roughly a two-day integration that gives us the ⌘K search experience users already expect from Linear, Notion, and Slack — on top of search infrastructure we either already run or were going to adopt anyway. No new vendor, no new search bill, MIT-licensed, and removable in under a week if it disappoints. The value is avoided engineering cost and a faster roadmap, not a technology bet."
To engineering: "It's a thin, opinionated Livewire UI over Scout you configure yourself. The extension points are clean — GloballySearchable, HasGlobalSearchVisibility with a fluent rule builder, HasGlobalSearchPreview, and a per-model globalSearchBuilder() so our existing scopes and filters survive. Authorization is secure-by-default and fails closed. Known constraints: Meilisearch prefix matching, in-place model file edits from the artisan command, boot-time discovery, and a single maintainer with zero dependents — so we pin the version, vendor or fork if maintenance stalls, and keep our template usage behind our own components."
Risk framing for both: propose a bounded pilot on one internal or admin surface with explicit success criteria — time-to-first-result, keyboard-only usability, zero authorization regressions, and measured onboarding effort for a new model — plus a pre-agreed fallback (fork under MIT) if the package goes stale.
How can I help you explore Laravel packages today?