From download to first send in about ten minutes.
You need a computer that stays on while the app runs, and a WhatsApp number you are happy to link.
Install Node.js
You need Node.js 20 or newer. Check with:
node -vGet the code
Clone the repository and install its packages:
git clone https://github.com/sahilKumar1122/wa-poster.git cd wa-poster npm installStart the app
npm startOpen
http://localhost:3000in your browser.Link WhatsApp
A QR code appears. On the phone, open WhatsApp, go to Linked devices, choose Link a device, and scan it. Use a number set aside for this, not your personal one.
The login is saved in the
authfolder, so you scan only once.Add your messages
Choose Import CSV and pick a file with a title column and a message column, or add messages one at a time with New. Until you add any, the app shows four sample messages.
Do a dry run
Select a message and the communities, keep Dry run ticked, and send. Nothing is posted. Check the order and that every group shows done.
Send to one community first
Untick Dry run, select a single community and send. Open WhatsApp and check the message. In announcement-only groups your number must be an admin, or the send fails and the app shows the error.
Send to the rest
Select the remaining communities and send. Twenty groups take about six to seven minutes at the default gap.
Optional extras
Require a password
WA_POSTER_PASSWORD='pick-a-long-password' npm start
The app then shows a login page first.
Keep the computer awake
On a Mac, start with caffeinate -i npm start so scheduled sends are not missed while it sleeps.
CSV format
The first row names the columns. A column called title (or name) becomes the label, and a column called message (or text) becomes the body. Quotes can wrap text that has line breaks.