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 Notifications Tabs Laravel Package

zvizvi/filament-notifications-tabs

Adds Unread and All tabs with an unread-count badge to the Filament database notifications modal, plus per-notification delete and read/unread toggle actions. Configurable default tab and optional delete confirmation. For Filament v5 panels.

View on GitHub
Deep Wiki
Context7

Technical Evaluation

Architecture fit

  • This is a presentation-layer plugin, not an architectural component. It does not touch notification storage, queuing, delivery, or the notifications table schema — it augments the existing Filament database-notifications modal with Unread/All tabs and per-row actions (delete, toggle read/unread).
  • Fit is therefore narrow and clean: if the product already runs Filament panels with ->databaseNotifications() enabled, the plugin slots in as a UI affordance with no data-model impact. If notifications are delivered by email/Slack only, or the panel does not use the database notification channel, the package provides zero value.
  • The value proposition is small but real: replacing a "mark all as read" bulk action with per-item control is a recurring usability complaint in admin panels. Estimate the equivalent custom work at roughly 1–3 developer-days including tests — that is the true build-vs-buy baseline against which to judge the dependency.

Integration feasibility

  • Mechanically trivial: one Composer require, one Tailwind @source directive, one asset rebuild. No service provider configuration, no migrations, no published config surfaced in the README.
  • The @source path is relative and the README itself says to "adjust the number of ../" — an install step that silently degrades. If the theme CSS path differs from the documented example, Tailwind will not compile the package's utility classes and the modal will render visibly broken with no error. This is the single most likely integration failure and it fails softly.
  • Tailwind v4 is assumed. Teams on Tailwind v3 or on a Filament theme that pre-dates the @source convention will need to adapt the approach (content globs, or @import of a compiled stylesheet), which is undocumented territory.

Technical risk

  • Filament version lock-in is the dominant risk. The README claims compatibility with "Filament v5 panels" only. Filament v5 is very new; v3/v4 support is unstated. If the estate is on v3 or v4, this package is a non-starter until verified. Confirm by reading the package's composer.json constraints before any spike.
  • Internal-view coupling. A package that adds tabs to and swaps the close button of Filament's notifications modal almost certainly overrides or extends Filament's own modal Blade view and relies on internal CSS class names. That is a high-churn surface — panel upgrades can break it without a major-version signal from this package.
  • Pre-1.0 and thinly adopted. ^0.0.2, 10 stars, 0 dependents, single maintainer. Semantic-versioning guarantees are effectively absent; 0.0.x permits breaking changes in any patch.
  • Polish signals are poor. The README's Packagist badges and banner alt text point at a different package (zvizvi/relation-manager-repeater) — copy-paste residue from the author's other work. This suggests low review rigor. Verify composer require zvizvi/filament-notifications-tabs actually resolves to the intended package and that the badge/tag mismatch is cosmetic only. No tests are mentioned in the maturity signals (readme + changelog only).

Key questions

  1. What Filament major versions does composer.json actually allow, and which does the CI matrix test? Is v3/v4 in scope?
  2. Does the package override Filament's notification modal view, or compose via render hooks? Override = brittle; hooks = upgrade-tolerant.
  3. Does it conflict with any other notification-related plugin or any locally published/customised filament-notifications view?
  4. Are the delete and read/unread actions audit-logged or event-emitting, or purely local state mutations? Do we need an audit trail for notification dismissal in a regulated context?
  5. Is there a test suite and a release history beyond 0.0.2? What is the maintainer's responsiveness on issues?
  6. Do the per-notification actions respect Filament authorization/policy hooks, or is delete unconditional for any authenticated panel user?
  7. Is the wrong-package badge reference a documentation defect only, or does the published artifact diverge from the repository?

Integration Approach

Stack fit

  • Assumes: Laravel + Filament panel, database notifications enabled (->databaseNotifications() on the panel), notifications table migrated, Tailwind v4 theme pipeline (Vite) with a Filament theme CSS entrypoint.
  • Prerequisite not stated in the README but required: the panel must already be using the database notification channel, otherwise there is no modal to enhance. Confirm this before scoping the work.

Migration path

  • No data migration, no schema change, no backfill. Rollback is composer remove plus a @source line deletion plus a rebuild — a clean, low-blast-radius reversal.
  • Because nothing is persisted differently, this can be trialled on a single internal/admin panel and reverted without state consequences.

Compatibility

  • Primary gate: Filament major version. Verify against the package's composer.json and, if the estate is not on v5, treat the evaluation as blocked rather than partially viable.
  • Secondary gate: Tailwind version and theme build setup. Tailwind v3 estates need a workaround that the README does not cover.
  • Tertiary: any locally published Filament notification views. Published vendor views are a common cause of silent non-effect — the package's markup may never render.

Sequencing

  1. Diligence (½ day): read composer.json constraints, skim the changelog and commit history, confirm Packagist artifact matches the repo, confirm no view-publication conflicts.
  2. Spike (1 day, dev environment): install on a throwaway branch, add @source, rebuild assets, and explicitly verify the three user-visible behaviours — Unread tab badge count, delete action, read/unread toggle — plus the negative case of a fresh notification arriving while the modal is open.
  3. Decision gate: if any of the three behaviours is broken under our Filament version, stop and prefer the ~1–3 day in-house implementation (a small custom Livewire notification modal or a render-hook extension) over patching a third-party 0.0.x dependency.
  4. Rollout: single non-critical admin panel first, behind a feature flag if the panel is user-facing; monitor for CSS regressions in the panel shell (the @source addition can, in edge cases, pull in unexpected utilities).
  5. Pin and document: pin to an exact version (0.0.2, not ^0.0.2), record the @source line and its path in the team's panel-setup runbook, and note the Filament upgrade as a re-verification trigger.

Operational Impact

Maintenance

  • Low ongoing effort but non-zero ownership: the dependency is pre-1.0 with one maintainer and no visible test suite, so the practical expectation is that we absorb upgrade breakage ourselves. Budget a re-verification task on every Filament major upgrade, plus a watch on the repo for abandonment.
  • Mitigation is cheap: the package's surface area is a Blade view and some CSS. If it is abandoned, forking or inlining it is a sub-day task. Treat it as vendored convenience code rather than a strategic dependency.

Support

  • No vendor support; GitHub issues only, with an unproven response record. Internal support burden falls on whoever owns the panel theme, since the most common failure ("styles missing") is a Tailwind build issue rather than a package bug.
  • Support documentation burden is real: the @source path footgun will recur for every new environment and every developer who rebuilds the theme from scratch.

Scaling

  • No runtime scaling concern: this is client-side rendering of an already-loaded notification list. It adds no queries, no jobs, no queue load.
  • The Unread/All split is a client/view-side filter over the notifications collection Filament already fetches. For users with very large notification histories, the unread count badge inherits whatever pagination/limit behaviour Filament's modal already has — the package does not improve or worsen it, but confirm the badge count reflects total unread rather than the current page.

Failure modes

  • Silent styling failure (highest probability): @source path wrong or assets not rebuilt → unlabelled tabs and unstyled actions in the modal. No exception, no log.
  • Silent no-op: locally published Filament notification views take precedence; the package's markup never renders and the install appears to have done nothing.
  • Hard break on Filament upgrade: internal view or class-name changes cause a Blade exception in the notifications modal — this is a panel-wide, high-visibility failure (the bell icon and modal are in the top bar for every admin user).
  • Version skew: 0.0.x patch bump introduces a breaking change under an unpinned constraint.
  • Behavioural divergence: delete/read-toggle may bypass any audit or policy layer; if notification dismissal must be traceable, this is a compliance gap rather than a bug.
  • Mitigations: pin exactly, install in dev first, add a smoke test or manual checklist item covering the notifications modal, and keep the rollback (composer remove + rebuild) documented.

Ramp-up

  • For any developer with Filament experience: roughly 30 minutes to install and verify, dominated entirely by the Tailwind build step. No new mental model, no new API, no config surface to learn.
  • For developers without Tailwind v4 / Vite theme experience: the @source directive and relative path arithmetic are the only real friction, and the README's own instruction to "adjust the number of ../" is the kind of hint that signals a fragile setup. Assign the initial install to someone who already owns the panel theme.
  • Overall verdict for a TPM: a low-cost, low-ceiling convenience plugin. Worth a one-day spike only if the estate is confirmed on Filament v5 and database notifications are in active use; otherwise the in-house alternative is small enough that the dependency's maturity and polish signals argue against adopting it.
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.
mehedimi/laravel-amp-mail
happones/laravel-vue-i18n-generator
jwerd/inertia-table
siberfx/flysystem-wasabi
hollyit/token-replace
ippanelcom/laravel-sdk
adachsoft/changelog-linter
adachsoft/collection
payerurl/telegrambot-crypto-payment-instant-payout
dskripchenko/laravel-hybrid-search
riorizkyrainey/lara-ced
mehedimi/static-vel
zharp/zharp
nonsapiens/bigquery-model-sync
lgu-bayambang-ict-office/lgu-laravel-development-standards
andydefer/laravel-support
se7enxweb/flysystem
lampwick/laravel
jeslage/statamic-emojis
micahdshackelford/rmap-laravel