richsage/rms-push-notifications-bundle
RMS Push Notifications Bundle is a Laravel/PHP package for sending push notifications to mobile devices via providers such as APNs and FCM, with a simple API for managing devices, payloads, and delivery.
Consider it only in these narrow cases:
composer.json.Look elsewhere — decisively — if any of the following are true (i.e., almost always):
Illuminate\Contracts\* compatibility. Bridging it means bootstrapping a Symfony ContainerBuilder shim inside a Laravel provider — the cost exceeds writing the integration from scratch, and you would own the result anyway..p8 token-based auth. Four of five transports cannot be fixed by patching — the remote services no longer exist.kreait/laravel-firebase (FCM HTTP v1), Laravel's first-party notification channels, or a managed provider that owns APNs/FCM protocols on your behalf. For teams that must own the PHP side, a thin client over FCM HTTP v1 plus APNs HTTP/2 is a small, well-documented surface — far smaller than this bundle's footprint implies.Executive summary (one paragraph): richsage/rms-push-notifications-bundle is an archived Symfony2 bundle for mobile push notifications, last useful roughly a decade ago. Every transport it implements is retired — C2DM, GCM, BlackBerry, and Windows Mobile are all shut down, and its iOS path predates Apple's current HTTP/2 API. It is not a Laravel package, has no dependents, and receives no maintenance. Recommendation: do not adopt. There is no licensing cost (MIT), but also no support, no security patching, and no viable code paths for modern iOS or Android. Its only residual value is as a design reference — a reminder of which concerns a notification layer must own (token lifecycle, multi-device fan-out, per-platform payload shaping, invalid-token cleanup).
For engineering: This is not a dependency proposal — treat it as a reading assignment and a checklist. Extract the interface boundaries (provider adapter, token store, message DTO, per-token result object) and discard the implementations. Replacement mapping is straightforward: APNs binary → APNs HTTP/2 with .p8 JWT; GCM/C2DM → FCM HTTP v1 with OAuth2 service account; BlackBerry and Windows Mobile → retire as sunset paths only; bundle service wiring → a Laravel service provider with drivers bound via a manager/factory. Design for PHP 8.x, PSR-18 HTTP clients, queue workers, and TLS 1.2+. If it appears anywhere in our tree, it flags a Symfony2-era service that needs a named owner and a replacement plan. Do not fork without that maintainer.
For product/roadmap: Push notifications are a buy, not build, decision for us. Owning per-platform transport code means absorbing every APNs and FCM API change, plus ongoing token hygiene and delivery-failure cleanup. Managed providers do that work and expose a stable API. The PM-level deliverable from this evaluation is a short requirements list — token registration/refresh/de-registration, multi-device delivery, per-platform payload differences, invalid-token pruning, delivery observability — to hand to vendor evaluation, not a ticket to integrate this bundle.
Risk if ignored: Low and contained. The risk is not "we lose a capability"; it is that someone unfamiliar with the project's age adds this to composer.json — as a "temporary" bridge no less — and we inherit a dead protocol stack with no maintainer and unbounded future patching. A one-line note in the dependency policy — no archived packages in the notification path — closes that gap.
How can I help you explore Laravel packages today?