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.
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.
illuminate/support version, producing unsatisfiable dependency graphs.Key questions.
composer.json, and does the constraint graph resolve against our current stack?gateway.skebby.it HTTP API or the current REST/JSON endpoints — and does it support the authentication mode our Skebby contract uses?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.
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:
guzzlehttp/guzzle (already a transitive Laravel dependency) or Laravel's Http facade. Define a SkebbyClient with send(string $recipient, string $message, ?string $sender): SmsResult.$user->notify(new OrderShipped($order)) — decoupled from the vendor, swappable later.config/skebby.php (credentials, sender ID, timeout, retry policy).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.
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.
.env committed to the repo.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.
How can I help you explore Laravel packages today?