Most people think of WhatsApp as “just messaging.”
But after years of conversations, support threads, customer discussions, team coordination, and random life moments… it quietly becomes one of the richest personal datasets you own.
So I built wacrawl-ui — a local analytics dashboard for WhatsApp archives generated by wacrawl.
The idea is simple:
- Your data stays local
- No cloud sync
- No browser extension
- No scraping APIs
- No “AI magic” uploading your chats somewhere
Just a fast local dashboard on top of SQLite.
What’s inside:
- Full-text search (FTS5) – It’s working quite fast. Even on ~100k messages.
- Messaging activity analytics
- Contact insights
- Media browsing
- Response-time patterns
- Word clouds
- Group activity stats
- Read-only local API
- React + Vite frontend
- Express backend
- Zero external dependencies once running – You only need to make sure you run ‘wacrawl sync‘ before.
A few things I found interesting while building it:
- SQLite is still absurdly powerful
People underestimate what you can do locally with FTS indexes and good schema design. - “Local-first” UX matters more than ever
We’ve normalized uploading deeply personal data to random SaaS products. We should challenge that assumption. - Personal analytics is an untapped category
Not surveillance. Not ad targeting.
Tools that help you understand your own data. - Read-only architectures reduce risk dramatically
The app intentionally avoids mutation flows. That constraint simplified security and reliability decisions across the stack.
The whole thing runs with one line:
npx wacrawl-dashboardlatest
No complicated setup.
Still early, but I think there’s a broader shift happening toward:
- local AI – Ollama for the win.
- local analytics – secure, private and handy.
- local search – that works fast.
- user-owned datasets – It’s not for everyone, but it’s useful.
Well, that future feels healthier.
Feel free to check the repo: github.com/greenido/wacrawl-ui and contribute.
Be strong.