May 30, 2026
WAMAS: bulk WhatsApp campaigns with Excel, NestJS, and queues
WAMAS is an open-source MVP for bulk WhatsApp campaigns using the Evolution API.
The goal was not to build a full marketing suite. The goal was to make the risky workflow visible and repeatable:
- Upload an Excel file.
- Preview the campaign data.
- Map the phone column.
- Map template variables.
- Create a campaign.
- Deliver messages in the background through a queue.
Architecture
The repository is split into a Next.js dashboard and a NestJS API. PostgreSQL stores campaign data, Redis backs the Bull queue, and SheetJS reads the Excel input.
This split keeps the UI focused on campaign preparation while the backend owns validation, persistence, and delivery work.
Why queues matter
Bulk messaging should not run directly inside a request lifecycle. A queue gives the system room to retry, observe failures, and avoid blocking the operator while delivery continues.
What I would improve next
The next useful steps are campaign-level audit logs, richer delivery states, rate-limit controls, and safer template validation before enqueueing messages.