Wapptel
Small and medium businesses want to run WhatsApp marketing campaigns without paying for the official WhatsApp Business API. Wapptel gives them bulk messaging, contact management and campaign tracking on top of WhatsApp Web, with the safety rails (rate limiting, phone validation) to avoid getting numbers banned.
The official WhatsApp Business API is expensive and slow to get approved for a small business that just wants to send a bulk promotion to its customer list. Wapptel solves that by automating WhatsApp Web itself — connect an account by scanning a QR code, then manage contacts, run bulk-messaging campaigns and track delivery from a dashboard, without touching Meta's paid API.
How it works
- A three-tier design: a browser SPA talks to a Django backend, which talks to a separate Node.js microservice that holds the actual WhatsApp Web session.
- Campaigns accept an Excel/CSV recipient list, validate Bangladeshi phone numbers, and send with rate limiting and progress tracking to keep accounts from being flagged as spam.
- Multi-tenant from the start — organizations, users and subscriptions are first-class, not bolted on later.
Technology
Django REST Framework with JWT and API-key auth, PostgreSQL (+PostGIS), Celery and django-redis for background work, drf-spectacular for API docs, and Stripe for subscription billing. The WhatsApp connection itself is a Node.js/Express microservice built on @whiskeysockets/baileys (WhatsApp Web protocol), with Socket.IO for live QR/connection status and PM2 for process management. LangChain/LangGraph on top of OpenAI power smarter reply and campaign-content features.
My Contributions
- Designed the three-tier architecture and built the Django backend end-to-end.
- Built the Node.js/Baileys microservice for WhatsApp Web connection and messaging.
- Implemented the bulk-campaign feature — recipient upload, phone validation, rate-limited sending and progress tracking.
- Set up Celery-based background processing and Stripe subscription billing.