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.
Consider it when:
PushChannel seam so you're not married to the package) — not just the half-day spike to prove credentials work.Look elsewhere when:
tenant_id the package doesn't provide; you'll write your own migration and scope queries. If adding columns to a third-party table is off-limits in your org, that's a blocker.To executives: We can add mobile push alerts to the admin panel for effectively zero license cost, using the Firebase infrastructure we already trust, without buying a marketing/engagement suite. The proposed scope is deliberately narrow: operational alerts to internal staff — approvals, escalations, failed jobs — delivered as one more channel on notifications we already send. Recommended next step is a two-week pilot on one workflow with a stated success metric (e.g. median time-to-approve, missed-escalation count) and a kill criterion. If the pilot shows no behavior change, we stop and have spent one engineer-week, not one quarter. The risks are known and bounded: a small single-maintainer dependency we'll insulate behind our own interface, plus an ongoing ownership cost for token lifecycle and delivery monitoring — both of which we would carry with any build.
To engineering: We are not adopting a messaging platform; we're adopting a thin Filament-facing adapter for FCM HTTP v1 and wrapping it immediately behind our own PushChannel interface so it's replaceable in an hour. The real work isn't the package — it's the four things it doesn't do: an authenticated device-token registration endpoint (user binding derived from the session, never the request body), a queued send path with retry and invalid-token pruning, a tenant_id migration if we run tenancy, and per-platform delivery monitoring because FCM's 200 says nothing about APNs. Plan an engineer-week, not an afternoon. Treat the package as a demo accelerant and a head start, not the finished subsystem. We'll pin the version, fork with upstream as a remote, and add "one end-to-end push" to the Filament upgrade checklist.
How can I help you explore Laravel packages today?