Free, open-source bulk email & WhatsApp messaging platform
Upload a CSV, personalize with template variables, hit send. No sign-up, no fees, fully offline.
Live App • About • FAQ • Privacy
SendStack lets you send personalized bulk emails and WhatsApp messages to hundreds of contacts. Upload a CSV with your recipient data, write a message template with {{variables}}, configure your sending channel, and go.
Two ways to send:
| Web App | Chrome Extension | |
|---|---|---|
| How | Full dashboard at sender.qobouli.com | Sidebar inside Gmail & WhatsApp Web |
| Any SMTP (Gmail, iCloud+, Outlook, custom) | Gmail compose automation | |
| QR code pairing via whatsapp-web.js | Direct WhatsApp Web messaging | |
| Backend | Self-hosted Node.js server | Zero backend (100% browser) |
- CSV Upload — Drag and drop. Columns auto-detected for email, phone, name
- Template Variables —
{{Name}},{{Company}}, or any CSV column header - Spin Syntax —
{Hello|Hi|Hey}gives each recipient a random variant - Anti-Ban Protection — Configurable delays, jitter, batch cool-downs, daily limits
- Live Progress — Real-time sent/failed/skipped counters, cancel anytime
- WhatsApp Media — Send images, PDFs, documents (up to 16MB)
- Message Delivery Tracking — Pending, sent, delivered, read status for WhatsApp
- 100% Offline — No analytics, no tracking, no external servers. Data stays on your device
- Multilingual — English, Arabic (RTL), Turkish
- Open Source — Full source code, no hidden anything
# Clone
git clone https://github.com/mohamed-arabi16/SendStack.git
cd SendStack
# Install
npm install
# Run
npm run devOpen http://localhost:3000.
Configuring a mailbox in the web app (iCloud, Gmail, privateemail.com, custom): see docs/smtp-providers.md.
| Layer | Tech |
|---|---|
| Framework | Next.js 16 (App Router) |
| UI | React 19, TypeScript 5, Tailwind CSS 4 |
| Nodemailer 8 (SMTP) | |
| whatsapp-web.js 1.34 + Puppeteer | |
| CSV | PapaParse 5 |
| Icons | Lucide React |
| Extension | Vite + React + @wppconnect/wa-js |
| Hosting | Vercel |
The Chrome extension lives in chrome-extension/ with its own build:
cd chrome-extension
npm install
npm run buildLoad chrome-extension/dist/ as an unpacked extension in Chrome.
src/
app/
api/ # Email & WhatsApp API routes
dashboard/ # Main sending interface
about/ # About page
faq/ # FAQ page
privacy/ # Privacy policy
components/ # UI components
i18n/ # EN, AR, TR translations
lib/ # WhatsApp client & utilities
chrome-extension/ # Standalone Chrome extension
public/ # Static assets, robots.txt, llms.txt
- No data collection
- No analytics or telemetry
- No accounts or sign-up
- CSV data and credentials stay on your device
- Full privacy policy
Issues and PRs welcome. Open an issue to report bugs or request features.
MIT
Built by Qobouli AI & Dev in Istanbul