Download the PHP package kstmostofa/laravel-whatsapp without Composer
On this page you can find all versions of the php package kstmostofa/laravel-whatsapp. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Download kstmostofa/laravel-whatsapp
More information about kstmostofa/laravel-whatsapp
Files in kstmostofa/laravel-whatsapp
Package laravel-whatsapp
Short Description Dual-backend Laravel package for WhatsApp: Meta Cloud API + bundled whatsapp-web.js sidecar. Ships a Livewire/Flux admin UI, queued jobs, webhooks with HMAC, Eloquent models, broadcasting, and CLI lifecycle commands.
License MIT
Homepage https://kstmostofa.github.io/laravel-whatsapp/
Informations about the package laravel-whatsapp
Laravel WhatsApp
Dual-backend WhatsApp integration for Laravel β Meta Cloud API (pure PHP) +
whatsapp-web.jssidecar (full personal-account access), with a polished Livewire admin UI and a singleWhatsApp::facade across both.
π Full documentation: kstmostofa.github.io/laravel-whatsapp
What you get
| Layer | What it does |
|---|---|
| Cloud API client | Pure PHP. Templates, media, business profile, phone-number management, webhooks with HMAC verification. |
| Web sidecar (~300 LOC Node) | whatsapp-web.js wrapped in a thin HTTP service. Personal-number QR pairing, groups, status, free-form messages anytime, contact lookup. |
| Unified facade | WhatsApp::messages()->sendTemplate(...) for Cloud, WhatsApp::web('main')->messages()->sendText(...) for sidecar. WhatsApp::send($to, $body) auto-picks. |
| Livewire + Flux UI | Drop-in admin at /whatsapp β Dashboard, Sessions+QR, Compose, Conversations (chat-bubble UI with media, edit/delete, search, sound, ack ticks), Groups, Contacts, Webhooks log, Status. Works with Tailwind, Bootstrap, or no CSS framework at all. |
| Eloquent models | Opt-in WaSession / WaMessage / WaContact with separate-DB support via WHATSAPP_DB_CONNECTION. |
| Background bridge | whatsapp:web:listen daemon turns sidecar SSE events into Laravel events. |
| Health monitoring | WhatsApp::status page + php artisan whatsapp:health [--json] for CI/monitoring. |
Quick install
For the Cloud API β set in .env:
For the Web sidecar β pair your phone:
Quick example
When to use which backend
| Feature | Cloud API | Web sidecar |
|---|---|---|
| Personal-number QR pairing | β | β |
| Send to / receive from groups | β | β |
| Status / Stories | β | β |
| Free-form messages anytime | β (templates outside 24h) | β |
| Approved business templates | β | β |
| Official, no ban risk | β | β (browser automation β ToS gray area) |
| Scalable to millions | β | β οΈ session-bound |
| No extra runtime on host | β | β (Node + Chromium) |
Most apps use both β Cloud API for transactional/template sends at scale, Web sidecar for the features Cloud API doesn't expose.
UI install paths
The admin UI under /whatsapp works on whatever your app already uses:
| Your app uses⦠| Set in .env |
What you get |
|---|---|---|
| Tailwind v4 + Vite | WHATSAPP_UI_CSS_MODE=vite (default) |
Smallest tree-shaken bundle. Add 3 @source lines to your app.css. |
| Anything else (Tailwind v3 / Bootstrap / plain CSS / nothing) | WHATSAPP_UI_CSS_MODE=standalone |
Pre-compiled CSS shipped with the package, served from /whatsapp/_assets/laravel-whatsapp.css (~32 KB gz). No npm/Tailwind needed. Loads only on /whatsapp/* pages β your main app stays untouched. |
| No UI at all | skip composer require livewire/flux |
Headless. Full access to WhatsApp:: facade, Events, Jobs, webhook receiver, all CLI commands. |
Full setup details + dark mode + screenshots β docs site.
Artisan commands
| Command | Purpose |
|---|---|
whatsapp:sidecar:install |
Clone whatsapp-web.js, npm ci, download Chromium |
whatsapp:sidecar:start / :stop / :status |
Lifecycle of the Node process |
whatsapp:web:listen [session] |
Long-running: sidecar SSE β Laravel events |
whatsapp:health [--json] [--exit-code] |
Health probe β pipe into cron / monitoring |
Production checklist
- [ ] Set strong
WHATSAPP_WEB_TOKEN(shared secret between PHP and sidecar) - [ ] Set
WHATSAPP_APP_SECRET(HMAC for Cloud webhook signatures) - [ ] Wrap
/whatsapp/*routes in your own auth middleware:config/laravel-whatsapp.phpβui.middleware - [ ] Run
whatsapp:web:listenunder Supervisor / systemd, one process per session - [ ] Optional: isolate WA data on a separate DB connection (
WHATSAPP_DB_CONNECTION=whatsapp) - [ ] Optional: enable broadcasting (
WHATSAPP_BROADCAST=true) + run Laravel Reverb for instant UI updates
Detailed deployment guide β docs/production.
Roadmap
- [x] Cloud API: messages / templates / media / business profile / phone numbers / webhooks
- [x] Web sidecar: full whatsapp-web.js surface (text, media, groups, contacts, status)
- [x] Livewire + Flux admin UI with dark mode, 3 CSS install paths
- [x] Eloquent persistence with per-package DB connection
- [x] Health page + CLI command + cached snapshots
- [x] Avatar + media proxy with server-side caching
- [x] Bubble actions: edit, delete-for-me, delete-for-everyone, "you deleted this message" placeholder
- [ ] Bulk send job with rate limiting
- [ ] Native broadcasting integration with
Echochannel listeners - [ ] Template builder UI (currently API-only)
Status
- 46 tests passing, 133 assertions (testbench + mocked Guzzle + Livewire smoke tests)
- Compatible with Laravel 11 / 12 / 13 β tests run green against L13.11 + PHPUnit 12 on PHP 8.5
- PHP minimum: 8.2 on Laravel 11/12, 8.4 on Laravel 13 (Symfony 8 transitive)
- Verified end-to-end in Laravel 12: QR pairing, inbound webhook β DB β UI bubble, edit, delete, sound, attachments, dark-mode toggle
License
MIT. See LICENSE.
Contributing
Issues + PRs welcome at github.com/kstmostofa/laravel-whatsapp. Please run vendor/bin/phpunit locally before submitting.
All versions of laravel-whatsapp with dependencies
illuminate/console Version ^11.0|^12.0|^13.0
illuminate/contracts Version ^11.0|^12.0|^13.0
illuminate/http Version ^11.0|^12.0|^13.0
illuminate/support Version ^11.0|^12.0|^13.0
guzzlehttp/guzzle Version ^7.5
symfony/process Version ^7.0|^8.0