- 💬 Two-Way Inbox: Real-time chat sync using SSE (Server-Sent Events) with delivery indicators (✔️ sent, ✔️✔️ read).
- 📢 Bulk Campaigns: High-concurrency broadcast pool using 40 parallel Go workers.
- 📂 Smart Import: Drag & drop numbers from TXT, CSV, or Excel (.xlsx).
- 🔄 Auto Fallback: Dynamically rotates and retries template sends up to 3 times on failures.
- 🏷️ Alias Directory: Inline renaming of contacts saved in SQLite database.
- 🎨 Glassmorphic UI: Modern responsive dark/light style UI.
# 1. Clone & Copy config
cp .env.example .env
# 2. Add credentials in .env
PORT=9090
WHATSAPP_TOKEN=your_token
PHONE_NUMBER_ID=your_id
WABA_ID=your_waba_id
VERIFY_TOKEN=your_token
WEBHOOK_URL=https://your-public-url.com/webhook
# 3. Download dependencies & start
go mod tidy
go run src/webhook.go src/campaign.go src/db.go src/templates.goOpen http://localhost:9090 in your browser.
# Start the container in background
docker compose up -d- Expose port
9090publicly (e.g. via Cloudflare Tunnels). - Set Webhook Callback URL in Meta Developer Console to
{WEBHOOK_URL}/webhook. - Set Verify Token and subscribe to
messages&messages_deliveriesevents.
sends: Outbound campaign delivery statuses.replies: Two-way chat messages.contacts: Name directory list.campaigns: Cached analytics data.
- Akash Yadav (@kodelyx) — Creator & Lead Developer
MIT License.


