symfony/octopush-notifier
Symfony Notifier integration for Octopush, letting your app send SMS through Octopush's gateway. Configure the DSN with your login, API key, sender and SMS type (XXX low-cost, FR premium, or WWW world) to start delivering text messages.
XXX (low-cost), FR (premium French), WWW (world). That makes route selection a product/pricing lever, not just a config detail — per-message cost and deliverability for French numbers differ by route, so the PM can price an SMS feature (e.g. "OTP costs X per auth") and tune it later without a code change.Http calls are ~half a day but leave you owning retries, payload drift, and error mapping; adopting this bridge plus wiring Symfony Notifier into Laravel is roughly 1–2 days and hands you Symfony's transport/channel conventions, an in-tree test suite, and a supported upgrade path. Choose based on whether you want to own a client or inherit a framework contract.Adopt if:
symfony/notifier + symfony/http-client and a small service-provider/adapter to expose it to Laravel's notification system. Be explicit in the decision record: adopting this package means adopting Symfony Notifier, not just a 200-line class.Look elsewhere if:
Notification channel backed by the Http facade will be simpler, easier for the team to debug, and won't drag in an unfamiliar component. This is the default choice for most Laravel apps.Risk note for the decision log: GitHub shows 8 stars and 0 dependents. Do not read that as quality — this repo is a read-only split of the Symfony monorepo, so issues and PRs live in symfony/symfony and support flows from Symfony's release cadence (releases track Symfony 7.4/8.0; v8 requires PHP ≥ 8.4). The real signal is: zero independent community, so every answer comes from Symfony core docs. Conversely, the maintenance burden is genuinely low and predictable — which is the argument to make.
For executives (one paragraph): "We can add transactional SMS — starting with login codes and delivery alerts — without building or owning a vendor integration. Octopush is an EU-based SMS provider with tiered routing (cheap, premium-French, worldwide), so we can price the feature per message and adjust cost later via configuration rather than engineering. We inherit the integration from Symfony's maintained, MIT-licensed component library, so there's no licence cost and no lock-in: provider swaps are a config change, and we can run two SMS providers side by side for resilience. Estimated engineering cost is 1–2 days versus roughly a week to build and indefinitely maintain a bespoke client. Two things we are not buying: delivery-receipt tracking and marketing campaigns — those are separate scope and should be explicitly out of the first release."
For engineering (the honest framing):
octopush://USERLOGIN:APIKEY@default?from=FROM&type=TYPE) to Symfony Notifier's Transport/Channel contracts. The real dependency you're taking on is symfony/notifier and symfony/http-client.guzzlehttp/guzzle and symfony/http-client from colliding, bind credentials via config/services.php, map Octopush errors to your existing exception/retry conventions, and wrap sends in queued jobs so SMS latency never touches a request cycle.Http version first if we only need SMS — it's faster to ship and easier to reason about. Adopt this bridge deliberately if we're standardising on Notifier for multi-channel notifications or want the failover story.How can I help you explore Laravel packages today?