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

Firebase Cloud Messaging Bundle Laravel Package

fresh/firebase-cloud-messaging-bundle

Fresh/FirebaseCloudMessagingBundle integrates Firebase Cloud Messaging into Symfony applications, providing configuration and services to send push notifications to Android, iOS, and web clients through FCM.

View on GitHub
Deep Wiki
Context7

Product Decisions This Supports

  • Build vs. buy for push delivery — with a corrected premise. This is not a Laravel package; it is a Symfony bundle wrapping Firebase Cloud Messaging. For a Laravel product the honest framing is "vendor integration candidate" rather than "installable dependency." The decision it informs is whether push is a small enabler we absorb into an existing sprint or a platform investment we fund separately.
  • Scoping the push notification channel inside a larger release. The bundle's surface — send one message to a device token, topic, or condition — maps to transactional push (order shipped, alert triggered, message received). It supports scoping push as a two-to-five-day line item on a mobile companion app or web-push backlog, not as a quarter-long epic.
  • Roadmap de-prioritization of "write our own FCM client." If adopted, it removes custom HTTP client work from the backlog. Given the maturity signals, this is a provisional de-prioritization at best — and for Laravel specifically, laravel-notification-channels/fcm or kreait/firebase-php already occupy that slot with real maintenance.
  • Notification use-case triage. It cleanly separates transactional push from marketing/segmented campaigns. Segmentation, scheduling, A/B testing, and campaign analytics are explicitly out of scope and remain a managed-provider decision (OneSignal, Braze, Airship).
  • Spike funding decisions. Its best use is as a reference implementation — a compact, readable example of FCM payload construction (data vs. notification messages, priority, TTL) that an engineer can read in an hour to inform our own design.
  • Risk-register entry. Zero stars, zero dependents, a score of 0, and near-certain reliance on the legacy FCM HTTP API that Google decommissioned in 2024 make this a documented "evaluated and rejected" item, which is itself a useful artifact for the decision log.

When to Consider This Package

Consider it only as reading material or a throwaway spike — and only when all of the following hold:

  • The application is Symfony-based. A Laravel codebase cannot consume it idiomatically: there is no service provider, no facade, no publishable config. You would hand-instantiate the internal sender and lose Laravel's notification channels, queueing, retries, and per-user routing.
  • Push is non-critical: internal tools, MVPs, or a single internal app where a missed notification is an inconvenience rather than a contractual failure.
  • You need only basic send semantics and can live without multicast batching, delivery receipts, dead-token pruning, or admin-driven credential rotation.
  • You are prepared to own it from day one — fork it, patch it, and own any transitive Symfony security triage.

Look elsewhere — typically straight at the FCM HTTP v1 API behind your own interface — when any of these are true:

  • You are on Laravel. Use laravel-notification-channels/fcm (native notification channel, queue-aware) or kreait/firebase-php, or write a ~1-day v1 client against google/auth + Guzzle. Composer resolution against Laravel's pinned Symfony majors is a plausible blocker before you write a line of code.
  • API generation is decisive. Confirm whether it targets the legacy server-key endpoint (fcm.googleapis.com/fcm/send) or HTTP v1 with OAuth2 service-account auth. Legacy-only is an automatic disqualifier — messages will silently fail.
  • Maturity is a gating criterion. Zero adoption signals mean no peer validation, no security advisory feed, no upgrade path. Treat as unvetted third-party code requiring full license and security review.
  • Reliability or compliance SLAs apply — payments, healthcare, anything where push is a system of record. Use Google's official libraries or a managed provider.
  • You need observability or scale — retries, backoff on 429/quota, dead-token pruning on UNREGISTERED, 500-token multicast batching, per-project rate governance. None of this is in scope.
  • Maintenance capacity is a hard constraint. You are effectively the maintainer from day one.

How to Pitch It (Stakeholders)

For executives: This is a small, essentially unadopted open-source connector for push notifications — and it is built for Symfony, not our Laravel stack, so it would need bespoke adaptation to use at all. It is not a notification platform: no campaign targeting, no analytics, no delivery guarantees, no vendor support. There is also a material technical risk that it targets a Google push API that was shut down in 2024, meaning it may not function against current infrastructure. My recommendation: do not put this on the critical path. Approve a one-sprint spike behind a feature flag to validate whether push is worth building now, and run a parallel quote against a managed provider or a maintained Laravel-native library so we can compare total cost of ownership. Decision required: fund the spike, or defer push to the next planning cycle.

For engineering: It's a thin Symfony bundle over Firebase Cloud Messaging — framework-coupled, undocumented beyond the minimum, and unmaintained by any measurable standard (0 stars, 0 dependents, score 0). Two things gate everything: (1) does composer require resolve cleanly on our PHP/Laravel version given its Symfony constraints, and (2) does it target FCM HTTP v1 with OAuth2 service-account auth, or the decommissioned legacy endpoint? If either answer is bad — and I expect both to be — we stop there. The fallback is the actual plan: define a PushSender interface in our domain, implement it over FCM HTTP v1 via kreait/firebase-php or google/auth + Guzzle, dispatch through queued jobs, and handle token lifecycle and observability as first-class work. Realistic estimate: half a day to evaluate and disqualify versus one to two days to build a clean, supportable v1 client. Treat this package as reference material to read, not a dependency to ship.

Bottom line for the decision log: Low-value, high-uncertainty dependency with a framework mismatch and a probable dead API underneath. Evaluate as a pattern to copy, not a package to adopt.

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.
pharaonic/laravel-notification-dependencies
beautinow/translug
dev-brainiac/bot-cloaked
octoberrain/html
octoberrain/extension
octoberrain/exception
octoberrain/contracts
frankyso/ipaymu
3mdikram/worldmoneywords
snowsoft/config
itmosoft/laravel-subscriptions
larva/laravel-ai-qwen
adachsoft/api-version-bundle
cgv/localized-resource
noith/settings
kda/laravel-package
kda/filament-dynamic-navigation
bypersoft/signbox
pairus/product-data
fayne/laravel-filament-cms-core