DEV Community

Forenche
Forenche

Posted on

Forward Check - I built Dhroov an offline bouncer for the family WhatsApp group

Hacktoberfest Weekend Challenge: Build for a Friend Submission 🤝

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

What I Built

Dhroov is my friend, and like everyone in India, he's in WhatsApp groups that get roughly 3 forwards a week that make you stop and wonder, like "Please forward this file to your company's accountant, new RBI guidelines apply from next week." Nobody wants to be the one who replies "this is fake" and starts a fight, so the forwards keep travelling.

Forward Check is a small app that sits between "received" and "forwarded". Paste a message in and it gives you:

  • a verdict: likely fake, suspicious, probably harmless, or can't tell
  • the specific warning signs it spotted (urgency, "doctors say" with no doctor, KYC links, miracle cures)
  • what to do about it
  • a short, non-condescending reply in English, Hindi or Marathi that you can post in the group without starting a war

The point isn't to make anyone feel stupid. It's to give a second opinion before hitting forward.

Demo

Forward Check running locally

Forward Check flagging a fake RBI message Dhroov tested

Code

Forward Check

A local, offline checker for WhatsApp forwards. Paste a forward, get a verdict, the warning signs it shows, and a polite reply you can drop in the family group. English, Hindi or Marathi.

Runs an open-weight Gemma model through Ollama. No API keys, no cloud, nothing leaves your machine.

Run it

# 1. Install Ollama from https://ollama.com, then:
ollama pull gemma3:4b

# 2. Install and start the app
pip install -r requirements.txt
python app.py
Enter fullscreen mode Exit fullscreen mode

Open the local URL Gradio prints.

Use a different model with MODEL=gemma3:12b python app.py (needs more VRAM), or point at another Ollama host with OLLAMA_URL.

Limits

It has no internet access, so it cannot verify facts. It spots manipulation patterns: urgency, fake authority, miracle cures, KYC/OTP scams, outrage bait. A well-written lie with no red flags can get through. It says so in every result.

License

MIT




How I Built It

The whole thing is one Python file, around 130 lines.

  • Model: Gemma (gemma3:4b), an open-weight model from Google, running locally through Ollama. On my laptop's RTX 4060 (8 GB) it answers in a few seconds.
  • UI: Gradio, so there's a paste box and a button and nothing else to learn.
  • Structured output: Ollama's format: "json" mode forces the model to return a fixed shape (verdict, summary, red flags, advice, reply), which the app renders. Low temperature keeps verdicts consistent.

The most important design decision was in the prompt: the model is told it has no internet and must never claim it verified anything. A small local model will happily invent "according to PIB Fact Check..." if you let it, which would make the tool another source of misinformation. So it judges messages on manipulation patterns instead of pretending to know the truth, and every result says it wasn't fact-checked. Health claims always get "check with a doctor"; anything with money or links gets "don't click, don't share OTPs".

Why Does Open Innovation Matter?

  • The family group stays in the family. Forwards contain names, phone numbers, photos of relatives and people's health worries. Running the model locally means none of that is shipped to a third-party server to be logged.
  • It costs nothing to run. No API bill, no free tier that disappears. Dhroov can use it forever.
  • It works offline. The model runs entirely on my laptop with no cloud dependency.
  • I can swap or tune the model. If a bigger Gemma or a model fine-tuned on Indian misinformation datasets comes along, it's a one-line change (MODEL=...). Nobody can deprecate it out from under me.

Where a closed API would win: it could be connected to live fact-check sources. That's the honest trade-off, and it's why the tool calls itself a warning-sign spotter, not a fact-checker.

What Dhroov Said

"I think it’s a fair assessment of the msg it does not just claim it as scam or safe so I feel it’s better"

Prize Categories

Best Use of Gemma

Top comments (0)