AKHIL SINGH
NAMEPHONEDUEHi {{Name}},Hi Asha,Hi Ravi,

A local-first desktop app that lets shopkeepers send order updates and reminders over their own WhatsApp. Customer lists never leave the machine, and there are no per-message fees.

The problem

Small shops notify customers on WhatsApp: order ready, bill due, festival greetings. The options were typing messages one by one on a phone, or paying a monthly fee to a gateway that uploads the shop's customer list to someone else's server.

What I built

ShopMsg runs on the shop owner's own computer. They open it in a browser, pair WhatsApp once by scanning a QR, and upload an Excel or CSV sheet of customers.

  • Templates with placeholders like {{Name}} and {{Amount}}.
  • Saved customer lists, so a sheet is imported once and reused.
  • Run history with per-contact status, the exact message each customer got, and a CSV export.
  • Customer replies captured in the app and linked to the broadcast they answered.
  • One-click launchers for Windows and macOS with a bundled Node runtime.

How it works

A local Express server serves the UI and drives a WhatsApp Web socket through Baileys. Contact lists, message bodies and the WhatsApp session stay in the user's app-data folder, outside the install directory, so replacing the app can't destroy a pairing.

Sending is paced with randomized delays and a daily cap. Settings are written to a temp file and renamed into place, so a crash mid-write can't corrupt them.

Licensing uses Ed25519 signatures that the app verifies offline. A Cloudflare Worker with D1 handles activation, and the Windows and macOS builds are served from R2.

Outcome

Shipped and sold as a licensed download, now at version 1.0.9 after moving to Baileys 7. It has a marketing and download site.

Need something like this built? contact@akhilsingh.in

Next
tg-vaani →