Saathi
Voice-first CRM for Indian MSMEs, built on Gemma 4.
A 10-second Telugu voice note becomes a tracked customer plus an AI-drafted WhatsApp follow-up — approved and sent in one tap. Apache 2.0. $0 per shop, per month.
What the owner sees
Same React PWA running on iOS Safari, Android Chrome, and any desktop browser. Captured at 390 × 844 px — the iPhone 15 Pro viewport — so judges can clone the repo and reproduce every pixel.




How Gemma 4 powers the loop
Multimodal intake
Owner speaks 8 seconds in Telugu and photographs the car. whisper.cpp transcribes; Gemma 4 reads transcript + photo together and extracts the license plate, services, and amount.
Native function calling
Every customer write is a Gemma 4 tool call — customer.create or customer.update — emitted by the model. The ?demo=1 flag shows the live trace in the UI.
Multilingual generation
One tap drafts a 2–4 sentence follow-up in the customer's preferred language (Telugu, Hindi, English). Owner edits a word, taps Send. Real WhatsApp via Twilio.
Honest engineering
- ASR is whisper.cpp, not Gemma 4 native audio. Gemma 4 advertises audio input; via Ollama 0.20.2 it hallucinated a generic Telugu greeting. We use whisper-large-v3-turbo for Telugu code-mix (~85% WER).
- The think: false flag is mandatory. Without it, Gemma 4 burns the num_predict budget on a thinking field before emitting tool_calls. 30 minutes to find; documented in the repo.
- Desktop-viewport demo is deliberate. Same code on iOS Safari, Android Chrome, and desktop. We record at 390 × 844 px for reproducibility and tool-call-trace legibility. The owner-to-camera Telugu testimonial is filmed in the shop.
Why this scales
$0 per shop is the only viable price for the bottom 90% of Indian MSMEs. A 1,000-shop region runs for under $1,500/month on Modal serverless.
| Component | Mac pilot | Modal serverless |
|---|---|---|
| Gemma 4 inference | $0 | ~$0.30/hr active, $0 idle |
| whisper.cpp | $0 | bundled in Modal container |
| Supabase | $0 free tier | $0 (free tier headroom) |
| Vercel | $0 | $0 |
| Twilio (WhatsApp IN) | $0 sandbox | $0.005–0.01 per send |
| Total per shop / month | $0 | $0.50–2 |
Try Saathi locally
The intake pipeline runs whisper.cpp and Gemma 4 as Mac-local subprocesses, so the full demo runs from a clone. Setup target: under 10 minutes.
git clone github.com/JagadeepPortfolio/saathi-crm cd saathi-crm npm install cp .env.example .env.local # fill Supabase + Twilio keys brew install ollama whisper-cpp ffmpeg ollama pull gemma4:e4b npm run dev # open http://localhost:3000
Full setup, env-var list, and the validation harness are in the repo README.