
Crumbs — Diet & Symptom Tracker for Digestive Conditions
Overview
Crumbs is a mobile app built for people living with IBS, BAM, coeliac disease, FODMAP sensitivities, and other digestive conditions. It helps users track what they eat, log symptoms, and uncover the hidden patterns between food and flare-ups — all without sending a single byte of data off their device.
The app was born from a real gap in the market: generic food trackers don't understand digestive health, and medical apps are often clunky and clinical. Crumbs sits in the middle — purpose-built for gut health, designed to be fast to use in the moment, and smart enough to surface insights that would take weeks to spot manually.
The Problem
For millions of people with digestive conditions, identifying food triggers is a slow, frustrating process. The standard advice is to "keep a food diary" — but paper diaries are tedious, and most apps aren't built for this use case. They track calories and macros, not whether your lunchtime pasta caused bloating three hours later.
Key challenges Crumbs addresses:
- Digestive lag makes cause-and-effect invisible. A meal might not trigger symptoms for 2–8 hours. Without tooling that accounts for this delay, patterns stay hidden.
- Trigger foods are highly individual. There's no universal "bad food" list. What triggers one person's IBS is perfectly fine for another. Users need personalised correlation data, not generic advice.
- Logging fatigue kills compliance. If it takes more than 30 seconds to log a meal, people stop doing it. Every tap matters.
- Privacy is non-negotiable. Health data is deeply personal. Users shouldn't need to create accounts or trust cloud servers with their medical information.
Tech Stack
| Layer | Technology |
|---|---|
| Framework | Flutter 3.11+ / Dart |
| State Management | Riverpod |
| Database | SQLite via Drift (type-safe ORM with code generation) |
| Charts | fl_chart |
| Voice Input | speech_to_text (native device SDK) |
| Monetisation | Google Mobile Ads (AdMob) + RevenueCat (IAP) |
| Platforms | iOS and Android from a single codebase |
Key Features
Smart Food Logging
Users type a free-text description of what they ate, and the tag suggestion engine kicks in immediately. It uses a greedy n-gram matching algorithm against a bundled dictionary of 500–800 keyword-to-tag mappings. Tags are organised into 36 categories spanning ingredients, allergens, and preparation methods. Additional options include portion size, saved meal templates, and voice input via native speech recognition.
The Lag Timeline
The app's signature feature. A dual-track lag timeline displays foods on one track and symptoms on a parallel track, with an adjustable lag offset of 0–8 hours. Slide the offset and watch symptoms align with the meals that actually caused them.
Correlation Engine
An isolate-based correlation engine scores every food tag against symptom occurrence, using confidence tiers from "insufficient data" through to "pattern observed" at 15+ logs. It also identifies safe foods — tags with 15+ logs and a symptom follow rate below 10%.
Analytics Dashboard
Symptom frequency charts, severity trend lines, Bristol trend charts, calendar heatmaps, and a correlation dashboard ranking trigger and safe foods with confidence indicators.
Privacy by Design
All data stored in on-device SQLite — no cloud sync, no accounts, no servers, no analytics SDKs. Health data never leaves the device unless the user explicitly exports it. Full CSV, JSON, and PDF export for medical appointments.
Technical Highlights
| Aspect | Detail |
|---|---|
| Tag suggestion | Greedy n-gram matching — fast, offline, no API dependency |
| Correlation scoring | Background isolate computation with confidence tiers |
| Database | 11-table schema with type-safe Drift ORM and migration support |
| State management | 18 Riverpod providers with async database integration |
| Codebase | 114 Dart files, 20,000+ lines of code |
| Offline-first | 100% functional without network connectivity |
Interested in a similar project?
Get in Touch