Mahway

A food and body tracker. Private, free, no strings attached.

Role
Solo: research, design, engineering
Platform
iOS
Timeline
Oct–Nov 2026
Languages
English, Español, 繁體中文, 日本語
Status
Public beta on TestFlight
Wed, Oct 28
Calories0of 2,000
Protein0 gof 125
Fat0 g of 65
Carbs0 g of 225
Weight80.34 kgThis week: ↓0.6 kg
Waist34.55 inThis week: ↓0.2 in
Body fatAbout 18%15–21% · Wed, Oct 28
PhotosNo photos yetFront, side, back

The dashboard: what's been eaten today.

The Log: a day's food laid out by the hour.
Log what was eaten
Weight: a 7-day average line over each weigh-in.
Weigh in, see the trend
The weekly report: the week's weight change and an estimate of daily calorie burn.
Review the week

Product direction

Why I built it, and why it's free

I wanted to get leaner, so I tracked what I ate. Every app wanted a subscription, and some charged to export my own data. When my free trial ran out, I built my own.

I could charge for it. But with AI, one person can build an app like this in weeks (hi). With nothing to protect, a paywall would only keep people out, so Mahway is free. Does an app from an independent developer still have a place, even free? That's what Mahway is testing.

How AI estimates stay free

One of the most wanted features in food trackers is the AI estimate: take a photo of a meal, get the numbers. Each one is a paid call to a cloud AI, and I couldn't pay for that and keep Mahway free.

People already have a favorite AI, so Mahway fits into how they already use it. “Ask my AI” opens ChatGPT, Claude or Gemini with the prompt written for them. The AI's answer ends in a link that opens Mahway with the food or recipe filled in.

Claude estimates a meal from a photo, and its link fills in Mahway's New food.

Who it's for: I started with myself

I built Mahway for people like me: already tracking, and done paying a subscription for it.

Setup: Bring your history? Start where you left off, or start fresh. Options: Apple Health (another app's food log and measurements), or a Mahway backup file. A Start fresh button.

Then I ran eleven usability sessions, with a new build after each. Most testers weren't my target, but the app could still help them. So every round I chose: I took what opened Mahway to more people, and left what would turn it into a different app. Participants are numbered in the order I met them.

  • BuiltP8

    “I felt like I'm forced to choose keep my weight, bc I don't wanna lose or gain weight.”

    Setup now has an option with no weight goal.

  • BuiltP5

    “Use timeline to set the goal, rather than just weekly or monthly amount.”

    A goal can now be set as a date.

  • BuiltP2

    “How does no account work? Feels sketchy.”

    Setup now ends by saying where the data lives.

  • Not builtP10

    An Add nutrient button always on the dashboard.

    People choose what they track once, not every day.

  • Not builtP11

    A period card, next to waist and body fat.

    Mahway uses periods only to explain weight changes. Apple Health already tracks the cycle.

Trust and safety

Privacy: earning trust with sensitive data

Weight, waist, periods. Asking for those is hard, and a new app hasn't earned anyone's trust yet. So setup doesn't ask for trust; it's designed to earn it, one choice at a time. Trust is consent people keep giving, so nothing in Mahway forces it.

Setup asks only what it needs to estimate daily calories, and questions can be skipped. Everything stays on the phone. “No account” first read as sketchy, so setup now ends on a page that says plainly where the data lives.

An earlier version of setup's last page: Your data is private and secure. It's saved on your iPhone and not shared with Mahway or anyone else. There's no account and no server to send it to.
BeforeMade a promise: private and secure.
Setup's last page now: Mahway doesn't need your data. Mahway has no account and no servers. Here's what stays on your iPhone, what goes online, and what Mahway asks for. Stays on your iPhone: everything you log, no account, no ads or tracking. Goes online: only food searches and barcode numbers, to USDA and Open Food Facts.
ShippedStates a choice: Mahway doesn't need your data.

Safety: a suggested number is a responsibility

Mahway suggests how much to eat. When the subject is someone's body, that's a responsibility. So when someone:

  • Picks a pace or target that’s too aggressive

    Mahway says so in red, and shows a steadier one.

  • Is pregnant or breastfeeding

    No cut is suggested.

  • Doesn’t trust the app enough yet to share their sex

    “Use an average” is an option. Sex is only used for the estimate.

  • Is struggling with eating or body image

    Support is one tap away.

  • Finds the waist card brings up body image

    Setup asks what to show on the dashboard, instead of showing waist by default.

Your pace: Get to 70 kg around Nov 2026, set with a wheel at 0.75 kg a week. In red: More than 1% of your body weight a week. Below: losing about 0.5% a week is a common, steady pace.
Your daily targets: 1,560 kcal a day. In red: Less than your body uses at rest (1,640 kcal). Below: a starting point, not medical advice.
Period tracking: a sample weight chart with period days shaded. Reads only Period from Apple Health's Cycle Tracking, shades period days and leaves them out of the TDEE estimate, keeps no copy, and says how to stop.
Period tracking is its own switch, and says exactly what it reads.
Setup: What will you track? Weight and Photos are on the dashboard; Waist and Body fat are shown as samples with a plus to add them.
Setup asks what to track. Waist is optional.

What I got most wrong: onboarding

I thought an easy app only needed a quick tutorial. But people don't read tips; they tap, search and move on.

After the usability sessions I see it differently: onboarding is the first promise a product makes. It decides whether people trust it, and whether they see themselves in it.

My first welcome screen led with free, private and no ads. But nobody knew yet what the app was for, so none of it meant anything. Now it opens with what Mahway does.

The old welcome screen: Track macros, then Free (every feature), Private (data stays with you), No ads (ever).
BeforeLed with free, private and no ads.
The new welcome screen: Track macros, then Log food fast, See what's left, Know it's working.
ShippedLeads with what it does.

The goal screen only talked about weight. Now it asks what someone wants: lose fat, build muscle, stay where they are, or just eat better.

The old focus screen: Lose weight, Keep my weight, Gain weight, Not focused on weight.
BeforeEvery option about weight.
The new focus screen: Lose fat, Build muscle, Stay where I am, or Just eat better, with no weight goal.
ShippedWhat someone wants, weight or not.

Design and engineering

Search: sorted by how people eat

Most trackers answer “chicken breast” with hundreds of packaged products. Mahway puts the plain food first.

Other apps0 results in one list

  • CHICKEN BREASTGiant Eagle, Inc. · 165 kcal
  • CHICKEN BREASTTyson Foods, Inc. · 143 kcal
  • CHICKEN BREASTTony Downs Foods Co · 107 kcal
  • CHICKEN BREASTJennie-O Turkey Store, Inc. · 107 kcal
  • CHICKEN BREASTH E Butt Grocery Company · 96 kcal
  • CHICKEN BREASTThe Hillshire Brands Company · 92 kcal
  • CHICKEN BREASTOscar Mayer Foods Corp. · 107 kcal
  • CHICKEN BREASTEddy Packing Co., Inc. · 116 kcal
  • CHICKEN BREASTFareway Stores, Inc. · 107 kcal
  • CHICKEN BREASTWakefern Food Corporation · 107 kcal
  • Lunchmeat, chicken breast, slicedGeneric · 100 kcal
  • Chicken breast, rotisserie, skin not eatenGeneric · 144 kcal
  • Chicken breast tenders, breaded, uncookedGeneric · 263 kcal
  • Chicken breast, roll, oven-roastedGeneric · 134 kcal
  • Chicken breast, rotisserie, skin eatenGeneric · 175 kcal
  • Chicken breast, sauteed, skin eatenGeneric · 206 kcal
  • Chicken breast, sauteed, skin not eatenGeneric · 176 kcal
  • Chicken breast, stewed, skin eatenGeneric · 181 kcal
  • Chicken breast, stewed, skin not eatenGeneric · 149 kcal
  • Chicken, breast, boneless, skinless, rawGeneric · 106 kcal
  • Chicken, breast, meat and skin, rawGeneric · 127 kcal
  • Chicken breast tenders, breaded, cooked, microwavedGeneric
  • Chicken breast, grilled with sauce, skin eatenGeneric · 202 kcal
  • Chicken breast, grilled with sauce, skin not eatenGeneric · 178 kcal

Shipped4 rows in 4 sections

Whole foods

Chicken breastRaw, skinless · 112 kcal per 100 g

Dishes

Stuffed chicken, drumstick or breast, Puerto Rican styleTypical recipe · 1 breast · 496 kcal

Restaurants

2 restaurant items

Packaged

40 packaged foods
Other apps: USDA FoodData Central's search, 2026-11-10.

Logging: by the hour, not by meal

The day is laid out by the hour, not by meal. In testing, it was what people liked most.

Tap an hour to log food there, or copy yesterday's meal to now.

The weight chart: zoomed in, and steady

The chart has to zoom in on this week, and stay steady when swiping back. Three tries at the scale:

Sep 28 – Oct 28
Sample data. Drag sideways to go back in time.

Usability: small fixes, every round

Each round of testing shipped small fixes. One came straight from watching someone hesitate:

An old build: Add is a small tab in the middle of the tab bar, smaller than the Select button at the top.
BeforeAdd was one of five tabs.
The Food log now: the tab bar holds Dashboard, Log, Progress and Settings, with Add as a round plus button set apart on the right.
ShippedAdd is the + set apart from the tabs.

Accessibility: text size, VoiceOver, motion

Mahway follows the phone's own accessibility settings. Three examples:

  • Larger text

    Titles and numbers grow with the phone’s text size, up to 2×. At the largest sizes, dashboard numbers move under their bars to make room.

  • VoiceOver

    Rearranging the dashboard is a drag, which VoiceOver can’t do. So every bar and card has Move up and Move down, and charts read out a summary.

  • Reduce Motion

    Celebrations fade in place instead of bursting across the screen.

The dashboard with the phone's text size turned up: the labels and numbers beside each bar are larger.
With the phone's text turned up, the numbers grow with it.
The dashboard in edit mode with VoiceOver on. Protein has been moved above Calories, VoiceOver is focused on the Calories row, and the caption panel at the bottom reads Move down.
VoiceOver moves a bar with Move up and Move down, no drag.

Visual design: loud, with strict rules

Black, condensed type, a neon color for each nutrient. Loud on purpose, so it needs rules:

  • Color means one thing. Nutrient colors only mean nutrients; red only means a warning.
  • Shape says what can be pressed. Content is square; actions are round.
  • Readable in sunlight and at night. Text and bars meet contrast minimums.

Color

  • Calories
  • Protein
  • Fat
  • Carbs
  • Warning

Type

1,030

Futura Condensed ExtraBold

Greek yogurt

SF Pro Condensed Semibold

Shape

ContentAction

Outcome

Success: what I can and can't know

Mahway has no analytics, by the same decision as privacy, so I can't see what people do in the app. What I have is App Store Connect and the support inbox, where people tell me what broke in their own words.

What I do know is my own month. I've used it every day and gone from 80 to 79 kg, right on my plan of 0.3 kg a week. I feel more in control of what I eat, and freer: at restaurants with friends, or cooking a big batch and knowing it won't blow my limit.