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

Pusher Push Notifications Laravel Package

laravel-notification-channels/pusher-push-notifications

Send Laravel notifications as push notifications through Pusher's Push Notifications (Beams) service. This channel lets you deliver mobile and web push messages using Laravel's familiar notification system, with support for device interest subscriptions and rich payloads.

View on GitHub
Deep Wiki
Context7

Technical Evaluation

Architecture fit This package is a thin adapter between Laravel's first-party Notification system and Pusher Beams (Pusher's managed push service for iOS/Android/web). It contributes one channel class and one message value object; it does not own transport, retries, or device state. That is architecturally clean if — and only if — we are already committed to Laravel Notifications as the outbound messaging abstraction. In that case the marginal footprint is small and idiomatic: one entry in a notification's via() array plus a toPusherBeams() method. If we are not on Laravel Notifications, adopting this package is really a decision to adopt that abstraction, not a decision about push.

The important architectural boundary is that the package is not the dependency — Pusher Beams is. The adapter can be replaced in an afternoon; the Beams account, the device-registration flow in our mobile clients, and the interest/user topology cannot.

Integration feasibility Server-side is genuinely low-effort: composer require, provider auto-discovery, publish the config, supply the Beams instance ID and secret key via environment/secret manager, then reference the channel in notification classes. Message construction is declarative (title, body, deep link, sound, target interests or user IDs). No queue, worker, or schema changes are required, and it composes with Laravel's existing ShouldQueue notifications and rate limiting.

Release 4.4.0 (Laravel 13.x compatibility) does not change the integration surface — no new features, no new config, no client-side implications. It is a version-matrix release and is relevant only to the compatibility gate below. It is, however, a useful signal: the adapter is being kept current with Laravel majors via automated (laravel-shift) PRs rather than going dormant.

The real integration cost sits in the clients and in targeting design, not in PHP:

  • Mobile apps must embed the Beams SDK and call our auth endpoint so devices bind to a user ID.
  • We must design the interest taxonomy (per-user, per-topic, per-tenant) up front; Beams targets interests and authenticated users, not raw device tokens, and retrofitting a taxonomy later means republishing client builds.
  • Web push via Beams is the least mature surface and should be scoped out of an initial rollout unless explicitly required.

Technical risk

Risk Severity Notes
Vendor concentration on Pusher Beams High Managed push with a niche footprint; product longevity and pricing leverage sit entirely outside our control
Low community validation Medium 279 stars and effectively zero dependent packages means thin StackOverflow/GitHub issue coverage; expect to debug against the Beams API docs directly rather than the adapter
Thin-wrapper maintenance coupling Low–Medium 4.4.0 adds Laravel 13.x support, which suggests an active, automated upgrade cadence — reduced from Medium. Residual risk is the other axis: the upstream PHP Beams SDK, which this release does not touch
Support-window ambiguity after 4.4.0 Low–Medium A minor bump adding Laravel 13 may coincide with dropping earlier Laravel support; confirm the supported range before assuming our current version is still covered
Duplicate/lost delivery semantics Medium Beams offers best-effort delivery and minimal per-message observability; idempotency and "did it arrive" are our problem
Credential blast radius Medium A leaked instance secret permits arbitrary pushes to our install base; secret handling and rotation must be designed, not assumed

Key questions

  1. Which platforms are in scope for v1 — iOS, Android, web, or a subset? The answer materially changes the mobile effort and the risk profile.
  2. Do we have an existing Pusher/Beams contract and instance, or does this trigger procurement and a new vendor relationship?
  3. Are we replacing a direct FCM/APNs integration, or is push a net-new capability? A replacement implies a migration and dual-run period we have not budgeted.
  4. Is per-user targeting required for compliance or personalization, or is broadcast/topic targeting sufficient? This determines whether the auth endpoint is on the critical path.
  5. What is the acceptable fallback if Beams is deprecated or repriced — do we need a second channel implemented now, or is a documented exit plan enough?
  6. Do we require delivery receipts or analytics that Beams does not natively expose?
  7. What is our target Laravel version, and does 4.4.0's supported range still include it? Conversely, does pinning 4.4.0 for Laravel 13 force an earlier framework upgrade than we have planned?

Integration Approach

Stack fit Assumes Laravel 9+ on PHP 8.x with the standard Notification stack and a queue worker. No database, cache, or infrastructure changes. With 4.4.0 the package now covers up to Laravel 13.x; confirm the lower bound of that range against our pinned framework version before commitment — the package's version matrix, not its feature set, remains the likely blocker, but the matrix has moved in our favour.

Migration path Lock-in is contained but not eliminated. Because targeting is expressed as a Laravel channel, call sites remain vendor-neutral: swapping providers means changing the channel class in via() and adding a sibling toX() method per notification. Two practices turn that from theory into reality:

  • Keep the via() array behind a config-driven resolver or feature flag so channel selection is a config change, not a code change.
  • Standardize on a small internal message DTO (title, body, route, audience) that each channel adapter maps from, rather than letting Beams-specific fields leak into notification classes.

Compatibility 4.4.0 removes the most likely upgrade-time conflict: Laravel 13 no longer forces us to fork, pin, or patch the channel. Verify: the full supported Laravel/PHP range in 4.4.0 (specifically whether our current version is still inside it), the upstream Beams PHP SDK version it pins, and whether that SDK imposes a Guzzle/cURL constraint that conflicts with our existing HTTP clients. Note the release touches only Laravel compatibility — the Beams SDK pin is unchanged from 4.3.0, so no new client-side or network-surface risk is introduced. Also confirm that our mobile teams' Beams SDK versions are still supported by Pusher; client SDK deprecations, not PHP ones, remain the more common long-tail surprise.

Sequencing

  1. Provision and decide (week 1): confirm Beams contract/instance, obtain instance ID and secret, store in the secret manager, define the interest taxonomy.
  2. Server spike (week 1): install 4.4.0, configure, send a test push to a manually registered device in staging. This validates the version matrix cheaply and de-risks the rest. If we are still on Laravel ≤12, test the downgrade path to 4.3.0 in the same spike.
  3. Client work (weeks 1–3, longest lead time): Beams SDK integration plus a Laravel auth endpoint bound to our existing user identity. Start this in parallel with step 2; it is the schedule driver.
  4. Pilot (week 3–4): enable one low-risk notification type in production behind a flag, with explicit success metrics and a kill switch.
  5. Expand (week 4+): migrate remaining notification types, then revisit the fallback channel decision with real operating data.

Operational Impact

Maintenance Ongoing PHP maintenance is near-zero and 4.4.0 reinforces that: Laravel-major tracking is being handled upstream, apparently on an automated cadence, so the adapter is unlikely to become the reason we cannot take a framework upgrade. The sustained obligations remain (a) tracking the Beams PHP SDK, (b) tracking Beams client SDK versions, and (c) owning the device-registration endpoint and its auth semantics forever. Budget for (c), not (a).

Support Community-supported only. For production push, assume we need a paid Pusher plan to get a support channel, plus an internal runbook covering secret rotation, instance failover, and "push isn't arriving" triage. Allocate a named owner; a package with zero dependents has no informal peer network to lean on — 4.4.0 shows the maintainers are active, but that is not the same as a support contract.

Scaling Fan-out and delivery scale with Beams, not with our infrastructure — this is the package's main operational selling point. Our constraints are the publish API's per-request targeting limits (batch large audiences rather than issuing one call per user), Beams' per-message pricing as the device base grows, and the throughput of the queue workers draining notifications. Model cost against projected monthly sends per platform before the pilot, not after. 4.4.0 has no scaling or cost implications.

Failure modes

  • Whole-notification failure: a channel exception inside notify() can abort the entire notification, including co-channels like mail or database. Wrap the channel or isolate it per-notification; do not let a push outage suppress an email.
  • Silent non-delivery: publishing to an interest with no subscribers returns success with zero recipients. Instrument recipient counts, not just API 2xx rates.
  • Registration endpoint outage: new devices and reinstalls cannot bind; existing bindings persist, so the blast radius is delayed rather than immediate — but it is invisible without a health check.
  • Stale bindings: uninstalled apps and logged-out users leave orphaned user-ID associations; without a deregestration path we push into the void and pay for it.
  • Credential compromise or rotation: a rotated secret breaks all pushes until config propagates; treat rotation as a rehearsed procedure with a staging dry run.
  • Framework upgrade mismatch: if a future Laravel major (14.x) arrives before the adapter follows, we are blocked on either a fork or a delayed framework upgrade. 4.4.0 shows the gap closing fast, but the failure mode is not eliminated — it is deferred.
  • Payload and deep-link errors: size limits and malformed routes fail at the OS, outside our logs. Enforce validation at message construction.

Ramp-up A mid-level Laravel developer reaches productive use in under a day; the adapter's surface is small enough to read in full. The onboarding cost that matters is cross-functional: mobile engineers need Beams SDK fluency, and whoever owns the auth endpoint needs to understand both our identity model and Beams' registration contract. Plan roughly one engineer-day server-side, one to two engineer-weeks across mobile, and a half-day of on-call runbook work before the pilot goes live. 4.4.0 does not change any of these estimates.

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.
rlacerda83/query-parser
socialdept/atp-orm
cboxdk/laravel-assistant-client
socialdept/atp-resolver
socialdept/tenant-domains
tautvydasr/blade-class-names
socialdept/color-scales
maherelgamil/controller
coleus/widgets
coleus/table
coleus/users
coleus/music
coleus/health
coleus/calendar
coleus/notes
coleus/support
coleus/settings
coleus/apps
seampact/laravel
emmyconceptng/laravel-ng-postcode