DEV Community

Cover image for I built a 100% private WhatsApp chat analyzer (Zero servers, zero tracking)
Rahman
Rahman

Posted on Originally published at purplechats.pages.dev

I built a 100% private WhatsApp chat analyzer (Zero servers, zero tracking)

Most chat analysis tools ask you to upload private conversation archives to a remote server.

Even if the site claims "we delete logs immediately," handing unencrypted personal chats to an unfamiliar API is a major privacy compromise.

I built PurpleChats to solve this with one rule: zero backend.

Every calculation—from unzipping .zip exports to generating interactive Spotify Wrapped-style cards—runs strictly in the user's browser.


What It Does

  • 🎁 WhatsApp Wrapped Mode: 3D interactive story cards showing chat streaks, late-night chatter, and response time percentiles.
  • 📊 Group Dynamics: Response latency rankings, conversation starter badges, and interactive interaction graphs.
  • 🔒 100% Client-Side Privacy: No databases, no telemetry, and zero network calls. When you close the tab, the data is gone.

How It Works Under the Hood

Parsing tens of thousands of messages on the main browser thread causes frame drops.

To keep the UI running at a clean 60fps:

  1. In-Memory Unzipping: Uses fflate to unpack .zip archives directly into RAM without saving temporary files.
  2. Web Workers: All regex matching, date normalization, and metric calculations run in a background worker. A 30,000-message chat processes in under 180ms.
  3. Canvas Card Export: Uses html-to-image to let users export shareable metric cards as PNGs directly from the DOM.

Tech Stack

  • Framework: React 18 + TypeScript + Vite
  • Styling: Tailwind CSS (editorial warm-paper design)
  • Processing: Web Workers + fflate
  • Hosting: Cloudflare Pages (free static CDN)

Try It Out

The project is fully open source under the MIT license. Feedback and contributions are welcome!

Top comments (0)