Filament PWA, web push, mobile bottom nav styling, and global search modal integration for Laravel.
banulakwin/filament-pwa is a Laravel package for filament pwa, web push, mobile bottom nav styling, and global search modal integration for laravel..
It currently has 0 GitHub stars and 0 downloads on Packagist (latest version 1.0.1).
Install it with composer require banulakwin/filament-pwa.
Discover more Laravel packages by banulakwin
or browse all Laravel packages to compare alternatives.
Last updated
banulakwin/filament-pwa)Filament panel PWA support: web push (VAPID + service worker), app badge sync, deduplicated admin broadcasts, mobile global search trigger, navigation loading overlay, and optional mobile bottom navigation view override.
^8.4^11.0|^12.0|^13.0^5.0composer require banulakwin/filament-pwa
Or run the install command:
php artisan filament-pwa:install
This publishes config, service worker, webmanifest, and mobile bottom nav override.
Set in .env:
VAPID_SUBJECT=mailto:[email protected]
VAPID_PUBLIC_KEY=your_public_key
VAPID_PRIVATE_KEY=your_private_key
Or use FILAMENT_PWA_* prefixed overrides. Values also merge from config/services.php vapid if present.
Implement Banulakwin\FilamentPwa\Contracts\BadgeCountProvider and set:
FILAMENT_PWA_BADGE_COUNT_PROVIDER=App\Services\MyBadgeCountProvider
Default strategy is config:
FILAMENT_PWA_NOTIFIABLE_MODEL=App\Models\User
Set recipient_criteria.where in config (e.g. ['is_admin' => true]).
Alternatively use recipient_strategy=query with DefinesWebPushRecipientsQuery on your model, or bind a custom WebPushRecipientResolver.
Add the trait to your user model:
use Banulakwin\FilamentPwa\Concerns\HasWebPushSubscriptions;
class User extends Authenticatable
{
use HasWebPushSubscriptions;
}
use Banulakwin\FilamentPwa\FilamentPwaPlugin;
->plugins([
FilamentPwaPlugin::make(),
])
These are not required by Composer; install them in your app when you use the related features:
composer require charrafimed/global-search-modal hammadzafar05/mobile-bottom-nav
use CharrafiMed\GlobalSearchModal\GlobalSearchModalPlugin;
use HammadZafar05\MobileBottomNav\MobileBottomNav;
->plugins([
FilamentPwaPlugin::make(),
GlobalSearchModalPlugin::make(),
MobileBottomNav::make()->items([/* ... */]),
])
Run php artisan filament-pwa:install (or publish tag filament-pwa-mobile-bottom-nav) for the glass bottom nav Blade override.
FILAMENT_PWA_THEME_COLOR=#ffffff
FILAMENT_PWA_BACKGROUND_COLOR=#ffffff
FILAMENT_PWA_APPLE_STATUS_BAR_STYLE=default
After filament-pwa:install, edit public/favicon/admin-site.webmanifest so theme_color / background_color match your brand. The status bar meta tag reads from config automatically.
use Banulakwin\FilamentPwa\WebPushBroadcaster;
WebPushBroadcaster::send('Title', 'Body', [
'url' => '/admin/some-resource/1',
'type' => 'contact-request',
'priority' => 'normal',
'dedupeKey' => 'contact-request:' . $id,
'dedupeTtlSeconds' => 300,
]);
The package registers admin/api routes (configurable via route_prefix):
| Route | Method | Description |
|-------|--------|-------------|
| filament-pwa.badge-count | GET | Returns badge count JSON |
| filament-pwa.push-subscription.store | POST | Register push subscription |
| filament-pwa.push-subscription.destroy | DELETE | Remove push subscription |
| Tag | Description |
|-----|-------------|
| filament-pwa-config | Config file |
| filament-pwa-assets | Service worker + webmanifest |
| filament-pwa-views | Blade views |
| filament-pwa-mobile-bottom-nav | Mobile bottom nav override |
composer test # Run PHPUnit
composer pint # Fix code style
composer phpstan # Static analysis
composer quality # Run all (pint + phpstan + test)
See CHANGELOG.md for details.
git checkout -b feature/your-feature)composer quality to ensure tests and style passsrc/
FilamentPwaPlugin.php
FilamentPwaServiceProvider.php
WebPushBroadcaster.php
Concerns/
HasWebPushSubscriptions.php
Console/
InstallFilamentPwaCommand.php
Contracts/
BadgeCountProvider.php
WebPushRecipientResolver.php
DefinesWebPushRecipientsQuery.php
Http/Controllers/
BadgeCountController.php
PushSubscriptionController.php
Models/
PushSubscription.php
Notifications/
WebPushAlertNotification.php
Channels/
MinishlinkWebPushChannel.php
Resolvers/
ConfigWebPushRecipientResolver.php
config/
filament-pwa.php
database/
migrations/
2026_04_17_150000_create_push_subscriptions_table.php
resources/
stubs/
sw.js
admin-site.webmanifest
views/
components/pwa-head.blade.php
hooks/mobile-global-search-trigger.blade.php
partials/*.blade.php
vendor/mobile-bottom-nav/bottom-navigation.blade.php
MIT — see LICENSE for details.