← All projects
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.