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 Fcm

Filament Fcm Laravel Package

tomatophp/filament-fcm

TomatoPHP's Filament FCM brings Firebase Cloud Messaging into your Filament admin panel. Send push notifications to devices, manage FCM credentials and notification templates, and monitor delivery, all from a clean, native Laravel interface.

View on GitHub
Deep Wiki
Context7

tomatophp/filament-fcm integrates Firebase Cloud Messaging (FCM) into your Filament admin panel, giving you a complete workflow for managing device tokens and sending push notifications to mobile and web clients—without writing custom code.

It stores registered FCM tokens, associates them with users, and provides ready-made actions for composing and dispatching notifications, so you can target individual devices, specific users, or broadcast messages directly from the dashboard. Firebase credentials are configured through the panel, keeping sensitive keys out of your codebase.

  • Manage device tokens and registrations via a Filament resource
  • Send push notifications to users, devices, or topics
  • Compose and dispatch messages from the admin panel
  • Configurable Firebase credentials in settings
  • Integrates cleanly with Filament authentication
Frequently asked questions about Filament Fcm
How do I install tomatophp/filament-fcm in a Laravel app?
Install it with composer require tomatophp/filament-fcm, then publish and run its migrations so the FCM device token table exists. Register the plugin in your Filament panel provider so the token resource and send actions appear in the admin navigation. Because it depends on Filament, check the filament/filament constraint on the tag you install against your current major before running composer update.
Which Laravel and Filament versions does filament-fcm support?
Support is defined by the composer.json constraints on the release tag you install, not by the README alone. Run composer show tomatophp/filament-fcm and inspect the illuminate and filament/filament requirements before merging. Filament major-version coupling is the main upgrade risk, so pin an exact version and add an end-to-end push test to your Filament upgrade checklist.
How do I configure Firebase credentials for this package?
Credentials are configured through the panel settings rather than hardcoded in your codebase, which keeps sensitive keys out of your repository. You will need a Firebase service-account JSON, an APNs auth key for iOS, and a VAPID key pair for web push. Prefer supplying the service-account JSON as a file path from your secret manager instead of inlining JSON in an env variable or image.
How are FCM device tokens registered and linked to users?
The package stores registered FCM tokens and associates them with users, so you can target a specific person rather than a raw token string. Your mobile or web client obtains a token from Firebase and posts it to an authenticated endpoint that upserts it against the current user. Check the migration to see whether the table scopes by user_id, a polymorphic notifiable relation, or neither, and whether it carries a tenant column for multi-panel setups.
Can I send a push notification to one user, a topic, or everybody?
Yes. The package supports targeting individual devices, specific users, topic-based fan-out, and broadcast messages from the dashboard. You compose and dispatch notifications from the Filament panel without writing custom code or deploying. For programmatic sends, dispatch the same logic from a queued job so the admin request cycle stays fast.
Does filament-fcm use the FCM HTTP v1 API or the legacy server key?
This is a go/no-go item you should verify in the source before committing to a spike: read the config and HTTP client code path to confirm whether it accepts a service-account JSON path or a legacy server key. The legacy server-key API is shut down, and failures surface as opaque 401 responses that are hard to diagnose in production. A service-account JSON path is the only configuration you should accept.
Does it integrate with Laravel notifications as a channel?
The package is designed as a thin adapter that sits alongside your existing Laravel notification layer, so push becomes another via() channel next to mail and database. That keeps one alert model with multiple delivery surfaces rather than a separate push codebase. Check whether the channel wraps kreait/firebase-php or laravel-notification-channels/fcm, because a known wrapper lets you swap the underlying adapter without touching your notification classes.
Is filament-fcm safe to run in production?
Treat it as a bounded pilot rather than platform infrastructure. Keep it behind your own PushChannel interface from day one so a fork or replacement never reaches your notification classes, and pin the exact version to avoid silent breakage on Filament upgrades. The package does not solve credential provisioning, token lifecycle, or delivery analytics, so budget for those regardless of vendor choice.
How do I handle stale or unregistered FCM tokens?
Stale tokens degrade delivery silently, so prune any token that comes back as UNREGISTERED and run a nightly sweep based on a last_seen_at column. Track send-error rates per platform and alert on them, since alerts quietly stopping is worse than a visible failure. Also define what delivered means: an FCM message id is accepted, not delivered, so add a client-side received ping for alerts where lateness has a business cost.
What are the alternatives if filament-fcm is abandoned?
The package has a single maintainer and a small install base, so no upstream fixes should be assumed. Keep a fork with the upstream remote configured and absorb the dependency behind your own PushChannel interface. The realistic comparison is buying a free MIT thin FCM adapter versus building one; kreait/firebase-php or laravel-notification-channels/fcm are the usual lower-level replacements if you need to swap it out.
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.
middlewares/firewall
qubiqx/montapacking
nyoncode/laravel-package-console
pnscripts/filament-broadquill-lite
pnscripts/laravel-sentfold-lite
vleap/mx-sdk-laravel-internal
twidpay/utils
htetmyathlaing/scout-elasticsearch-driver
artisan-toolbox/front-awesome
ls/client-assistant
users-au/laravel-client
robertmarney/lara-hierarchial-collections
simonschaufi/rule-doc-generator
emissaoja/emissaoja
blackbricksoftware/gravityforms-civicrm-form-processor
al-rahabi/fancy-crud
jinas/dhivatar-component
mltstephane/laravel-quality
bernskiold/laravel-talentlms
bernskioldmedia/laravel-form-architect