Inspiration
Living with Crohn's/IBD means constant, tedious tracking: meals, symptoms, bowel movements, meds, and usually in clunky apps you have to stop and tap through during a flare, exactly when you have the least energy. Meanwhile, the data that matters most (lab markers like CRP and fecal calprotectin) sits locked in patient portals you rarely check. We wanted something you could just talk to, that quietly watches your real signals and warns you before a flare instead of after.
What it does
FlareLens is a voice-first companion for Crohn's/IBD. You log meals, symptoms, and medications by talking, and it parses them into structured entries automatically. It auto-syncs your medical records (labs, conditions, meds) from your patient portal via Fasten Connect, turns them into trends and a GI-ready report, and learns your personal "Flare Fingerprint": the pattern of resting heart rate, HRV, sleep, and symptoms that precedes your flares. It scores your daily stability, surfaces alerts, and tailors anti-inflammatory (IBD-AID) diet guidance to your current disease phase — rating each meal as good/ok/avoid against where you are.
How I built it
Next.js (App Router, TypeScript) with Tailwind v4. Drizzle ORM on Neon Postgres, with a flexible jsonb log-entry model so every entry type shares one table. Grok models via the Vercel AI Gateway power speech-to-text, entry parsing, vision-based photo logging, and the conversational assistant. Fasten Connect (FHIR) handles medical records import: a one-time portal login triggers an async EHI export delivered through a webhook, which we parse into canonical IBD lab markers. A background analyst engine computes the stability score, Flare Fingerprint, and findings.
Challenges we ran into
- Async medical records: Fasten only returns download links via webhook (the status poll has none), so I had to build a real webhook-driven ingest pipeline and tunnel it to localhost for testing.
- Real-world FHIR is messy: a single export brought in 100+ labs, most outside the IBD panel — I had to narrow to canonical markers (CRP, calprotectin, ferritin, hemoglobin, WBC, albumin, ESR) and dedupe on re-sync.
- Rendering safety in Next.js:
revalidatePath-during-render crashes, hydration mismatches from browser extensions, and impureDate.now()calls in render all bite us. - Voice-first UX: making conversational capture feel trustworthy meant always showing an editable, structured preview before saving.
Accomplishments that we're proud of
- A genuinely voice-first logging flow that turns natural speech into structured, correctable health entries.
- The Flare Fingerprint — a signal-agnostic engine that learns your personal pre-flare pattern from real wearable data.
- End-to-end live medical-records sync working: portal login → webhook → parsed labs feeding the report, the stability score, and diet guidance.
- A polished UI with a real clinical report that reads like something you'd hand your GI.
What we learned
Health data integration is the hard, unglamorous 80% — provider data is inconsistent and arrives on its own schedule, so the product has to stay graceful when records are partial or delayed. We also learned that intelligence only feels intelligent when it's connected: a rising CRP is just a number until it changes your diet advice and the questions your report suggests for your doctor.
What's next for FlareLens
- Feed lab context into every tab — food suggestions and the chat/voice assistant that adapts when inflammation markers rise.
- A raw-records viewer to browse all imported labs and clinical history.
- Periodic auto-resync + push alerts when a new flare-risk pattern emerges.
- Predictive flare forecasting from the Flare Fingerprint, and clinician-shareable reports.
Built With
- fasten-connect
- fhir
- github
- grok
- neon
- node.js
- playwright
- postgresql
- react
- smee
- typescript
- vercel
Log in or sign up for Devpost to join the conversation.