jeffersongoncalves/filament-check-whois-widget
A Filament widget that runs WHOIS lookups for domains and displays registration details, expiry dates, and registrar info right in your admin panel. Add fast domain checks to any dashboard without leaving Filament.
Architecture fit. filament-check-whois-widget is a Filament panel plugin that surfaces WHOIS/domain-registration data as a dashboard widget. Architecturally it is a thin, additive layer: a service provider registering a widget class, a Blade view, and a WHOIS client wrapper. It does not touch routing, auth, or persistence, so it slots into an existing Filament panel without altering application structure. The 1.1.0 release does not change that shape — it is a locale-expansion release plus housekeeping.
What 1.1.0 actually delivers. The substantive change is PR #46: 16 new locale files (ar, az, de, fa, fr, hi, it, ja, nl, pl, pt, ru, tr, uk, uz, zh_CN). Everything else is non-functional: Renovate/Dependabot PRs (collision v8, testbench v10, Pest v3, PHPStan major), CI workflow standardisation, FUNDING/README churn, and the subsequent deletion of the Renovate config. From a capability standpoint this is a localisation and hygiene release, not a feature release. No new APIs, no config surface changes, no deprecations.
Integration feasibility. High and low-effort. Composer-install, register the plugin on the target panel, optionally publish config/views. The dependency bumps to the dev toolchain (Pest v3, testbench v10, PHPStan) affect maintainer CI only, not the runtime footprint of a consuming app. The one caveat: orchestra/testbench v10 and nunomaduro/collision v8 imply a Laravel 12-era matrix, so confirm the package's declared illuminate/support and filament/filament constraints against your app's pinned versions rather than inferring from changelog text.
Technical risk. Low-to-moderate, concentrated in two places. First, the WHOIS dependency itself: WHOIS is an unauthenticated, rate-limited, plaintext TCP/43 protocol with no SLA and increasingly redacted output under GDPR/ICANN policy. The widget's usefulness is bounded by upstream registrar/RIR behaviour, not by this package. Second, maintenance signal: the release is overwhelmingly bot-driven, the maintainer removed the Renovate config (#18) and then largely self-merged CI/docs PRs (#31, #36, #37, #43). That reads as a single-maintainer project running on automated upkeep. Acceptable for a cosmetic dashboard widget; not acceptable as a load-bearing dependency.
Key questions.
loadTranslationsFrom, or does each need explicit publishing? Determines whether the 16 locales are available without a vendor:publish.ar, fa, uz, az locales RTL-complete (direction handling in the Blade view), or string-only translations that will render left-aligned in an RTL panel?Stack fit. Laravel + Filament panels, PHP 8.2+ by inference from the toolchain. It is a presentation-layer plugin: it assumes you already have a Filament panel, a dashboard, and widget registration working. There is no fit for non-Filament Laravel apps without writing your own view, and no fit at all for non-Laravel PHP.
Migration path. Treat as a patch-to-minor bump from 1.0.2. Expected steps: composer update jeffersongoncalves/filament-check-whois-widget, clear cached config/views, and — if locale files are publishable rather than auto-loaded — re-run vendor:publish --tag=filament-check-whois-widget-translations. Because there are no documented breaking changes, a straightforward minor-version bump is the right call; pin to ^1.1 rather than ^1.0 if you want the translations, and pin exactly if your panel is customer-facing and you want to control when locale strings change.
Compatibility. Verify three constraints before merging: Filament major (v3 vs v4), Laravel major, and PHP minor. The dependency churn in this release raises the probability that 1.1.0 requires a newer Filament than 1.0.2 did — inspect composer.json rather than trusting the "chore" labels. Also check whether your app's translation fallback (config('app.fallback_locale')) is set, since 16 new locales with partial coverage can produce mixed-language widget chrome.
Sequencing.
composer.json constraints on the tagged 1.1.0 and diff against 1.0.2.ar or fa) and a CJK locale (ja, zh_CN) to catch layout and font issues.Maintenance. Low code footprint, but the maintenance burden is externalised: WHOIS servers change rate-limit and redaction policies without notice, and the package's own upkeep is bot-driven. Budget for periodic composer outdated review and be prepared to fork — the codebase is small enough that forking is realistic if the maintainer goes quiet. The deletion of renovate.json (#18) after the bot PRs landed is a mild yellow flag on dependency-hygiene continuity; Dependabot remains configured (#42), so automated updates presumably continue.
Support. Single maintainer, community-contributed i18n, GitHub-issues-only support, no commercial backing. Sponsor links (Buy Me a Coffee) are the funding model. Do not place this on a path that requires vendor SLAs. Internal ownership should sit with whoever owns the Filament panel — this is not a platform-team dependency.
Scaling. Not a scaling concern in the usual sense — one widget per dashboard render. The scaling risk is entirely in outbound WHOIS traffic: uncached lookups on every page load will get you rate-limited or null-routed by RIRs and registrars, and will add visible latency to the dashboard. Confirm the package caches, or wrap the widget in your own cache. Horizontal app scaling multiplies the outbound lookup rate linearly, so cache is mandatory beyond a couple of replicas.
Failure modes.
ar/fa panels.Ramp-up. Minimal — an afternoon for a developer familiar with Filament. Work is in verification, not implementation: confirm locale auto-discovery, test RTL/CJK rendering, and validate the WHOIS path under cache. The new-contributor credit to @Elvin-Qulizade (first contribution in a sibling package) is a positive signal of a maintainer actively soliciting cross-plugin contributions, which modestly improves the long-term support outlook despite the single-maintainer concentration.
How can I help you explore Laravel packages today?