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

Skebby Bundle Laravel Package

zen/skebby-bundle

A Composer-installable Symfony bundle for integrating the Skebby SMS gateway into PHP applications. It provides configuration and service wiring so you can send SMS messages through Skebby with minimal setup, keeping API credentials and delivery logic organized in your Symfony project.

View on GitHub
Deep Wiki
Context7

Technical Evaluation

Architecture fit. The package name (zen/skebby-bundle) and the -bundle suffix signal a Symfony 2/3-era bundle, not a Laravel package. Those two ecosystems diverged materially around the Symfony 4 / Laravel 5.x era: service container semantics, event dispatcher contracts, and autoloading conventions all diverged. A bundle is not drop-in installable into a Laravel app — it would typically need a Laravel bridge package (a service provider that registers the bundle's services), and the bundle would need to be compatible with the Symfony components version that Laravel pulls in via illuminate/*. There is no indication this bridge exists.

Integration feasibility. Zero stars, zero dependents, and a public score of 0 are strong negative signals. Practically: no signal of who is using it, no community validation of the API contract against the current Skebby REST endpoints, and no evidence of PHP 8.x compatibility (the -bundle convention strongly suggests PHP 5.6/7.x origins). The vendor namespace zen/ and the personal Bitbucket account (vittorezen) indicate a single-maintainer, likely dormant project. A Bitbucket-hosted package also requires a VCS repositories entry with credentials in composer.json, which complicates CI, container builds, and secrets management versus Packagist.

Technical risk.

  • Dependency risk (high): unknown transitive Symfony constraints may conflict with the host app's illuminate/support version, producing unsatisfiable dependency graphs.
  • API drift risk (high): SMS gateways revise endpoints, auth (API key vs OAuth), and sender-ID rules frequently. An unmaintained wrapper silently breaks at the provider's next deprecation.
  • Security risk (medium): third-party code from an unvetted personal repo in a payment-adjacent or PII-adjacent path (SMS is both — OTP delivery, order notifications). No visible security review, no CVE watching.
  • Licensing/provenance risk (medium): no license declared in the available metadata; Bitbucket access may be revoked at the maintainer's discretion, breaking reproducible builds.
  • Abandonment risk (very high): single maintainer, no releases, no stars, no dependents.

Key questions.

  1. Is this genuinely a Symfony bundle, or does it also ship a Laravel service provider / discovery entry?
  2. Which PHP and Symfony/Laravel versions are declared in composer.json, and does the constraint graph resolve against our current stack?
  3. Which Skebby API generation does it target — the legacy gateway.skebby.it HTTP API or the current REST/JSON endpoints — and does it support the authentication mode our Skebby contract uses?
  4. Is there a declared license, and is the Bitbucket repo readable by our CI service account?
  5. Does it handle delivery-receipt callbacks / DLQs, or fire-and-forget only?
  6. Who is the maintainer's succession plan, and is the repo mirrored anywhere durable?

Verdict: treat as a reference implementation to read, not a dependency to adopt. The cost of a thin in-house Skebby client — one HTTP client, one auth header, one payload builder, one response mapper — is measured in hours, and it removes every dependency risk above.

Integration Approach

Stack fit. Poor as-is. Even in a Symfony application this would need version verification; in Laravel it is a foreign artifact. Skebby's API is plain HTTP+JSON (or HTTP form-encoded on legacy endpoints), which means the idiomatic Laravel fit is not this bundle but a small Skebby\Client service class bound in a service provider, injected as a NotificationChannel behind Laravel's Notification facade.

Migration path. Recommended path, in order:

  1. Audit, don't install. Pull the repo read-only, extract the endpoint URLs, request/response field names, error codes, and auth scheme. This is the real value: a validated map of Skebby's wire format.
  2. Reimplement against a maintained HTTP client. Use guzzlehttp/guzzle (already a transitive Laravel dependency) or Laravel's Http facade. Define a SkebbyClient with send(string $recipient, string $message, ?string $sender): SmsResult.
  3. Wrap as a Laravel Notification channel so SMS sending is expressed as $user->notify(new OrderShipped($order)) — decoupled from the vendor, swappable later.
  4. Bind via a dedicated service provider with config published to config/skebby.php (credentials, sender ID, timeout, retry policy).
  5. If the team insists on the bundle, contain it: install only inside an isolated adapter class implementing your own SmsGateway interface, so a future swap never touches call sites. Never let the bundle's classes leak into domain code.

Compatibility. Verify against our declared PHP version (assume 8.2/8.3) and Laravel major (10/11). The bundle predates both with high probability. If it declares symfony/framework-bundle: ^2.8|^3.0, it will not resolve.

Sequencing.

  • Week 1: repo audit + Skebby API contract extraction + confirm the provider contract and credentials are active.
  • Week 2: build and unit-test the client and notification channel against a Skebby sandbox/test number; add contract tests with recorded HTTP fixtures.
  • Week 3: integrate into one low-risk flow (internal ops alert), canary, then roll to customer-facing notifications.
  • Defer any decision on adopting the bundle itself to after the audit — most likely the audit eliminates the need.

Operational Impact

Maintenance. Adopting the bundle imports a maintenance obligation with no upstream counterpart. Our team would own Symfony-version bumps, PHP-version bumps, Skebby API changes, and security patches on behalf of a repository with no visible release cadence. The in-house client is ~200 lines and we own it by design — a far cheaper long-term proposition than owning a stranger's bundle.

Support. No SLA, no issue tracker activity to gauge, no changelog. Escalation path is "email the maintainer and hope." For an SMS path that may carry OTPs or transactional customer notifications, that is not an acceptable support posture. Contractual support must come from Skebby (the provider) for API-level issues, and from us for the integration layer.

Scaling. SMS volume is bounded by the provider's throughput and our rate-limit handling, not by this package — but the package's retry/backoff semantics are unknown. Uncontrolled retries on a 429 or a timeout can double-send, which is a direct cost and a customer-trust issue. Design for: idempotency keys where the provider supports them, capped exponential backoff, per-provider rate limiting via Laravel's RateLimiter, and a queue-backed send path so a Skebby slowdown never blocks a request cycle.

Failure modes.

  • Provider outage / 5xx: queue with retries; degrade to email or in-app for non-critical messages.
  • Auth expiry / key rotation: surface clearly in logs, alert on repeated 401s; credentials in a secrets manager, not .env committed to the repo.
  • Silent partial failure: SMS APIs often return 200 with a per-recipient error body. Contract tests must assert on parsed status, not HTTP code alone.
  • Delivery loss: no delivery-receipt handling means no visibility into non-delivered messages. Add receipt callbacks if Skebby offers them; otherwise track "sent" as the terminal state and set expectations.
  • Build breakage: Bitbucket repo going private or 404 mid-quarter kills CI. If adopted at all, vendor the source into our monorepo with a recorded commit SHA and license header.

Ramp-up. Low for the in-house path: one engineer, a day or two, given the extracted contract. Higher for the bundle path — an engineer must first reverse-engineer Symfony-vs-Laravel bridging, pin compatible component versions, and build test coverage the package lacks. The bundle's only genuine accelerant is documentation-by-code of Skebby's API surface, and that benefit is fully captured in the audit step without the dependency.

Recommendation. Do not add zen/skebby-bundle to composer.json. Treat it as a specification artifact: mine it for the Skebby integration contract, then implement a first-party, provider-agnostic SmsGateway interface with a SkebbyClient adapter behind Laravel's notification system. Revisit only if upstream publishes a Laravel-compatible release with a declared license, active maintenance, and Packagist distribution.

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.
htinlynn/genius-helper
maco-studios/hephaestus
elmogy/larafast
xeviant/laravel-paystack
gorilladash/laravel-website-sdk
martialbe/flysystem-oss
chondal/3312client
jeroen-g/flickr
opscale-co/nova-genbi
itsjustvita/laravel-retention
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