scriptdevelop/whatsapp-manager
scriptdevelop/whatsapp-manager is a Laravel/PHP package that helps developers add and manage WhatsApp messaging in their applications, offering a convenient integration layer for message sending, contact or conversation handling, and related WhatsApp workflows.
Architecture fit. scriptdevelop/whatsapp-manager is a conventional Laravel package: a service provider, publishable config, facade, and a thin HTTP client layer over Meta's WhatsApp Business Cloud API (Graph API). It slots into the standard Laravel idioms most teams already use — config publishing, .env-driven credentials, queueable jobs, and an event/webhook ingress point. If the application is Laravel 9–11 and the messaging use case is transactional (OTP, order updates, appointment reminders) rather than high-volume marketing, the architectural shape is a reasonable fit. It is not a framework-agnostic SDK, so adopting it couples the messaging boundary to Laravel's lifecycle.
Integration feasibility. Straightforward on the surface: composer require, publish config, set WHATSAPP_PHONE_NUMBER_ID, WABA_ID, and access token, register the webhook route. The real work sits outside the package — creating the Meta app, provisioning a test WABA number, obtaining a permanent system-user token, verifying business, and getting message templates approved. That Meta-side onboarding, not the PHP integration, is the schedule driver. Webhook verification (hub.challenge handshake) and X-Hub-Signature-256 validation are the two integration points to confirm in a spike before committing.
Technical risk. Material, and mostly maintenance, not capability:
The low aggregate score (1.06) against a high opportunity score (11.54) reads as "real gap in the market, weak incumbent" — which argues for adoption with a wrapper, not adoption as a dependency of record.
Key questions for the maintainer / spike:
X-Hub-Signature-256 verification and provide idempotency hooks?Stack fit. Target Laravel 10/11 on PHP 8.1+, queue driver of choice, Redis for idempotency and rate-limit counters, and object storage for inbound/outbound media. The package occupies the outbound-send and inbound-webhook boundary. Everything upstream — notification routing, template catalogue, opt-in state — should remain application-owned.
Migration path. Adopt behind an internal seam from day one:
WhatsAppGateway interface (sendText, sendTemplate, sendMedia, markRead) and implement it with this package.Compatibility checks before committing. Composer constraint range; PHP version; whether it pulls a conflicting Guzzle or HTTP client version; whether the service provider auto-discovers; whether it registers global middleware or routes you don't want. Pin to a specific commit or patch version and record the SHA in the ADR.
Sequencing.
Maintenance. Budget for a fork-or-patch posture, not passive dependency consumption: pin the version, enable Dependabot, and review upstream monthly. Track Meta's Graph API deprecation calendar independently of the package's release cadence — assume you will be the one who notices the version string is stale. Plan for ~1–2 engineer-days per quarter of stewardship, more if you fork.
Support. GitHub issues only, single maintainer, Spanish-language docs, no SLA. Internally you need a runbook covering: token rotation, number quality-rating degradation, template pause/rejection remediation, and webhook replay. Do not let this package become a dependency the on-call roster doesn't understand.
Scaling. Throughput ceilings are set by Meta, not by PHP: per-number messaging tier limits, pair rate limits, and 429 throttling. The package's job is to surface those errors cleanly; the queue and backoff discipline are yours. Media is the other scaling axis — inbound media must be pulled promptly (Meta's media URLs expire) and persisted; outbound media should be uploaded once and referenced by ID. Webhook volume scales with inbound traffic; make the endpoint stateless, idempotent, and horizontally scalable behind the load balancer.
Failure modes to instrument:
Ramp-up. A Laravel-fluent engineer reaches productive use in ~1–2 days. The real ramp is domain knowledge: Meta Business Manager setup, template approval workflow, messaging-tier mechanics, and the customer-service-window rules. Allocate that learning explicitly — it is not in the package, and the Spanish docs won't teach it. Net recommendation: viable for a focused transactional-messaging use case, adopted behind an internal adapter with a pinned version and a quarterly stewardship budget; not appropriate as the sole messaging dependency for a multi-tenant, high-volume, or compliance-sensitive platform without a fork commitment.
How can I help you explore Laravel packages today?