WAMAS is an open-source MVP for sending bulk WhatsApp campaigns using the Evolution API. The UI is currently in Spanish.
🚀 Built with: Next.js, NestJS, TypeScript, PostgreSQL, Redis, Bull Queue, SheetJS
- Excel upload and preview (SheetJS)
- Campaign wizard with phone-column mapping and template variables
- NestJS API with PostgreSQL and Bull/Redis queue
- Background worker for personalized message delivery
WAMAS/
├── backend/ # NestJS API
├── frontend/ # Next.js dashboard
├── .agent/ # Internal AI agent docs
├── docker-compose.yml
├── start-all.ps1 # Windows helper script
├── check-backend.js # Health check helper
└── README.md
- Node.js 18+
- Docker Desktop (PostgreSQL + Redis)
# Start Docker services and install dependencies when needed
.\start-all.ps1
# Terminal 1 - backend
cd backend
npm run start:dev
# Terminal 2 - frontend
cd frontend
npm run devOpen: http://localhost:3000/dashboard
# From repo root
docker-compose up -d
cd backend
npm install
Copy-Item .env.example .env
npm run start:dev
cd ..\frontend
npm installCreate frontend .env.local:
NEXT_PUBLIC_API_BASE_URL=http://localhost:4000/apiThen run the frontend:
npm run devOptional health check:
node check-backend.js- GET /api - Health check
- POST /api/campaigns/preview - Excel preview
- POST /api/campaigns - Create campaign
- GET /api/campaigns - List campaigns
- GET /api/campaigns/:id - Campaign details
We welcome contributions! Please see CONTRIBUTING.md for guidelines.
- Fork the repository
- Create a feature branch:
git checkout -b feature/amazing-feature - Commit your changes:
git commit -m 'feat: add amazing feature' - Push to the branch:
git push origin feature/amazing-feature - Open a Pull Request
If you encounter issues, check TROUBLESHOOTING.md for common problems and solutions.
This project is licensed under the MIT License - see the LICENSE file for details.
- Frontend: Next.js 16 (App Router), React 19, TypeScript, Tailwind CSS, shadcn/ui
- Backend: NestJS 11, TypeORM, PostgreSQL 15
- Queue: Bull + Redis 7
- Excel: SheetJS (xlsx)
- WhatsApp: Evolution API integration
Made with ❤️ by the open-source community