WA PosterGitHub

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.

  1. Install Node.js

    You need Node.js 20 or newer. Check with:

    node -v
  2. Get the code

    Clone the repository and install its packages:

    git clone https://github.com/sahilKumar1122/wa-poster.git
    cd wa-poster
    npm install
  3. Start the app

    npm start

    Open http://localhost:3000 in your browser.

  4. 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 auth folder, so you scan only once.

  5. 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.

  6. 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.

  7. 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.

  8. 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.