node whatsapp sqlite maplibre
MapTap Scoreboard
A WhatsApp bot that reads the daily maptap.gg scores my friends post in our group chat and turns them into a leaderboard with streaks, podiums and 🔥/😱 badges.
My friends and I play maptap.gg every day and post our scores in a WhatsApp group. This bot sits in that group and keeps score.
How it works
The bot joins WhatsApp as a linked device, the same way WhatsApp Web does. When a message has a Final score: line, it pulls out the total and the five round scores:
www.maptap.gg July 20
88🎉 96🔥 97🔥 97😱 7😱
Final score: 690
- The date comes from the post, not the clock, so a score posted at 00:10 still counts for the right day.
- Players are tracked by WhatsApp ID, so renaming yourself doesn’t split your history.
- Posting again replaces your score for that day, which makes corrections easy.
- Seasons are just a date filter, so starting a new one doesn’t delete anything.
On top of the scoreboard, it posts daily and weekly summaries, and has a friends-only globe and custom geo games where you tap your answer on the globe.
It’s one Node process with SQLite and Express, running in Docker on my personal cloud.