xentixar/filament-push-notifications
Send and manage push notifications directly from your Filament admin panel. This package adds Firebase Cloud Messaging support, device token management, and a simple UI for composing and sending notifications in Laravel apps.
composer require xentixar/filament-push-notifications:^2.0. v2.0.0 adds Filament v5 support and web push via service workers, so confirm your panel’s Filament version matches the package constraints before upgrading.php artisan vendor:publish --tag="filament-push-notifications-config"php artisan vendor:publish --tag="filament-push-notifications-migrations" then php artisan migratepublic/sw.js or similar publish step)..env, expose only the public key to the browser.->plugin(PushNotificationsPlugin::make())
Where to look first: the README’s v2 upgrade section, config/filament-push-notifications.php, the published service worker, the migrations for push subscriptions, and the Filament plugin class/page registered by the package.
PushSubscription JSON after the user grants permission. On logout or user deletion, clean up subscriptions. Handle stale endpoints by deleting subscriptions on 410 Gone / 404 responses.push event.Notification::send() and standard queueing. If it does not, wrap the package’s sender in your own notification-like class.php artisan filament:assets after publishing assets, and clear cached views/config in deployment.localhost is usually exempt. Use a secure tunnel for testing on real devices, and keep separate VAPID keys per environment so production subscriptions are not invalidated by local testing.composer.json constraints; mixing a Filament v4 panel with this package version can cause container or asset errors.localhost. Ensure production and staging use valid TLS certificates, and that the service worker is served with the correct Content-Type and no redirects that change its scope.sw.js that imports or mirrors the package’s push handler so you can add analytics or deep-link logic.config/view/route caches. Because the service worker lives in public/, ensure your deploy pipeline does not delete it or serve an old cached version.How can I help you explore Laravel packages today?