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

Laravel Sms Laravel Package

linkstreet/laravel-sms

LinkStreet's Laravel SMS package provides a simple way to send text messages from Laravel applications via configurable SMS drivers. It integrates SMS sending into your app, letting you manage gateways and deliver notifications or alerts through a clean, framework-friendly API.

View on GitHub
Deep Wiki
Context7

Technical Evaluation

Architecture fit. rapltech/laravel-sms follows the conventional Laravel package shape: a service provider that registers a manager/transport, a facade, and a publishable config file that maps named gateways to credentials and driver classes. That makes it a reasonable fit for applications that need a single internal SMS abstraction across multiple providers (Twilio, Nexmo/Vonage, and regional gateways common in this package's lineage) rather than a deep integration with one vendor. It is a sending abstraction, not a full CPaaS layer — expect to own delivery receipts, inbound message handling, and number management yourself.

Integration feasibility. v6.4.0 adds Laravel 12 support (PR #13). That is a compatibility-only release: no new API surface, no documented breaking changes, no deprecation notices. For a team on Laravel 11 or 12 this removes the main historical blocker to adoption — previously you would have had to justify a composer.json constraint override against an unsupported framework major. Installation is the standard composer require + php artisan vendor:publish + env-credential path, so a spike should be measurable in hours, not days.

Technical risk. The release notes are extremely thin ("TASK: Support for laravel 12"), which is itself a signal: this looks like a small-maintainer, low-ceremony project. Specific risks to price in:

  • Bus factor / maintenance cadence. Version 6.4.0 landing after 6.3.1 suggests reactive maintenance tied to Laravel majors rather than active feature development. No evidence in the notes of a security policy, changelog discipline, or release cadence commitment.
  • Gateway API drift. SMS providers deprecate endpoints and auth schemes regularly. A package whose last observable change is a framework-compatibility bump may be carrying stale HTTP calls or pinned SDK versions. Laravel 12 compatibility does not imply gateway compatibility.
  • Framework-version-only versioning. The 6.x line appears to track Laravel majors. That means a Laravel upgrade and an SMS-layer upgrade arrive as the same event — upgrading the framework and the package becomes coupled, which is a change-management hazard.
  • Verification gap. Nothing in the notes confirms automated tests, static analysis, or CI matrix coverage for Laravel 12 specifically. "Supports Laravel 12" from a single PR may mean the constraint was widened, not that the integration was exercised.

Key questions for the maintainer / spike.

  1. What are the exact composer.json constraints for php, illuminate/*, and guzzlehttp/guzzle in 6.4.0? Is Laravel 10/11 still supported in the same major, or is this a forward-only release?
  2. Was the Laravel 12 PR a constraint bump or did it include code changes (e.g. Illuminate\Contracts signature updates, Str/Http facade changes)? Was CI run against 12.x?
  3. Which gateways are actively maintained drivers, and which are community-contributed and unverified? What are their upstream SDK versions?
  4. Does the package support queued sending, retries/backoff, per-gateway rate limiting, and idempotency keys? These determine whether it survives contact with production traffic.
  5. What is the license, and is there any commercial support option or maintainer responsiveness history on issues?
  6. How are credentials resolved — config file, env, or a pluggable resolver compatible with a secrets manager?

Integration Approach

Stack fit. Target Laravel 10–12 on PHP 8.1+. It suits a monolith or a small number of Laravel services that send transactional SMS (OTP, order status, alerts) at low-to-moderate volume. It is a poor fit for a dedicated high-volume messaging platform or for anything requiring inbound/webhook-driven conversation state, which you should build yourself.

Migration path. Two viable entry points:

  • Greenfield: adopt directly, but place it behind a thin internal interface (SmsSender::send(Message $m)) from day one. The package should be the only file that imports its facade. This costs an hour and converts a vendor decision into a swappable detail.
  • Brownfield: if you are calling Twilio/Vonage SDKs directly, migrate one low-risk notification type at a time rather than lifting all call sites. Keep the direct SDK path available until the wrapper has run a full release cycle.

Compatibility and sequencing. Recommended order:

  1. Constraint audit (½ day). In a throwaway branch, composer require rapltech/laravel-sms:^6.4 against your actual Laravel 12 lockfile. Record resolved versions of illuminate/support and any HTTP client. Fail fast here — most adoption risk is dependency resolution, not code.
  2. Sandbox spike (1–2 days). Publish config, wire one gateway in a non-production environment, send to a test handset with real credentials from your secrets store (not .env committed anywhere). Verify the response object exposes the gateway message ID and error detail you need for observability.
  3. Wrapper + queue wiring. Implement the internal interface, route sends through a queue job with retry/backoff, and add a fallback gateway entry so a provider outage is a config change rather than a deploy.
  4. Pilot. Migrate a single non-critical notification (e.g. internal ops alerts) in production behind a feature flag. Instrument success rate, latency, and cost per message.
  5. Broaden. Move OTP and customer-facing messages last, after the pilot has run at least two weeks including a credential-rotation event.

Compatibility caveats. Pin the package to ^6.4 and commit the lockfile. Do not float to dev-main. If your platform runs multiple Laravel versions across services (common in a microservice estate), confirm 6.4.0 still covers the oldest version in service before standardising on it — a forward-only 6.4.0 would split your fleet.

Operational Impact

Maintenance. Treat this as a dependency you own, not one you consume. Budget a recurring line item: review upstream activity quarterly, and re-verify gateway credentials and driver behaviour at each Laravel major. Because version numbers track framework majors, schedule the package upgrade into your Laravel upgrade runbook rather than as an independent chore — that keeps the coupling visible instead of surprising you mid-upgrade. Low activity cuts both ways: few breaking changes, but also slow fixes when a gateway breaks.

Support. Assume community-only support with no SLA. Designate an internal owner (typically backend platform) and document the fallback gateway procedure. If the package is on the critical path for OTP, add a manual escape hatch — a small script that sends via the gateway SDK directly — so an upstream stall is not an outage.

Scaling. Throughput will be bounded by the gateway's rate limits and your queue workers, not by the package, which is a thin HTTP layer. Plan for: dedicated queue with concurrency tuned to your provider's per-second allowance, jittered retries on 429/5xx, and a dead-letter path with alerting. Watch PHP worker memory only if you send in large batches from a single process.

Failure modes to instrument explicitly.

  • Silent send failure — the package returns a response object; if callers do not inspect it, failed sends look like successes. Enforce response checking inside the wrapper.
  • Credential expiry/rotation — the highest-frequency real-world failure. Alert on auth-error rates and rehearse rotation.
  • Provider outage — mitigable only with the pre-built fallback gateway; decide in advance whether fallback is automatic or a runbook step.
  • Dependency conflict on framework upgrade — surfaces as a composer resolution failure during a Laravel major, which is exactly when you have least slack.
  • Stale driver against a deprecated endpoint — no in-package signal; only your success-rate metric will catch it.

Ramp-up. A Laravel developer reaches first successful send in well under a day; the config-driven gateway swap and facade are idiomatic and need no explanation. The non-obvious work is operational rather than API: response inspection, queuing semantics, gateway-specific error taxonomies, and cost/quota monitoring. Budget roughly one engineer-week for a production-grade integration of a single notification type including observability, and treat additional gateways as a few hours each once the wrapper exists.

Bottom line. v6.4.0 is a narrow but genuinely useful release: it moves the package back inside the supported-framework envelope for teams on Laravel 12, which is the main thing that would have blocked a trial. It does not change the underlying posture — small maintainer, thin release notes, gateway-liveness unverified. Recommendation: proceed to a timeboxed spike behind an internal interface, pin the version, and gate production use on a two-week single-notification pilot.

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