DEV Community

Mayank Sharma
Mayank Sharma

Posted on

I built a private WhatsApp digest for my friend who mutes every college group

This is a submission for the Hacktoberfest Weekend Challenge: Build for a Friend

What I Built

My friend Mimi mutes every college WhatsApp group. It's not that she doesn't care, it's that 400 messages a day is unreadable. The result: missed deadlines, missed notices, and the classic "wait, the form was due yesterday?"

So I built WhatsApp Group Digest, a small tool that takes an exported WhatsApp chat and turns it into a short, readable digest:

  • Deadlines and assignments with dates resolved properly (not just "tomorrow")
  • Exams and action items that actually need a response
  • Important updates and a TL;DR so the rest of the chat can stay muted
  • "What did I miss?", a weekly catch-up with key announcements, missed deadlines, events, and the occasional drama

It runs fully on your own machine. The chat never leaves the laptop.

Demo

WhatsApp Group Digest screenshot

To try it: export a group chat from WhatsApp (group name → Export chat → Without media), upload the .txt file on the web page, and get your digest.

Code

WhatsApp Group Digest

For the friend who mutes every college group. Upload a WhatsApp export and get a digest of deadlines, assignments, exams, and action items — powered entirely by open-source AI running locally via Ollama.

Why open?

  • Private: Your chat never leaves your machine. No cloud, no server, no data collection.
  • Offline: Works with no internet connection once the model is pulled.
  • Free: Zero cost to run — no API keys, no usage limits.
  • Swappable: Run Gemma, Qwen, Llama — any open-weight model you choose.

Quick start

# 1. Install Ollama (if you haven't)
curl -fsSL https://ollama.com/install.sh | sh

# 2. Pull a model
ollama pull gemma3:4b

# 3. Start Ollama
ollama serve &

# 4. Install and run the app
npm install
npm start
Enter fullscreen mode Exit fullscreen mode

Open http://localhost:3000.

Export a chat from WhatsApp

  1. Open the group → tap the group name
  2. Export chat →…

How I Built It

The whole thing is deliberately small:

  • Model: Gemma 3 (4B), an open-weight model, running locally through Ollama. The model is configurable with one environment variable, so swapping in Qwen or Llama is a one-line change (OLLAMA_MODEL=qwen2.5:7b npm start).
  • Backend: Node.js + Express. It parses the WhatsApp .txt export, extracts messages with their timestamps and senders, and sends them to Ollama's local API with a prompt asking for a structured digest.
  • Frontend: Vanilla JS + HTML/CSS. No framework, just an upload box and the results. The page also shows basic stats: message count, senders, and date range.

The date problem. Chat messages are full of relative dates: "submit by tomorrow", "exam on Friday", "form closes tonight". Without knowing when the message was sent, those mean nothing, and a small model will happily guess. So the backend passes each message's timestamp along with its text, and the prompt asks the model to resolve relative dates against it. That way "tomorrow" becomes an actual calendar date in the digest instead of a vague word.

Why Does Open Innovation Matter?

Group chats are some of the most private text people have: names, plans, and personal conversations mixed in with the notices. Sending that to a closed API just to get a summary didn't feel right, and it isn't my call to make on behalf of everyone else in those groups.

Running an open-weight model locally gave me things a closed API couldn't:

  • Private: The chat never leaves the machine. No cloud, no server, no data collection.
  • Offline: Once the model is pulled, it works with no internet connection.
  • Free: No API keys, no usage limits, no subscription for a college student to worry about.
  • Swappable: Gemma, Qwen, Llama, any open-weight model works. If a better one comes out next month, I change one variable.

A closed API would have been quicker to set up, but it couldn't make the privacy promise, and for this project that promise is the whole point.

Prize Categories

  • Best Use of Gemma: the digest is generated by Gemma 3 running locally through Ollama.

Top comments (0)