The Problem Nobody Was Building For

India has over 1 million ASHA workers — Accredited Social Health Activists — who visit 8 to 10 households every single day across rural villages. They track pregnancies, child nutrition, TB, hypertension, and dozens of other health programmes simultaneously. They are the backbone of India's public health system.

Yet when I looked at every healthtech product in India, the picture was the same: tools built for doctors, tools built for urban patients, tools built for hospitals. Not one AI product built for the person actually walking into the village home.

ASHA workers make life-or-death triage decisions entirely by instinct. They fill out paper forms for 30+ minutes after every visit. And every single one of those tools, if they exist at all, is in English — a language most ASHA workers can't read fluently.

That gap is what ASHA Copilot is built to close.

What It Does

ASHA Copilot is a voice-first, Hindi-supported Progressive Web App for ASHA workers. The entire flow takes under 60 seconds:

  1. Worker logs in with phone number + 4-digit PIN (no email, no OTP)
  2. Dashboard shows households sorted by AI-assessed risk — highest urgency first
  3. Worker taps a household, presses the mic, and speaks symptoms in Hindi
  4. Gemini 2.5 Flash classifies severity as High / Moderate / Low using NHM ASHA protocols
  5. Worker sees a plain Hindi action: "Aaj hi PHC refer karein" + up to 3 specific danger signs
  6. One tap auto-generates a professional 4-section visit report for the PHC supervisor

No typing. No English. No guessing.

How I Built It

The build was structured into 8 strict phases, each gated by a passing end-to-end test before moving forward.

Phase What Was Built
P0 Next.js 14 + TypeScript + Tailwind, Vercel config
P1 MongoDB Atlas schemas — Worker, Household, Visit
P2 Gemini 2.5 Flash triage engine + NHM prompt + Groq fallback
P3 Phone + 4-digit PIN auth, JWT tokens, protected routes
P4 Dashboard, Visit, Triage result, Report screens
P5 Auto visit report generation via Gemini
P6 next-intl i18n, Hindi/English toggle, Web Speech API hi-IN
P7 5 demo households seeded, 60-second flow verified

P2 was the architectural core. The NHM-aligned triage prompt, the structured JSON response schema (severity, action_hindi, danger_signs[], reasoning), and the Groq Llama 3.3 70B automatic fallback — everything else in the app scaffolds around this one piece.

Stack: Next.js 14 · TypeScript · MongoDB Atlas · Gemini 2.5 Flash · Groq Llama 3.3 70B · Web Speech API (hi-IN) · Groq Whisper · next-intl · Noto Sans Devanagari · PWA · Vercel

The Hardest Part: Making AI Speak Hindi Correctly

The biggest technical challenge wasn't the voice input or the triage logic in isolation — it was making them work together reliably in Hindi.

Web Speech API with hi-IN locale works well on modern Android devices. But in noisy field conditions or on older phones, it degrades fast. So every voice session has a Groq Whisper audio fallback that kicks in silently. The worker never sees an error — the system just switches.

On the AI side, getting Gemini to produce clinically appropriate Hindi output required careful prompt engineering. Generic medical prompts produce generic output. The NHM ASHA protocol framing — specific to the exact conditions ASHA workers encounter — was what made the triage actually useful rather than just technically functional.

The other challenge was font rendering. Devanagari on low-DPI Android screens with a standard system font looks broken. Noto Sans Devanagari, loaded via Google Fonts with explicit subsetting, was the fix that made Hindi text feel native rather than an afterthought.

What I Learned

Building ASHA Copilot taught me that the hardest design constraint is designing for someone whose context you've never lived in. Every default assumption I had — that users are comfortable with OTP flows, that English labels are acceptable, that typing is fast — was wrong for this user.

The right question wasn't "how do I add Hindi support?" It was "what if Hindi was the only language this product ever knew?"

I also learned that AI reliability in a demo is a product problem, not just an infrastructure problem. Having Gemini as primary and Groq as automatic fallback meant I stopped worrying about API downtime during the demo and started focusing on what the product actually does for the worker.

What's Next

  • Integration with ASHA-Soft, the NHM's official government platform, which already exposes an API for third-party tools
  • Offline-first triage using a smaller on-device model for areas with no connectivity
  • Supervisor dashboard showing village-level health trends across all workers in a block

Try it now: **asha-copilot.vercel.app* · Demo login: 9999999999 / PIN 1234*

Built With

  • api
  • app
  • css-frameworks-&-libraries-next.js-14
  • edge
  • google-fonts
  • google-gemini-2.5-flash
  • groq
  • groq-llama-3.3-70b
  • groq-whisper-browser-apis-web-speech-api-(hi-in-locale)-authentication-json-web-tokens-(jwt)-other-tools-google-fonts
  • html
  • javascript
  • json
  • mongodb
  • mongodb-atlas
  • mongoose
  • next-intl
  • next.js-14
  • noto
  • noto-sans-devanagari-platforms-&-deployment-vercel
  • progressive
  • progressive-web-app-(pwa)-cloud-services-mongodb-atlas
  • react
  • sans
  • speech
  • tailwind
  • tailwind-css
  • tokens
  • typescript
  • vercel
  • vercel-edge-network-databases-mongodb-ai-&-ml-apis-google-gemini-2.5-flash
  • web
Share this project:

Updates

Submission history