BioMedli - AI Health Intelligence Platform
Designed and built a complete health product - biomarker tracking, AI-generated reports, medication management. No external developers. One designer, AI tools, and fast iteration from concept to deployed product.
Terramedici Lifesciences LLP needed a consumer health product that could take years of scattered lab reports - PDFs from Quest, LabCorp, hospital printouts and turn them into something a person could actually understand. Biomarker tracking, trend analysis, AI-generated health explanations, medication management. A full platform, not a feature.
The constraint: no engineering team. One designer would handle everything from user research through deployment.
That designer was me.
The problem
People accumulate lab results for years and understand almost none of them. Reports are written for doctors, formatted inconsistently across labs, and filed away after a five-minute conversation. There's no way for a regular person to see how their Vitamin D has changed over three years, or what a rising hs-CRP level means for their heart health.
The existing options were either too clinical (built for practitioners) or too shallow (basic number-logging apps with no intelligence layer).
BioMedli needed to sit in between: medically accurate, but written for someone who just wants to know what's going on with their body.

What I designed
Information architecture
The product has four layers, and getting the hierarchy right was the first design decision that mattered. Upload → Extract → Normalize → Understand. Every screen maps to one of these steps. The user drops a PDF, AI extracts biomarkers automatically, values get normalized across lab formats (so a Quest hemoglobin reading and a hospital hemoglobin reading are directly comparable), and each value gets a plain-English explanation with reference ranges and trend lines. I kept the IA flat on purpose. No nested menus, no settings buried three levels deep. A person who uploads their first report should see their health timeline within 30 seconds.
The health timeline
Most wellness apps track mood with emoji grids or numbered scales. Both feel reductive. Life-Hopscotch asks two questions: "How often did you feel pleasant in the last 24 hours?" and "How often did you feel unpleasant?". Each on a slider from Never to Always. The shape on screen morphs based on your input: a pentagon for mixed feelings, a near-perfect circle for consistently positive states. The rounder the shape, the brighter the glow. Over time, the Pleasantness Report shows a visual comparison (yesterday vs. today) that makes emotional patterns tangible without reducing them to a score.
The design intent was specific: avoid pathologizing normal emotional range. "Sometimes pleasant, never unpleasant" is a valid state, not a problem to fix.

AI health briefing
Each biomarker gets contextual intelligence: what the marker measures, what causes it to shift, and what the trend means in plain language. This isn't a chatbot — it's structured analysis generated per-biomarker, per-user, drawing from their actual values over time. The critical design decision here was trust. Health information triggers anxiety. I designed the intelligence layer to be factual and calm — no alarmist language, clear "this is educational, not diagnostic" framing on every analysis screen, and a consistent visual system that separates normal/watch/high states without making everything feel like a warning.

Privacy-first architecture
Identity data never touches the AI model. The system strips names, dates of birth, and identifying context before processing. I designed the privacy model into the product, not as a bolt-on- the UI communicates this at every step where data is being processed, so users understand what's happening with their information without needing to read a privacy policy.

How I built it?
I didn't hand off Figma files to an engineering team. I designed every screen in Figma, then built the entire product myself using AI-assisted development.Stack: Next.js frontend, Supabase for database, authentication, and file storage, deployed on Vercel. The AI extraction layer calls OpenAI, Gemini and Claude APIs depending on the report type.The pipeline works like this: A user drops a PDF lab report. The file goes to Supabase Storage. A serverless function picks it up, sends the document to the AI model with a structured prompt, receives a parsed JSON response containing biomarkers, values, units, reference ranges, and test dates. That response gets validated, normalized, and written to Supabase PostgreSQL. The frontend pulls from the database and renders the timeline.
Sounds straightforward on paper. It isnt.

Database architecture
Supabase PostgreSQL with row-level security. Every query is scoped to the authenticated user — there's no API endpoint that can return another person's health data, even with a valid session token. The schema separates identity from health data by design. User profile tables store authentication and preferences. A separate set of tables stores biomarker values, linked by user ID but containing no PII. When data goes to the AI model for analysis, it goes without names, dates of birth, or identifying context. The model sees numbers, units, and dates. Nothing else. File storage for uploaded PDFs uses Supabase Storage with isolated buckets per user. Reports are encrypted at rest (AES-256) and in transit. A user can export their complete data as CSV or JSON at any time, or request full deletion — every record tied to their account gets permanently removed within 30 days.

40+
Screens designed & built
~3× faster
Build speed vs. traditional
Live, with paying users
Product status
All PDFs
Lab formats supported
Everything else from the previous version (the brief, the problem, the design decisions, the closing) stays the same. Swap in these sections and you've got a case study that reads like a builder wrote it.
