Inspiration
It started with a conversation we have all had — or overheard.
A friend said her period app told her she ovulated on day 14. Her doctor said she did not ovulate that month at all. She has PCOS.
That single contradiction unraveled something for us. I started looking deeper, and what I found was staggering — 1 in 5 Indian women lives with PCOS, and almost every cycle tracking app on the market is built on a flawed assumption: a regular 28-day cycle.
For PCOS bodies, those apps are not just inaccurate. They are actively misleading.
LH ovulation strips give false positives because PCOS bodies have chronically elevated baseline LH. Apps recommend Western diets that have never seen ragi or methi. Acne — a direct hormonal signal — is treated as a cosmetic concern and ignored entirely.
I asked one question: What if a period app actually understood the body it was built for?
That became RituAI.
What it does
RituAI is a mobile-first AI health platform that combines four intelligence layers no other cycle app integrates:
1. Adaptive Cycle Engine — Tracks menstrual cycles without assuming regularity. Learns variance from logged history. Maps each day to one of four phases — Menstrual, Follicular, Ovulatory, Luteal — and adjusts dynamically.
2. Skin-Cycle Intelligence — The user takes a 10-second selfie. Claude's vision model analyses five anatomical zones (forehead, cheeks, chin, jawline) and returns severity scores, lesion type breakdowns, and a hormonal interpretation linked to the current cycle phase. Jawline acne in luteal phase? That is androgens. Chin flare two days pre-period? Progesterone dropping. The app reads skin as a biomarker.
3. LH + BBT Cross-Validation — Solves the single biggest reliability problem in PCOS fertility tracking. Cross-references the user's LH strip reading with their basal body temperature to produce a verified ovulation verdict — not a false positive.
4. Saheli — The AI Companion — A Claude-powered conversational AI with the user's complete health profile injected as context on every message. She knows your cycle day, scan history, risk score, and symptoms — so every answer is personal, never generic.
Plus a real-time Composite PCOS Risk Score (0–100), a Clinical Summary exportable via WhatsApp to share with doctors, and an Admin Dashboard for clinics monitoring patient cohorts.
How I built it
I built RituAI as a local-first, AI-augmented mobile app using:
- React Native + Expo SDK 51 for true cross-platform deployment (iOS, Android, web)
- Expo Router v3 for file-based navigation — clean, scalable, and a joy to work with
- TypeScript end-to-end for type safety across our entire data model
- Zustand + AsyncStorage for state management with automatic local persistence
- Supabase (PostgreSQL) as our cloud database with Row Level Security for cross-device sync
- Claude claude-sonnet-4-6 for both vision-based skin analysis and the Saheli AI companion
- React Native Reanimated 3 for 60fps native-thread animations — phase ring, parallax welcome carousel, spotlight tutorial
- React Native SVG — every illustration in the app is drawn in pure SVG, zero image assets
- Expo Camera + Image Manipulator for the skin scan capture pipeline
- Render for free static-site web deployment with SPA routing
The architecture is local-first by design — all health data lives on the user's device by default. It leaves only when the user explicitly shares a clinical summary or invokes an AI feature. That was a deliberate ethical choice — health data is sensitive, and consent must be loud, not buried in a privacy policy.
Challenges I ran into
Camera on web. expo-camera has no web support. Our scan feature would crash the entire web build. Isolved it elegantly with Metro's platform-specific file resolution — scan/index.web.tsx automatically resolves over scan/index.tsx on web, isolating the native dependency without polyfills or runtime checks.
Claude vision JSON parsing. Vision models love adding markdown fences and preambles to their output. I wrote a strict prompt with no preamble allowed and a defensive parser that handles edge cases — empty responses, truncated JSON, hallucinated fields.
Render's Node version chaos. Render defaulted to Node 24, which silently breaks Expo SDK 51's Metro bundler. The build hung at "Starting Metro Bundler" with zero error messages. I pinned Node 20 via .nvmrc and package.json engines after a panicked debugging session.
Designing for irregular cycles. Most calendar UIs assume a fixed cycle. I had to redesign the cycle view from scratch to handle 27-day, 35-day, and missed cycles in the same component without breaking visual continuity.
Claude context window economics. Saheli injects the user's full health profile on every message. I had to balance context richness against token cost — eventually settling on a structured system prompt that captures essential context in under 800 tokens.
Type safety scales trust. TypeScript caught at least a dozen subtle bugs that would have shipped silently. Strict typing across our health data model meant I could refactor the cycle engine on day three without breaking the calendar view.
AI is most powerful when grounded in user data. Saheli is not magical because Claude is smart. She is magical because we inject the right context. The AI is only as personal as the data architecture beneath it.
Hackathons reward shipping, not perfection. I had three "scope creep" moments where we almost added one more feature. I said no. The features I kept — I polished. That focus is why I placed.
A team that communicates well beats a team that codes fast. Every late-night fix happened faster because someone said "hey wait, what if..." Communication is a force multiplier no framework can give you.
What's next for RituAI
Real-device clinical validation. I am connecting with PCOS specialists to validate the skin-cycle correlation model against patient outcomes — turning the algorithm from clever into clinically credible.
Multi-language support. Hindi, Tamil, Bengali, Marathi — coming next. Saheli speaks one language right now. She should speak yours.
Wearable integrations. Apple Health, Google Fit, Oura Ring, Fitbit — passive BBT and HRV ingestion to reduce the manual logging burden.
Federated learning model. As RituAI's user base grows, I want to train a privacy-preserving recommendation model on aggregated patterns — without any individual patient data ever leaving their device.
Clinical partnerships. The admin dashboard is built for gynaecologists.
A community layer. Saheli is one-on-one today. PCOS is lonely. I want to build moderated, opt-in community spaces — anonymous, safe, and built around real cycle phases.
RituAI is just beginning. The cycle continues.
Built With
- anthropic
- babel
- fastapi
- git
- javascript
- npm
- react
- render
- sql
- supabase
- typescript
- zustand
Log in or sign up for Devpost to join the conversation.