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

Notification Api Sms Notifier Bundle Laravel Package

fagforbundet/notification-api-sms-notifier-bundle

Symfony bundle for sending SMS notifications through the Notification API. Integrates with Symfony Notifier to dispatch text messages from your application, with configurable API credentials and delivery settings.

View on GitHub
Deep Wiki
Context7

Product Decisions This Supports

  • SMS as a notification channel — yes or no. This package is a transport adapter that lets a Symfony application send SMS through symfony/notifier. It informs the decision "do we add SMS to our notification matrix (email → push → SMS) for OTP, urgent alerts, or time-sensitive reminders?" It changes how you deliver, not what you notify on — so it is downstream of the channel-strategy call, not an input to it.
  • Build vs. buy for the transport layer. A bespoke HTTP client against an SMS gateway is roughly 1–3 engineer-days plus ongoing ownership of auth, retries, payload mapping, and error handling. A Notifier transport collapses that to a composer require. Frame this as an integration-cost decision on a very small surface area, not a feature-differentiation decision.
  • Vendor abstraction and exit cost. Because Symfony Notifier defines a TransportInterface, the PM-relevant benefit is optionality: swapping SMS providers becomes a config change instead of a refactor. If the roadmap includes A/B-testing two providers for cost or deliverability, a Notifier-shaped integration lowers the cost of that experiment.
  • Framework strategy signal — and a correction to the brief. This is a Symfony bundle, not a Laravel package. For a Laravel product the real decision it surfaces is "would we introduce symfony/notifier alongside Illuminate\Notifications?" — which is almost always no, because Laravel already has a pluggable channel model and mature first-party SMS drivers. In a Laravel context this package's product value is as a reference implementation of a thin transport, not as a dependency.
  • Roadmap use cases it plausibly serves (characteristic of the originating org, a Norwegian union): member communications, dues and event reminders, 2FA/OTP, urgent broadcast, and localized Norwegian messaging. It supports prioritization of SMS only where the audience has a demonstrated preference for SMS over email or push — otherwise you're funding a channel nobody asked for.
  • Compliance and data-ownership decisions the PM owns. SMS to members is personal data. Any gateway adoption — and the wrapper around it — triggers GDPR/data-processor review, retention rules for phone numbers, and consent tracking separating transactional from marketing sends. The package executes that decision; it does not make it.

When to Consider This Package

Consider it if all of the following hold:

  • You are on Symfony 6.x/7.x and already use, or have committed to, symfony/notifier.
  • You have deliberately selected the "Notification API" SMS provider it targets — its auth model, sender-ID rules, per-country delivery, and pricing. This is a provider-specific bridge, not a general SMS abstraction.
  • The blast radius is small and reversible: one service, SMS as a secondary channel, an internal or low-volume flow where a failed send degrades gracefully.
  • You are willing to fork and own it. With 0 stars, 0 dependents, and a single-org origin, treat upstream as unmaintained until proven otherwise. Budget a named owner and a quarterly review.
  • A security/compliance pass is complete: credential handling, whether phone numbers are logged, PII in error paths, and the provider's DPA.

Look elsewhere if any of these hold:

  • You are on Laravel. Use native notification channels and a maintained SMS driver. Do not bolt Symfony Notifier into a Laravel app for a single transport — the bundle's DI wiring is dead weight, and symfony/notifier plus its transitive constraints can fight Laravel's pinned Symfony components.
  • You need multi-provider routing, failover, or cost-based selection. Notifier's abstraction helps, but you'd want to own that routing logic rather than inherit it from an unmaintained wrapper.
  • You require an SLA, a security-disclosure process, or a versioned support lifecycle. Zero stars, zero dependents, single maintainer means no such guarantees — unacceptable on a revenue-critical or regulated path.
  • You need delivery receipts, webhooks, opt-out/keyword handling, or delivery analytics. Verify before assuming; a thin transport often stops at "accepted by the API," which is not "delivered."
  • You are already standardized on Twilio/Vonage/AWS SNS or are deliberately provider-agnostic. Adding a niche gateway raises vendor count and procurement overhead for no product benefit.

Diligence gate before committing: tagged releases, CI status, test coverage of the transport path, last commit date, Symfony version constraints, correct implementation of the SentMessage/FailedMessage contract (message ID, status), how errors surface, and whether the README documents provider setup. If most of these are absent, downgrade the artifact from "dependency" to "reference implementation" and stop.

How to Pitch It (Stakeholders)

For executives (30 seconds): This is a small MIT-licensed connector that lets a Symfony application send SMS through one specific SMS vendor. It is plumbing, not a product — roughly a day of saved engineering, not a strategic capability. It costs nothing to license and creates no lock-in beyond the vendor itself, because the underlying Notifier interface keeps provider swaps cheap. It is also immature: single-organization origin, no visible adoption, no support guarantees. Recommendation: do not adopt it as a dependency on any critical path; use it to inform our own thin integration if and only if we commit to SMS as a channel.

For engineering (the real pitch): Treat fagforbundet/notification-api-sms-notifier-bundle as a specification, not a dependency. It demonstrates the correct shape of a Notifier transport — configuration via bundle config, a factory producing a TransportInterface implementation, mapping our domain message to the provider payload, and returning SentMessage/FailedMessage carrying the provider's message ID. We can reproduce that in our own codebase in about a day, with our tests, our logging, our retry policy, and our name on the maintenance. That removes the supply-chain and abandonment risk while keeping integration cost low.

For Laravel engineering specifically: wrap, don't wire. Define an internal SmsSender port with a send(to, body, options) contract and a result object carrying message ID and status; implement it once with a forked transport, once as a fake for tests, and once more if we ever change vendors. Expose it through a custom Laravel notification channel, keep credentials in config/services.php and .env, and cut over behind a feature flag so a vendor change is a config change rather than a code change. Realistic effort: 2–5 engineer-days including contract tests, versus roughly a week for the higher-fidelity "pull in Symfony Notifier" path with more ongoing risk.

Caveat to state explicitly in any deck: this is a Symfony bundle, not a Laravel package. If the question on the table is "how do we send SMS from our Laravel product," this package is the wrong answer — evaluate Laravel notification channels and a mainstream SMS provider instead. Confirm the stack before this enters a build plan.

Decision framing: the real decision is the SMS provider, not this package. Choose the provider on deliverability in our target geographies, price per message, sender-ID support, and DPA terms; then implement the transport in-house. This package only accelerates step two, and only on Symfony.

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.
tequilarapido/trackit
gregsphotography/site-builder-filament
cabaoctavio/laravel-query-log
gregsphotography/site-builder-components
io-digital/clickatell
snowsoft/laravel-admin
oxygen/auth
relicsoftware/barakah-payment-gateway
tobya/work-with-composer
equipc/laravel-email-validator
equipc/laravel-email-database-log
adedsec/nova-translated-labels
wazza/laravel-db-encryption
hokny/laravel-generator
vonsogt/backup
jengo/queues
jeremykenedy/laravel-observability
coleus/frame
thtg88/journalism
filagora/filagora-ai-forums