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

Filament Fathom Dashboard Widget Laravel Package

devlogx/filament-fathom-dashboard-widget

A Filament widget that brings Fathom analytics into your admin dashboard, showing key traffic stats and site metrics at a glance. Drop it into any panel to give your team quick visibility into visits, pageviews, and referrers without leaving the app.

View on GitHub
Deep Wiki
Context7

Technical Evaluation

Architecture fit devlogx/filament-fathom-dashboard-widget is a Filament panel widget that surfaces Fathom Analytics data inside the Laravel admin dashboard. Architecturally it is a presentation-layer plugin: it registers via a Laravel service provider, publishes configuration, and renders a Livewire/Filament widget view. It is read-only, requires no database migrations, no domain-model coupling, and no changes to existing application code. That is the ideal shape for an add-on of this kind — additive, removable, and isolated to the admin panel.

Integration feasibility Integration is a Composer install plus widget registration on the target panel, with credentials supplied via config/env (Fathom API token and site identifier). For a team already on Laravel + Filament this is a low-effort, hours-scale integration. The real feasibility question is not effort but the version matrix: Filament's widget API has changed across majors, and nothing in this release communicates supported Filament, Laravel, or PHP versions.

Technical risk

  • Release opacity (highest concern). The 1.0.0 release notes contain only an auto-generated changelog link with no content. There is no indication of API guarantees, breaking changes, upgrade notes, or what "1.0.0" actually commits to. Semver at 1.0.0 is a statement of intent, not evidence of stability.
  • Bus factor. A single-author namespace (devlogx) with no visible release history in this data set. Assume one maintainer.
  • Third-party API dependency. All functionality depends on Fathom's API — token scoping, rate limits, endpoint/version changes, and account-tier constraints are outside our control.
  • Authorization exposure. Analytics data is commercially sensitive. The widget renders inside an authenticated panel, but whether it enforces an authorization gate (rather than merely relying on panel access) is unknown. This must be verified, not assumed.
  • Synchronous fetch. If the widget calls Fathom on render rather than from cache, every dashboard load incurs external latency and consumes rate-limit budget.

Key questions

  1. Which Filament major versions, Laravel versions, and PHP versions are supported and tested in CI?
  2. Which Fathom API endpoints/version does it call, and is the token scope read-only?
  3. Is there caching, and is the TTL configurable? Is the fetch synchronous on render?
  4. Does the widget respect Laravel authorization (Gate/policy) or only panel access?
  5. Multi-site support — one widget per site, or a configured single site?
  6. License, test coverage, and static analysis status?
  7. What does 1.0.0 change relative to 0.x, and is there any deprecation of prior config keys?

Integration Approach

Stack fit Composer/Packagist distribution into an existing Laravel application with a Filament panel. Purely additive: no migrations, no schema, no queue infrastructure required (though a queue-backed cache warmer is desirable). Existing dashboards are unaffected except for the new widget's placement.

Migration path There is no prior assessment and no incumbent implementation assumed, so this is greenfield adoption rather than migration. If a bespoke Fathom integration already exists internally, run this package in parallel on a non-production panel and compare output before decommissioning anything. Pin an exact version in composer.json and commit the lockfile — do not float on ^1.0.

Compatibility Establish the supported matrix before writing code: confirm the package's Filament constraint resolves against our pinned Filament version, and confirm PHP compatibility. A failed Composer resolution here is a hard stop, not a workaround. Treat any Filament major upgrade as requiring a re-verification of this package.

Sequencing

  1. Spike (1–2 days). Install in a scratch branch or staging panel; confirm dependency resolution and that the widget renders against a real Fathom account.
  2. Credentials. Provision a dedicated, read-only Fathom API token per environment; store in the secret manager, never in committed .env files. Document rotation.
  3. Authorization. Add an explicit gate around widget visibility so analytics are restricted to roles that need them, independent of general panel access.
  4. Performance validation. Measure dashboard load with a cold cache and under concurrent admin usage; confirm caching behavior and rate-limit headroom.
  5. Production rollout behind a feature flag or restricted role, with a documented rollback (remove widget registration + composer remove).
  6. Runbook. Capture token rotation, failure behavior, and the upgrade procedure for future minor releases.

Operational Impact

Maintenance Small code surface, so ongoing maintenance is dominated by dependency drift, not by the package's own logic. Budget roughly 1–2 days per quarter for Filament/Laravel upgrades and re-verification. Recommended posture: pin the version, treat upgrades as deliberate changes, and be prepared to vendor/fork if the maintainer goes dormant — the scope is small enough that a fork is a viable fallback.

Support Community support only (GitHub issues); no vendor SLA, no security disclosure process evidenced. Escalation path is "we patch it ourselves." For an internal admin dashboard this is an acceptable risk; it would not be for a customer-facing surface.

Scaling Two ceilings: Fathom API rate limits and dashboard render time. Unbounded per-user synchronous fetches will degrade the admin panel as the number of dashboard viewers grows. Mitigate with server-side caching and, if usage is broad, a single scheduled fetch populating a shared cache so N admins cost one API call rather than N.

Failure modes

  • Expired or revoked token → silent empty widget, easily mistaken for "no traffic." Needs an explicit error state.
  • Fathom API outage or 429 → widget throws and can degrade the entire dashboard page. Must fail closed to a "data unavailable" placeholder.
  • Missing or malformed config → install-time or render-time exception; validate at boot.
  • Filament major upgrade → widget API breakage.
  • Account/tier change on the Fathom side → data silently disappears. Each of these should be verified and, where the package doesn't already handle it, wrapped defensively on our side.

Ramp-up Low. A Laravel developer familiar with Filament needs roughly half a day to install, configure, and validate. Developers without Filament experience will need orientation on panel providers, widgets, and Livewire rendering — add a day. The larger onboarding cost is operational, not technical: whoever owns the widget must own token rotation and know how to interpret an empty widget versus a broken one.

Recommendation Adopt for an internal admin dashboard, pinned and time-boxed as a pilot, contingent on resolving the compatibility matrix, confirming an authorization gate, and verifying graceful degradation. Do not adopt on the strength of the 1.0.0 label alone — the release carries no substantive notes, so the stability claim is unverified and should be treated as unproven until the spike confirms behavior under failure conditions.

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