So I stopped being lazy and tried to solve a problem that has been bothering me for a while with the help of Claude Opus. For context, I know nothing of coding, I’ve never studied it formally and my field of work has very little in common with coding or software.
However, as a hobbyist with interest in tech and PCs, I’ve picked up a few things through sheer osmosis by reading and watching tons of youtube. I may struggle to write “Hello world” without clear instructions but I can understand and follow manuals and docs, fiddle around with trial and error and figure out stuff that way.
So this is my attempt to vibe-code with AI and figure out a solution to a problem that is annoying me in every day life. It might not be for everyone, but I am just so glad that people like me with such minimal background can use these tools and build solutions without bothering another human.
The Problem
Like many of you, my Whatsapp is filled with random groups, so much so that it has become an annoying task to keep track of everything. Some large groups fill up so fast that you can’t even read half of them if you aren’t constantly online. Most of these are hobby based, like 3d-printing or homelabbing etc. I have also joined a few deal-sharing or buy-sell groups, and I find the same users posting across different communities with the same messages every day, and I hate reading duplicate/same messages. The same deal, meme, or news gets forwarded to 10 different groups.
Another issue is Whatsapp search is quite limited and cumbersome. Whenever I am searching something, I can only see half the text in results and have to open individual chats to see if the results actually match my query.
I am not sure if there already exists a tool to organize and de-duplicate messages for me so that I can easily read through and don’t waste my time every day scrolling long chats. I tried searching for one, but couldn’t find much info.
The Solution
I told Claude Opus what problems I was facing and asked how it would handle it. And after a few hits and misses, this is what it came up with.
GitHub - bakasur-te/whatsapp-dedup-dashboard: Self-hosted WhatsApp message deduplication dashboard
WhatsApp Dedup Dashboard is a self-hosted application that:
- Captures all incoming messages in real-time
- Automatically detects duplicates (same sender + same content = duplicate)
- Stores only unique messages in a searchable database
- Provides a clean web dashboard to browse, filter, and search
How It Works
WhatsApp Web ──→ whatsapp-web.js ──→ Deduplication ──→ SQLite DB ──→ Dashboard
↓
Telegram Bot (optional)
Message Flow
- You scan a QR code to link WhatsApp Web
- All incoming messages are captured via
whatsapp-web.js - Each message gets a unique hash (SHA-256 of sender + content)
- If the hash already exists → marked as duplicate, not stored
- Unique messages are saved to SQLite with full metadata
- Media files are deduplicated by content hash (same image = stored once)
Deduplication Logic
| Message Type | How Duplicates Are Detected |
|---|---|
| Text | SHA-256(sender_id + message_body) |
| Image/Video | SHA-256(file_content) |
| Mixed | Both checks applied |
Key Features
Dashboard
- Dark-themed, responsive web UI
- Filter by: links, prices, media, date range, specific chats
- Full-text search across all messages
- Click to view images/videos
Backup Export
I am keeping all files locally, so right now, they are all unencrypted for ease of use.
- Export all unique messages as browsable HTML files
- JSON export for data portability
- Media files included
- View offline on any device
Telegram Forwarding
This is an optional feature. One may or may not want to use it. I included it mostly for buy/sell groups so that I can keep track of all deals in a single place without going through multiple groups.
- Select specific groups (e.g., buy/sell groups), and ignore other groups like friends or hobby ones
- Forward unique messages to a Telegram channel
- 30-second merge window: Multiple messages from same sender get combined
- Never miss a deal, without the spam
Auto-Cleanup
- Group messages: deleted after 30 days
- Individual chats: kept forever
- Orphaned media files: auto-removed
Technology Stack
| Component | Technology |
|---|---|
| Backend | Node.js 20 |
| WhatsApp Integration | whatsapp-web.js (Puppeteer-based) |
| Database | SQLite (via better-sqlite3) |
| Web Server | Express.js |
| Frontend | Vanilla HTML/CSS/JS |
| Deployment | Docker |
Who Is This For?
Good fit if you:
- Are in many WhatsApp groups with overlapping content
- Want to search across all groups in one place
- Need a local, unencrypted backup of your messages
- Want to forward specific group messages to Telegram
- Have a home server or VPS to run Docker
Not for you if:
- You only use WhatsApp for 1:1 chats
- You don’t have a server to host it
- You need real-time sync across devices (this is view-only)
Privacy & Security
- 100% self-hosted — Your data never leaves your server
- No cloud dependencies — Works offline after initial setup
- Unencrypted storage — You can read/export your own data anytime
- Open source — Audit the code yourself
I am hosting it on my home ubuntu server. No plan to use cloud anywhere in this workflow.
Getting Started
- Clone the repo
- Run
docker compose up -d --build - Scan QR code at
http://your-server:3000 - Done!
Full instructions in the README file.
I did this over the weekend with Claude Opus in Google Antigravity. I have some other features I plan to add to this, like links filtering or AI summary of a single chat, but that might take some time, some other free weekend maybe.
I can’t imagine what these AI chatbots will be capable of coding in days to come. Have you guys also used vibe-coding to figure out any personal solutions? I would love to hear your experiences.


