S
Back to portfolio
Project · 2025

Tummie.

AI gut-health companion

Role
Mobile · backend · AI · UI design
Year
2025
Stack
React Native · Expo · Node.js
image placeholder
Tummie — product hero
public/tummie/hero.png

Tummie is a React Native gut-health app I built end-to-end — mobile, backend, AI, design. Users log food, water, bowel data, symptoms and cycle days; an LLM pipeline detects patterns, generates a personalized treatment plan, and forecasts how the next 7 days might feel. Tracker apps already log; Tummie's job is to find the signal in the log.

3 min read·2025·by Shada Daab·
Ch. 01The problem

Logging is the easy part. Finding the trigger is the product.

People with IBS, SIBO and similar conditions are told to keep food diaries. Most apps log and stop there. Tummie has to actually answer the question users came for: what's making this worse, what's helping, and what should I try tomorrow? That meant building an analysis pipeline on top of the logger, not bolting one on later.

  • Daily logs: gut feeling, symptoms, foods, bowel data, water, period days.
  • AI analysis: pattern findings, detected conditions, root causes, plan tasks.
  • Personalized plans with daily actions, milestones and gentle reminders.
image placeholder
Logging → analysis → plan
public/tummie/01-loop.png
Fig 1Logging → analysis → plan
Ch. 02Architecture

Expo + Express + Supabase + a scheduled AI layer.

Frontend is a React Native (Expo) app with expo-router, Reanimated, gesture handler, secure-store auth, and Zustand for state — twelve domain stores cover auth, home, log, plans, patterns, results, periods, content, notifications, subscription, theme, and the conversion-onboarding flow. Backend is Express 5 on Node 22 talking to Supabase Postgres, with `node-schedule` running cron jobs that batch-analyze logs and refresh plans overnight. Push notifications via the Expo Server SDK.

Backend is Express 5 on Node 22 talking to Supabase Postgres, with `node-schedule` running cron jobs that batch-analyze logs and refresh plans overnight.
  • Expo 54 + RN 0.81 + Expo Router 6 + Reanimated 4.
  • Express 5, helmet, rate-limit, zod, multer for image uploads.
  • Supabase Postgres + AI-generated tables: user_plans, plan_daily_actions, plan_milestones, plan_tasks, pattern_findings, detected_conditions.
  • OpenRouter API with Gemini 2.5 powering the analysis layer.
image placeholder
Mobile · API · DB · scheduler
public/tummie/02-architecture.png
Fig 2Mobile · API · DB · scheduler
Ch. 03The interesting part

Adaptive logging — the questions change as you log.

A static form bores users into giving up. Tummie's `adaptive-logging.service` asks follow-up questions based on what you've already logged today: ate spicy → check for reflux; logged bloating → ask about fermented foods last meal. Less form, more conversation. The follow-ups are LLM-generated against a tight schema so the answers stay analyzable.

image placeholder
Adaptive logging flow
public/tummie/03-adaptive-logging.png
Fig 3Adaptive logging flow
Ch. 04Gut score with cycle awareness

A daily metric that knows about your hormones.

Gut symptoms in menstruating users shift dramatically across the cycle. A flat score that ignores that misleads users. Tummie's `scoring.service` applies cycle-aware modifiers — luteal week boosts the bloating baseline, late-luteal expects energy dips — so a user doesn't see 'you're getting worse' when their body is doing what it always does on day 24.

Gut symptoms in menstruating users shift dramatically across the cycle.
  • Predictions service forecasts energy, mood and bloating risk for the next 7 days.
  • Solutions service surfaces 'today's support items' based on symptoms + cycle phase.
  • Recommendations service shows articles in `library/` matched to current context.
image placeholder
Gut score & 7-day forecast
public/tummie/04-gut-score.png
Fig 4Gut score & 7-day forecast
Ch. 05Designing for empathy

Friendly, never clinical. No streaks to break.

Bowel-data apps can feel like medical paperwork. I designed the UI to feel like a warm notebook — soft illustrations (Fraunces + Plus Jakarta Sans pairing), haptics on confirms, no shaming red icons. There are no streaks to break. Reflections are weekly, not daily, because that's when patterns actually emerge and analysis is meaningful. The paywall (Superwall + RevenueCat) is honest about what's free vs paid.

image placeholder
Onboarding & illustration system
public/tummie/05-design.png
Fig 5Onboarding & illustration system
— fin —

built by one person · case study written by the same person