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

Messagebird Laravel Package

laravel-notification-channels/messagebird

MessageBird notification channel for Laravel. Send SMS notifications through MessageBird’s API using Laravel’s native notification system. Configure your access key and originator, then deliver messages with a dedicated notification class.

View on GitHub
Deep Wiki
Context7

Technical Evaluation

Architecture fit

  • This is a thin adapter, not a platform. It implements Laravel's notification channel contract (send($notifiable, Notification $notification)) and exposes a MessagebirdMessage value object that mirrors the shape of Illuminate\Notifications\Messages\MailMessage-style fluent builders. For any application already standardized on Laravel Notifications, the fit is near-perfect by construction: no new abstraction layer, no new transport concept, no new event model.
  • The package's real architectural footprint is three things: a service provider, a config entry, and one or two classes. That means near-zero coupling — it is trivially replaceable, which is both its strength (low exit cost) and its weakness (low differentiation).
  • It is SMS-only. MessageBird/Bird's commercial value is multichannel (SMS, WhatsApp, Voice, Email), and this package addresses one channel. If the product roadmap touches WhatsApp or verified voice OTP, this package is a starting point, not a solution.
  • Unchanged by v4.4.0. The release is a framework-compatibility bump only; no new transport surface, no new message options, no architectural change.

Integration feasibility

  • Low effort: composer require, publish config, add messagebird to a notification's via(), and optionally Notification::route('messagebird', $phone) for on-demand sends to non-user recipients. A single engineer can have a working path to production in under a day, excluding compliance work (sender ID registration, country-specific alpha sender restrictions, 10DLC in the US).
  • The blocker is not the package, it is the vendor. The legacy MessageBird REST API (rest.messagebird.com) has been in a long deprecation arc since the company rebranded to Bird and pushed customers toward its newer platform APIs. Verify which API surface the underlying SDK targets before committing. v4.4.0 provides no evidence either way — it touches framework compatibility, not the vendor SDK, so the deprecation question is exactly as open as it was.
  • New in v4.4.0: the package is now declared compatible with Laravel 13.x. This removes a near-term adoption blocker for teams tracking the newest framework release and confirms the laravel-notification-channels umbrella is still running its automated compatibility process for this repo. It does not confirm the package works on our current LTS target specifically — that still needs CI verification.

Technical risk

  • Adoption risk (high, unchanged). The prior assessment measured 23 stars and 0 dependents. We have no fresh metric data in this release window, so treat those figures as unchanged pending a Packagist/GitHub re-check. Zero dependents remains the dominant signal: no downstream pressure to fix breakage, no community-vetted edge cases, no de facto compatibility testing beyond what the org's automation provides. A composite score of ~11.9 still reflects that.
  • Maintenance risk (revised: high → medium-high). v4.4.0 materially weakens — but does not eliminate — the abandonment thesis. The release is authored by @laravel-shift, i.e. the umbrella org's automated compatibility pipeline, which is the same mechanism that keeps the sibling channel packages current. That is a real, recurring heartbeat rather than a one-off commit, and it means framework-version drift is likely to be handled for us. It does not demonstrate: a human maintainer reviewing transport-level issues, vendor SDK upgrades, security triage, or responsiveness to bug reports. Budget for abandoned-with-automation, not abandoned.
  • Supply-chain risk (medium, unchanged). The package depends on the official MessageBird PHP SDK, which is itself low-activity. You are two layers removed from a maintained transport. v4.4.0 did not visibly bump the SDK constraint, so this layer is untouched.
  • Data-model risk (medium, unchanged). Notification channels typically return nothing and persist nothing. There is no delivery-receipt reconciliation, no message ID persistence, no cost attribution. For OTP or transactional flows, you will need webhook handling for delivery status and that is out of scope here.
  • Licensing risk (none). MIT, clean.
  • Anomaly still open: the previously listed release date (2026-04-29) was a future date relative to the evaluation window. v4.4.0 sits on that same timeline. Verify the actual publish date, tag, and changelog against Packagist before treating this as evidence of current activity — a compat PR can be cut well ahead of, or well after, its apparent date.

Key questions

  1. What is the declared compatibility matrix? Partially answered: Laravel 13.x is now explicitly supported via PR #46. Still open: the full declared matrix (PHP constraints, Laravel 10/11/12 retention) and whether it holds on our LTS target in CI.
  2. Which Bird API version does the bundled SDK call, and what is the vendor's stated end-of-life date for it? Unanswered — now the top open question, since it is the only risk the release did not touch.
  3. Did v4.4.0 widen the composer.json SDK constraint, and does the new constraint conflict with anything else in our dependency graph?
  4. Does the channel surface API exceptions (auth failure, invalid number, rate limit) or swallow them into a failed notification that we might not observe?
  5. Is there a ShouldQueue story — does an outbound HTTP call happen inline during request handling?
  6. Does it support sender ID / originator configuration per message, or only globally via config?
  7. Are there any tests, and does CI now run against Laravel 13 and our target versions, or only the newest?

Integration Approach

Stack fit

  • Fits any Laravel application on PHP 8.x using the standard Notification pipeline. Works equally well for user-attached notifications (routeNotificationForMessagebird()) and on-demand routing to raw E.164 numbers, which matters for pre-signup verification flows.
  • Configuration lives in the published config file plus .env for the access key. Standard Laravel secrets handling applies; nothing bespoke.
  • Laravel 13 support widens the fit to teams on the newest framework line without a fork, which was previously a likely forcing function for vendoring.

Migration path

  • From direct API calls: wrap existing call sites behind a Laravel Notification class. This is the highest-value move — it decouples our code from the vendor SDK even if we keep Bird as the provider.
  • From Twilio/Vonage: the channel contract is identical, so migration is a class swap plus credential change. Keep the notification classes provider-agnostic by not referencing MessagebirdMessage outside a small adapter layer if provider portability is a stated requirement.
  • Off this package: trivial. Because the surface is so small, forking the ~5 relevant classes into app/Notifications/Channels/ is a realistic contingency and removes the dependency entirely. v4.4.0 makes depend modestly more attractive than before (someone else absorbs framework churn), but the fork decision should still hinge on the SDK/API answers, not on the compat bump.

Compatibility

  • v4.4.0 asserts Laravel 13.x. Confirm which Laravel minors remain in the supported window — an automated compat PR sometimes drops older constraints in the same commit.
  • Watch for Composer conflicts on the MessageBird SDK version if any other package (or a legacy integration) pins it. Re-run composer why-not after the bump; a Laravel 13 constraint change can cascade into PHP-version constraints.
  • Validate against our exact Laravel minor version in CI before rollout; do not assume the README's constraint list is current.

Sequencing

  1. Re-baseline (half a day): confirm v4.4.0 on Packagist — real publish date, tag, composer.json diff (PHP + Laravel + SDK constraints). Diff v4.3.0…v4.4.0 to confirm it is compat-only.
  2. Spike (1–2 days): install, send to a test number in a target country, confirm the API endpoint and SDK version actually in use, capture error shapes.
  3. Decide: depend vs. fork. If the spike shows a live API and clean exception handling, depend and pin — the automation makes pinning lower-risk than it looked previously. If it shows SDK stagnation, vendor the channel classes internally.
  4. Abstract: introduce an internal SmsSender interface so Bird is one implementation among several. Still the single highest-leverage step for a vendor whose roadmap is uncertain, and unaffected by this release.
  5. Pilot: one low-risk flow (internal alerting or a non-critical notification) with queueing enabled and error reporting wired up.
  6. Production: transactional/OTP flows last, with delivery-receipt webhooks and alerting in place first.

Operational Impact

Maintenance

  • Ownership assumption is now softer but not eliminated. With zero dependents but an active org-level automation pipeline, the realistic model is: we own bug fixes and vendor-API adaptation, the umbrella org owns framework compatibility. A quarterly review of the pinned version and the vendor API lifecycle remains the minimum.
  • Add a lightweight monitoring step: watch for the next Laravel-shift compat PR as a liveness signal. Two missed major-version cycles is the trigger to fork.
  • The code is small enough that maintenance cost is genuinely low — this is a case where the low score understates practicality. The residual risk is not churn, it is abandonment-with-automation: the package can look alive on the compatibility axis while the transport layer underneath it decays.

Support

  • MIT, no SLA, no commercial support path for the package. Bird offers commercial support for its API and account, not for this integration. Escalation for delivery problems goes to Bird; escalation for code problems goes to us.
  • Laravel 13 support does not change this — the automated contributor is a compatibility bot, not a support channel. Do not raise issues expecting a maintainer response.

Scaling

  • Throughput is bounded by Bird account limits and per-country sender restrictions, not by the package. The package itself is stateless.
  • The practical scaling concern is queue workers: outbound HTTP inside a synchronous notification dispatch will hold a PHP-FPM worker or job slot for the duration of the API call. Always implement ShouldQueue and set explicit timeouts and retry/backoff.
  • Per-message cost scales with segment count, not message count. Unicode/emoji and long messages split into multiple billable segments silently — add a length check or a segment estimator in the notification layer if cost predictability matters.
  • No scaling-relevant change in v4.4.0.

Failure modes

  • Silent failure: notification channels that throw are visible; those that return without throwing on an API-level rejection are not. Confirm behavior on 401/422/429 before production.
  • Rate limiting: Bird returns 429s under burst; without retry/backoff you get dropped OTPs. This is the most likely production incident.
  • Number validation: no client-side E.164 enforcement means invalid numbers become paid API failures.
  • Vendor API deprecation: still the highest-severity mode, and now relatively more exposed — v4.4.0 proves the framework wrapper is being kept current, which can create a false sense of overall health while the deprecated transport beneath it goes unaddressed. Legacy endpoints being sunset is a plausible, scheduled outage. Track it explicitly with a named owner and a decision date.
  • Automation blind spot: because the visible activity is bot-driven, a real bug (bad error handling, SDK incompatibility) may sit unaddressed with no signal. Our own tests are the only coverage we can rely on.
  • No delivery observability: without webhook integration, "sent" ≠ "delivered." Do not treat channel success as delivery success in any user-facing or SLA-bearing flow.

Ramp-up

  • Very fast, and marginally faster now that Laravel 13 is in the supported window — less time spent justifying a version pin or working around constraint conflicts. Any Laravel developer familiar with Notifications needs roughly half a day to be productive. The learning cost is not the package — it is the vendor's sender registration, country-specific compliance rules, and delivery-receipt plumbing, which together dominate the actual effort.
  • Recommend one named owner for vendor relationship and API lifecycle, distinct from whoever writes the integration code.
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.
abbasudo/artisan-route
mirvan/ippanel
ignibyte/aic-framework
glavweb/data-schema-bundle
glavweb/datagrid-bundle
tacticmedia/scim-server
uni-method/frame
neika-ai/sdk
adachsoft/php-code-style
pharaonic/laravel-notification-dependencies
beautinow/translug
dev-brainiac/bot-cloaked
octoberrain/html
octoberrain/extension
octoberrain/exception
octoberrain/contracts
adachsoft/api-version-bundle
cgv/localized-resource
noith/settings
kda/laravel-package