Designing a cycle-aware nutrition app, from user research to 15k+ users

Designed a cycle-aware nutrition app for women who train, turning cycle phase, meals and nutrients into one daily decision she can make in under a minute. Live on the App Store and Google Play with 15k+ users.

What I did

  • User research
  • Flows and IA
  • UI design
  • AI feature design
Home with cycle forecast for day 11
Bottom sheet asking when the last period started
Add sheet with Scan Meal and Log Food
Today’s advice and nutrient tracking
Meal Log with Cycle Match tags and swipe to delete
Nutrition Scanner photo confirm with Retake
Nutrition Scanner framing the plate
Scan result matched to the luteal phase
Scan result with energy and macros
Editing the detected dish name
Detected ingredients and key nutrients
Nutrient review before Submit
Role
Product Designer
End to end, 0 → 1
Timeframe
5–6 months
Research to launch
What I did
User research & interviews
Flows & IA, UI design
Status
Live, 15k+ users
App Store & Google Play

The starting point

Started with the athletes, not the features

Women who train feel their cycle in their sessions: energy, strength, recovery and appetite change from one week to the next. But their tools split the job. Cycle trackers stop at the calendar, and nutrition apps give the same targets every day.

I started with user research and interviews with women who train, from competitive athletes to regular gym-goers, to understand how they plan training and food today and where the cycle gets in the way. Three themes kept coming back: they didn’t know what their phase meant for today’s session, logging food felt like a chore they dropped within weeks, and generic advice didn’t match what they felt in their body.

That reframed the problem. It wasn’t “build a tracker”. It was how to turn cycle data, macros and micronutrients into one decision she can make in under a minute: what should I eat today, and am I fuelling well for where I am?

25

one-to-one interviews with women who train, from competitive athletes to regular gym-goers, before the first wireframe.

15k+

users today, on the App Store and Google Play.

Cycle trackers

  • Period dates and predictions
  • No meal tracking
  • Generic phase tips

Nutrition apps

  • Meals, calories, macros
  • Same target every day
  • Ignore the cycle

LYNA

  • Cycle phase on every screen
  • Meals matched to the phase
  • Advice tied to the phase

What my research pointed to

Six opportunities. Each one became a rule the screens had to follow.

  • Lead with the phase.

    Show where she is in her cycle before any number, so every number has context.

  • Make logging faster than forgetting.

    One entry point, two paths, no screen changes where a sheet will do.

  • Let people fix the AI.

    Every scanner result can be renamed, re-run or reviewed before it’s saved.

  • Show the nutrients that matter now.

    A short list per phase instead of every value at once.

  • Encourage, never alarm.

    No red scores after a hard training day. Positive signals in soft yellow and green.

  • Be honest about limits.

    Label AI numbers as estimates, right next to the button that saves them.

Who I designed for

Whether she competes or trains for fun, there were two mental models to design for

The Performance Planner

Competes or trains seriously. She plans sessions and fuelling around her phase and wants to know exactly which nutrients matter this week.

Needs: precision, phase-specific targets, logging that fits around training

The Body Learner

Trains for health and fitness. She notices her energy and cravings change across the month but doesn’t know why, and wants one clear tip a day.

Needs: a plain explanation, one action, no jargon

The same screens had to work for both. That meant progressive disclosure: the phase and one tip up front for the Body Learner, with the full nutrient breakdown one tap deeper for the Performance Planner.

The cycle doesn’t always follow the textbook, so the app also supports irregular cycles, PCOS and perimenopause. Cycle type is set in onboarding and shown on Home, because predictions and advice depend on it.

User flow

Mapped the daily loop before drawing a single screen

I started from her day, not from a feature list. Two events drive everything: a new period, which corrects the predictions, and a meal, which updates the nutrients. Both had to start from Home and end back on Home, so the user always sees the effect of what she just did.

Opens LYNA Homephase, advice, nutrients Newperiod? yesno Log period startbottom sheet Predictionsupdate back to Home, forecast already corrected Atesomething? noyes Advice for today Tap +from any tab Has aphoto? yesno Scan MealAI estimate Log Foodby hand Review& submit Meal Log + Nutrientsupdate back to Home, nutrients already updated
ScreenSheet or actionUser decisionOutcome

Navigation

Kept navigation to four places and one action

The most frequent action, adding a meal, doesn’t live in a tab. It lives in a floating + that’s always within reach, so the tabs can stay about places (today, history, ideas, settings) instead of tasks. Logging a period lives on Home, next to the forecast it changes.

LYNA Home Meal Log Recipes Settings Cycle Forecast+ Advice NutrientsNow Log period sheet Meals by timeswipe to delete Ideas forthe phase + global, floats over tabs Scan Meal Log Food

Home

Ordered the home screen by the questions she asks before training

A dashboard with everything on it would have served nobody. I ranked the content by the questions a user has when she opens the app, and stacked the screen in that order: where am I in my cycle, what does that mean for today’s session, and how am I fuelling for it.

The phase sits at the top so every number below it is read in context. Nutrients come last, because they only make sense once you know the phase.

LYNA home screen
  1. 1

    Status before advice

    “Day 11 of 28” and the cycle-type pill show what the app knows about her before it suggests anything.

  2. 2

    Today as the anchor

    A week strip with past days solid and future days muted. Today is the only filled circle.

  3. 3

    Cycle Forecast

    The phase name and a curve of the whole cycle, with a marker on today and dots on period and key days.

  4. 4

    Log period start

    Placed right under the forecast, because a new period is the input that corrects every prediction above it.

  5. 5

    Today’s Advice

    The phase translated into training: “Estrogen is rising. Your body is primed for building muscle and high-intensity efforts.”

  6. 6

    One place to add

    The floating + is the single entry point for logging food, on every tab.

  7. 7

    Your Nutrients Now

    Calories with an editable target, macro rings, and a short list of micronutrients for the phase.

The result: one scroll answers the three questions in order, and the only two actions on Home are the two events that change the data.

Logging

Cut logging to two taps, because advice is only as good as the data behind it

In the interviews, logging was the habit people dropped first. If logging is slow, people stop, and the advice stops being personal. So I treated every extra screen as a reason to quit.

Both actions open as bottom sheets over Home instead of new screens, so the user keeps her place and sees the forecast she’s about to change. The period sheet uses error prevention: future dates are greyed out and can’t be picked. And the button says what will happen, Save & update pattern, instead of a vague “Done”.

Bottom sheet: When did your last period start?

Log period start

One question, one calendar, one outcome. Only past days can be picked.

Bottom sheet with Scan Meal and Log Food

Add a meal

Two equal choices, Scan Meal or Log Food. Scanning gets the stronger colour because it’s the faster path.

The result: logging a period or a meal takes two taps from Home, and the user never leaves the screen that shows the effect.

Nutrition Scanner

Designed an AI scanner people can correct, not just trust

AI meal recognition is fast, but it’s sometimes wrong, and a wrong number in a health app breaks trust quickly. So the question wasn’t how to show the result. It was where the user gets a chance to step in.

I added three checkpoints, following the heuristic of user control and freedom: confirm the photo before analysis, fix the dish name or re-run the scan, and review the nutrients before saving. And the result opens with her phase and a Cycle Match tag, not with the calories, because that’s the question she scanned to answer.

Frame the platecorner guides Photoclear? no: Retakeyes AI matchphase, dish, energy Looksright? no: Edit name or Re-scanyes Review nutrientsphase ones highlighted SubmitAI estimate label Saved to Meal Logwith Cycle Match tag Pink dashed lines are the correction loops: the user can step in twice before anything is saved.
ScreenStepUser decisionOutcome
  1. Scanner framing the plate

    01

    Frame

    Corner guides show what to fit in the shot. One action: Scan Meal.

  2. Confirm photo

    02

    Confirm

    Use this photo or Retake, before anything is analysed.

  3. Result with cycle phase and total energy

    03

    Match

    “Day 19 · Luteal” and Cycle Match sit on the photo, then the dish and total energy.

  4. Detected ingredients and key nutrients

    04

    Ingredients

    Detected ingredients as chips, with the nutrients that matter shown as pills.

  5. Full nutrient list with highlighted nutrients and Submit

    05

    Review & submit

    Phase-relevant nutrients are highlighted. The AI disclaimer sits under Submit.

Decision

Phase before calories

The result header shows “Day 19 · Luteal” and Cycle Match first. Calories come second, because the user scanned to find out if this meal fits her phase.

Decision

Correct, don’t restart

A pencil to rename and a refresh icon to re-run. Fixing a wrong guess costs one tap instead of a new photo.

Decision

Disclaimer where it counts

“Nutrients are AI estimations” sits right under Submit, the moment the user decides to trust the numbers.

Scanner result with macros and Submit

Energy at a glance

One big number for total energy, with carbs, protein and fats underneath. The detail stays one swipe away.

Meal Log with Cycle Match tags and swipe to delete

Meal Log

Every meal keeps its time, type and photo. The yellow Cycle Match tag shows at a glance which meals fit the phase. Swipe left to delete.

The result: a scanner that’s fast when the AI is right and forgiving when it isn’t, with nothing saved to the log without the user’s say.

States & edge cases

Designed the states most apps forget

Real meals have long names, some have no photo, and every day starts at zero. I designed these states on purpose, so the layout never breaks and an empty day never feels like a failure.

Long dish name wrapping over three lines

Long names

A dish name can run to three lines; the edit icon follows the last word instead of breaking the layout.

Empty nutrients state at the start of the day

Empty start

The card reads “2000 kcal left today”, a target to fill rather than a score of zero.

Meal logged without a photo

No photo

Meals logged by hand still get a full card, marked “Meal Added”, so the log stays consistent.

Visual system

Gave every colour one job, so the app can be read in seconds

Athletes check the app between sessions, often in a few seconds. So colour had to do the reading for them. One violet marks every action, so there’s never a doubt about what to tap. Lime marks period days on the forecast, soft yellow marks a Cycle Match, and lavender holds everything secondary.

I kept red out of scoring entirely. A red number after a hard training day is the fastest way to make someone stop logging, and the whole product depends on her logging.

Violet#4D3498

Primary actions, titles

Forecast#5F48A2

Cycle Forecast card

Lavender#DFD9F5

Secondary buttons, pills

Mist#F5F1FC

App background

Lime#C7F705

Period days on the curve

Match#FEF9C3

Cycle Match tag

Save & update pattern

One filled button per screen, always describing the outcome.

Log period start

Outlined lavender for frequent but secondary actions.

Day 19 · Luteal✦ Cycle Match

Status chips: lavender for facts, yellow for a match.

Designing for impact

From the first interview to 15k+ users

This project was about turning a complex mix of cycle and nutrition data into a habit women who train can keep.

  • I started with interviews, not with screens
  • I mapped her day before the feature list
  • I ranked every screen by the question it answers
  • I designed for the AI being wrong, not only for when it’s right
  • I designed the empty, long and messy states, not just the happy path
15k+

users on the App Store and Google Play

App Store & Google PlayLive since December 2025Version 2026.9.1

Questions

Have questions?

How do you design nutrition advice without making medical claims?

LYNA is a wellness app, not a medical device, and the interface never diagnoses. Scanner numbers are labelled as AI estimates right under the Submit button, and advice is written as guidance for the phase rather than a prescription.

How does the app connect the cycle to training?

Home leads with the phase, and Today’s Advice translates it into what it means for training, for example that rising estrogen in the follicular phase is a good window for strength and high-intensity work. Nutrients and the scanner’s Cycle Match follow the same phase.

What happens when the scanner gets the meal wrong?

The user confirms the photo before analysis, can rename the dish with the pencil, can re-run the scan with one tap, and only saves after reviewing the nutrients. Nothing reaches the log without her say.

Keep reading

Mento: a ten-second capture flow