blemli/websearch-for-filament
blemli/websearch-for-filament brings web search into Filament admin panels. It provides a ready-to-use interface for running web queries and reviewing results without leaving your Laravel app, making it easy to add search-powered tools to dashboards and internal utilities. Simple installation and co...
Package profile (inferred): A Laravel package distributed via Composer that registers as a Filament plugin (the filament-hidden banner and plugin-directory slogan indicate a Filament plugin listing). The presence of an uninstaller command that can --drop-tables and --remove-composer is the single most informative signal in this release: the package ships database migrations (it creates its own tables) and, at install time, writes to the host application's composer.json. That is a materially more invasive footprint than a typical view/helper package.
Architecture fit: Conventional Laravel package shape — service provider auto-discovery, publishable config/migrations, an Artisan command surface. This fits a standard Laravel app cleanly and fits a Filament admin panel as a plugin. Fit is good if the host app is already on the same Filament major version; Filament plugins are tightly coupled to the Filament major they were built against, and a v0.1.x package is very unlikely to span both.
Integration feasibility: Install path appears to be composer require → publish assets/migrations → php artisan migrate. Low ceremony. However, the existence of --remove-composer implies a companion install step that mutates composer.json (likely registering the plugin/provider or adding a repository entry). Any tooling that edits composer.json outside of composer require/remove is a review item, not a blocker — it must be idempotent and must not desync composer.json from composer.lock.
Technical risk:
--drop-tables is irreversible data loss by design. The release notes claim "safe defaults under --no-interaction," which is the right instinct, but this must be verified by reading the command source — the failure mode is a CI or provisioning script running the uninstaller non-interactively and silently dropping tables.--remove-composer is the highest-blast-radius flag in the release. A partial or interrupted edit can leave an unparseable composer.json, which blocks all subsequent Composer operations and is painful to recover in a deployed environment.Key questions for the maintainer:
composer.json constraints for php, laravel/framework, and filament/filament? Is Filament v4 supported, or v3 only?--force? What is the exact behavior of --drop-tables under --no-interaction?--remove-composer write via composer remove (lockfile-safe) or via direct JSON string manipulation?Stack fit: Targets a standard Laravel application with a Filament admin panel. Best suited to internal/back-office tooling where a Filament plugin is a natural fit and where the team already controls the Filament version. Poor fit for multi-tenant apps unless the migration story for per-tenant table creation is documented — nothing in the release notes addresses this.
Migration path: Greenfield adoption is straightforward (require, publish, migrate). Brownfield adoption carries the usual plugin cost: namespace registration in the panel provider, published config to review and pin, and a migration that must be sequenced against existing deployments. Because the package mutates composer.json, adopt it in a branch and diff composer.json/composer.lock before merging — that diff is the integration review.
Compatibility: Unverified. Do not assume cross-version support at v0.1.x. Pin the exact version ("x/y": "0.1.1" rather than ^0.1) and pin the Filament major alongside it. Validate on the oldest and newest Laravel/PHP combination the team supports before committing.
Sequencing:
--no-interaction cannot drop tables.composer.json diff, run migrations, confirm the Filament plugin renders.composer install still resolves afterward.Maintenance: Pre-1.0 packages impose a real upgrade tax — budget for reading the diff on every release, not just semver-breaking ones. The v0.1.1 notes are dominated by presentation work (directory banner, light-theme asset, slogan), which is a reasonable signal that the project is optimising for discoverability rather than API stability. Expect churn in the command surface and config keys.
Support: Single-maintainer risk is unassessed but likely given the version number and the plugin-directory marketing push. No stated SLA, no LTS branch, no security policy. Mitigation: vendor the package or fork it if the Filament integration becomes load-bearing, and keep the fork path cheap by limiting how deeply the package is wired into the panel provider.
Scaling: Table footprint is unknown. Watch migration count and any per-request queries the Filament resource issues; Filament admin resources are typically low-concurrency (staff traffic), so scaling pressure is more likely from table growth than from request volume. Confirm whether the package's tables are indexed for the queries its resources run.
Failure modes:
--no-interaction --drop-tables in a teardown script silently destroying data. Highest severity; mitigate by never invoking the uninstaller from CI and by requiring an explicit human-run step.composer.json. Interrupted --remove-composer leaves the app unable to install dependencies. Mitigate with VCS-tracked composer.json and a tested restore procedure.migrations table referencing a package no longer installed; a later migrate:fresh or rollback can behave unexpectedly.Ramp-up: Low for a Laravel developer — the package follows framework conventions and Filament plugin registration is well-documented. The real ramp-up cost is operational, not developer: whoever owns deploys and teardown must understand the uninstaller's destructive surface before it exists in an environment. Write a short runbook covering install, upgrade, and uninstall (with the destructive flags documented as manual-only) as part of the adoption ticket.
Overall recommendation: Conditionally viable for internal Filament tooling, pending answers on Filament/Laravel version constraints, table ownership, and the safety semantics of --drop-tables and --remove-composer under non-interactive execution. Not recommended for production until the uninstaller has been exercised end-to-end in a disposable environment and the package is version-pinned.
How can I help you explore Laravel packages today?