🌸 Looking for our mission and community stories? Visit aasumnari.org
“Aap akeli nahin hain.” — You are not alone.
A voice-based AI health companion for South Asian women navigating perimenopause — built in Telugu, Urdu, and English, because health information should exist in the languages women actually speak.
Live at Mythri — AAsum Nari Voice Companion
Perimenopause affects every woman. But for millions of South Asian women, it happens in silence.
AAsum Nari exists to close that gap.
Mythri (మైత్రి) means friendship. She is the voice companion inside AAsum Nari.
A woman taps the flower, speaks in her language, and Mythri responds — warm, spoken, culturally informed, and free of judgment. Like a knowledgeable friend who happens to know a lot about women’s health.
Mythri follows the Actionable Empathy framework in every response:
Mythri uses a server-side keyword detection engine to identify which symptom cluster the user is describing before calling Gemini. Each cluster maps to specific, hard-coded tips — eliminating generic responses and hallucination risk.
| Cluster | Symptoms Detected | Example Tips |
|---|---|---|
| Vasomotor | Hot flashes, night sweats, flushing, heat | Cooling breath (Sitali), cotton layers, avoid spicy masalas |
| Metabolic | Fatigue, brain fog, weight, memory, focus | Lentils & chickpeas, resistance training, healthy snacks |
| Skeletal | Joint pain, bone ache, stiffness, back/knee | Sesame & almonds, 1200mg calcium, quadriceps exercises |
| Emotional | Mood, anxiety, sleep, insomnia, stress | Box breathing (4-4-4-4), omega-3 seeds, sleep hygiene |
| Urogenital | Irregular periods, bleeding, vaginal dryness | Iron-rich foods, pelvic tilts, safety kit |
Keyword detection works across English, Telugu script, and Urdu script. The why field in each cluster gives Mythri the biological explanation (e.g. “Estrogen affects the brain’s thermostat”) to explain in simple, warm language.
South Asian women aged 35–55, primarily in India and the diaspora, who are experiencing perimenopause symptoms and have nowhere to turn for information in their own language.
🟢 Production Alpha — v15 stability release, actively piloting with testers
iad1) + Singapore (sin1) for India traffic| Layer | Technology |
|---|---|
| Frontend | Vanilla HTML/CSS/JS — no framework, runs in any browser |
| Hosting | GitHub Pages + custom domain (aasumnari.com) |
| AI | Gemini 2.5 Flash via Google AI Studio |
| Text-to-Speech | Google Cloud TTS — Telugu, Urdu, English voices |
| Speech Input | Web Speech API (browser-native) with VAD |
| Backend Proxy | Vercel Pro serverless (private repo: aasum-nari-service) |
| Logging | Axiom — structured session and performance logs |
| VAD | 3-second silence threshold, 60-second max speech |
| Regions | iad1 (Washington D.C.) + sin1 (Singapore) |
User speaks
↓
Web Speech API (browser VAD — 3s silence threshold)
↓
Vercel proxy (api/chat.js) — immediate "received" log to Axiom
↓
Transcript normalization — strips Android STT duplicates
↓
Symptom cluster detection — keyword match across EN/TE/UR
↓
Gemini 2.5 Flash + Pillar tips injected into system prompt
↓
Google Cloud TTS → MP3 audio
↓
Mythri speaks back
↓
Axiom finally log — fires even on timeout or crash
The frontend and backend are intentionally separated — the Vercel proxy protects all API keys and handles CORS for both aasumnari.com and rekhaaasum.github.io.
Every conversation turn logs two entries — an immediate received log on arrival, and a success/error log in the finally block. This ensures India sessions are captured even if the function times out.
{
"backend_version": "chat-15-stability-observability",
"frontend_version": "2026-04-23-v15",
"user_phone": "...",
"session_id": "session_timestamp_random",
"session_source": "frontend | backend_generated",
"language_selected": "te/ur/en",
"symptom_cluster": "Vasomotor | Metabolic | Skeletal | Emotional | Urogenital | unknown",
"device_os": "iOS/Android/Windows/MacOS",
"device_browser": "Safari/Chrome/AndroidWebView",
"latency_ms": 843,
"total_duration_ms": 1420,
"user_speech_duration_ms": 4200,
"region": "iad1 | sin1",
"type": "chat/tts",
"status": "received | success | error",
"error_type": "gemini_timeout | system_error"
}
No transcripts are logged. Privacy by design.
200 with a warm spoken fallback (“I heard you, but my connection is slow — say that in one short sentence”). User hears Mythri instead of hitting a silent tap loop.?u= into the URL.setLang() always carries ?u= through language switches so identity is never lost mid-session.I run community health programs for South Asian women. Again and again, I saw women who had been suffering for years without knowing what was happening to their bodies. Perimenopause is not taught, not discussed, not named.
Mythri is the scalable version of what I do in person — reaching women I can’t reach through library talks or panels. One conversation at a time, in their language.
Built by Rekha — a South Asian woman, community health advocate, and AI product builder with 18+ years of enterprise technology experience across fintech, insurance, and healthcare IT. This project sits at the intersection of two things that matter: closing health equity gaps for South Asian women, and building AI tools that solve real problems for real people.
This is not a portfolio piece. It’s a mission that needed a product.
export default syntax (configured in vercel.json)?u= param — never uses window.location.reload() which breaks mic permissionsunknown in logsaasumnari.com, www.aasumnari.com, and rekhaaasum.github.iowv) flag in user agent — mic blocked, banner shownsession_source: backend_generated in logs signals frontend state failureAPP_VERSION constant in HTML (e.g. 2026-04-23-v15) sent in every API requestBACKEND_VERSION constant in chat.js logged to Axiom on every callnpm install
npm run lint
npm run lint:fix
Every git commit runs ESLint automatically via Husky. Commits blocked on Error-level issues only.
Mythri is not a medical device and does not provide medical advice. She is an informational and emotional support companion. Always consult a qualified healthcare professional for diagnosis and treatment.