Download the PHP package emuniq/filament-browser-notifications without Composer
On this page you can find all versions of the php package emuniq/filament-browser-notifications. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Download emuniq/filament-browser-notifications
More information about emuniq/filament-browser-notifications
Files in emuniq/filament-browser-notifications
Package filament-browser-notifications
Short Description Zero-config browser push notifications for Filament. Piggybacks on database notifications — every sendToDatabase() automatically triggers a Web Push via VAPID.
License MIT
Informations about the package filament-browser-notifications
Filament Browser Notifications
Every sendToDatabase() in your app automatically triggers a browser push notification — no code changes needed.
Screenshots
Subscription prompt — appears after a configurable delay, asking the user to enable push notifications.
Profile section (inactive) — auto-injected on the Edit Profile page. One-click to enable.
Profile section (active) — shows subscription status, device count, and a button to disable.
Installation
That's it. The install command handles everything:
- Generates VAPID keys and adds them to
.env - Publishes and runs the
push_subscriptionsmigration - Adds the
HasPushSubscriptionstrait to your User model automatically
No manual plugin registration needed — it auto-registers on all Filament panels. No service worker publishing needed — it's served from a route automatically. No profile page changes needed — the subscription management section auto-injects.
Note: The trait step requires the process running
artisanto have write access to your User model (e.g.app/Models/User.php). In setups where the model is read-only for PHP (common in some Docker images), the command skips that step and prints instructions to add the trait by hand — it won't fail the install. To do it manually, add theHasPushSubscriptionstrait to your User model:
How it works
Features
Core
- Zero-config piggyback on
DatabaseNotification::created— no per-notification wiring - VAPID-only — no Firebase, no external WebSocket servers, no third-party dependencies
- Queued delivery — push dispatch runs as a background job
- Smart click handling — focuses existing tab and navigates, or opens new tab
Throttle & Grouping
- Burst protection — multiple notifications within a configurable window (default 5s) are grouped into a single "You have N new notifications" push instead of spamming the user
- Configurable via
throttle_secondsin config (set to 0 to disable)
UI
- Non-intrusive subscription prompt — styled Filament section banner, not the raw browser popup
- Dismiss cooldown — "Not now" hides the prompt for 7 days (configurable via localStorage)
- Opt-out respected — if user disables from profile, no re-subscription or prompt until they re-enable
- Profile section auto-injected — subscription management appears on the Edit Profile page automatically
- Dark mode support via native Filament components
Plugin
- Auto-registers on all Filament panels
- Auto-patches User model during install
- Service worker served from route (no asset publishing)
- Panel favicon used as push notification icon
- Dead subscription cleanup (410 Gone auto-deleted by webpush package)
- iOS PWA support — serves
manifest.json, detects iOS Safari, guides users to Add to Home Screen - i18n ready — ships with English and Spanish
- Filament 3, 4, and 5 compatible
Requirements
- PHP 8.1+
- Laravel 10+ / Filament 3+
- HTTPS (required by the Web Push API)
- A queue worker (Horizon,
queue:work, etc.)
iOS Support
Push notifications on iOS require the app to be added to the Home Screen as a PWA. The plugin handles this automatically:
- Serves a
manifest.jsonwithdisplay: standaloneand icons from your panel favicon - Injects Apple PWA meta tags
- Detects iOS Safari without PWA and shows "Add to Home Screen" instructions in the profile section
- Once added to Home Screen, the standard VAPID push flow works normally
The manifest's start_url and theme_color are derived from your active Filament panel — the panel path and primary color respectively — so the installed PWA opens the right route with on-brand chrome. Override either one in config/browser-notifications.php if needed:
Testing your setup
After installation, verify push notifications work:
Configuration
Works out of the box. To customize, override the auto-registered plugin in your PanelProvider:
Publish the config for queue and throttle settings:
Suppressing push for specific notifications
Add 'silent' => true via the notification's view data to skip the push (Filament's Notification has no ->data() method — use ->viewData()):
Translations
Ships with English and Spanish:
Docker / read-only .env
Generate VAPID keys manually:
Add to .env:
Architecture
License
MIT
Maintained by Emuniq
This plugin is built and maintained by Emuniq — a Laravel & Filament consultancy based in Mexico. We help teams ship admin panels, custom Filament resources, and SaaS backoffices.
- 🌐 Website: emuniq.com
- 💼 Need a hand with your Filament project? Get in touch.
- ⭐ If this plugin saves you time, a GitHub star helps others find it.
All versions of filament-browser-notifications with dependencies
filament/filament Version ^3.0|^4.0|^5.0
laravel-notification-channels/webpush Version ^8.0|^9.0|^10.0|^11.0