webbingbrasil/filament-notification
A Filament plugin by WebbingBrasil for adding in-app notifications to Laravel admin panels, with database-backed alerts, a notification bell, and customizable toast messages for users.
Architecture fit
webbingbrasil/filament-notification is a Filament panel plugin that adds a persistent, database-backed notification feed (bell icon, dropdown, mark-as-read) to the Filament admin chrome. Architecturally it is a thin Laravel package: a service provider, a plugin class registered on the panel, a Livewire component for the feed, a migration for the notifications table, and published views/assets. It sits in the same layer as Filament's topbar render hooks, which is exactly the layer that changes most between Filament majors.
The fit is therefore conditional and narrow: it is appropriate only if you are (a) on the Filament major the package was built against at the time of archive, (b) on a PHP/Laravel version inside its composer.json constraints, and (c) willing to own the code. For any current Filament v3/v4 codebase, the honest architectural read is that the package's core value proposition — a database-backed notification feed in the admin panel — is now largely subsumed by Filament's native ->databaseNotifications() panel configuration. Adopting an archived plugin to duplicate a first-party capability is a net architectural negative.
Integration feasibility
Installation is nominal (composer require, register the plugin, run migrations, publish assets), but feasibility is gated by version constraints rather than effort. The real work is a compatibility spike: confirm the pinned Filament, Livewire, and Tailwind versions; confirm the published migration does not collide with Filament's own notifications table; confirm the Livewire component survives Livewire 3's lifecycle changes if you are past Livewire 2. With 17 stars and archived status, there is no evidence of testing against recent framework releases, and no upstream to ask.
Technical risk
Key questions
Stack fit Reasonable only for a Laravel/TALL-stack app on Filament with the matching major version, and only as a vendored fork. It is not a fit for greenfield Filament v3/v4 work, where the native panel feature is the correct default and carries zero ownership cost.
Migration path Treat this as a three-way decision, not a purchase:
Compatibility
Validate before any code is written: composer.json version constraints against the installed lockfile, the published migration against existing schema, the Tailwind/asset build against the current Vite pipeline, and the Livewire component against the installed Livewire major. Pin the fork's Filament requirement to a caret range you control, and add a smoke test that asserts the topbar renders and the unread count matches the database.
Sequencing
Maintenance The dominant cost is ownership transfer. An archived package converts a dependency into an internal asset: you inherit upgrade work at every Filament major, Tailwind/asset rebuilds, and PHP/Laravel deprecation cycles. Budget a modest but permanent line item — roughly a few days per framework upgrade — plus a security-watch obligation on the dependency tree that upstream no longer performs.
Support There is no upstream support channel and no expectation of fixes. Support becomes an internal runbook: who owns the fork, how to reproduce a broken feed, how to roll back the migration. Document the fork's divergence from the original early, while the context is fresh; that knowledge is otherwise concentrated in one engineer.
Scaling
The read path is the concern, not the write path. Unread counts and feed queries against a growing notifications table need composite indexing on (notifiable_type, notifiable_id, read_at) and a retention policy — Laravel's notifications:prune or an equivalent scheduled job. If the component polls rather than listens on a broadcast channel, topbar polling multiplies across concurrent admin sessions and becomes a measurable baseline load. Confirm the mechanism during the spike; if it polls, cap the interval and consider a lightweight broadcast.
Failure modes
Ramp-up Developer ramp-up is low — the codebase is small enough to read in an afternoon. Organizational ramp-up is the real cost: establishing the fork, the review cadence, the upgrade ritual, and the decision record explaining why an archived package is in the stack. That record is what prevents a future team from discovering this dependency cold and inheriting an unexplained risk.
How can I help you explore Laravel packages today?