I used to think the best AI food logging flow would be simple:
Take a photo, let the model identify the meal, confirm it, done.
That works surprisingly well for a lot of meals. But while building MetricSync, I learned the awkward product truth: the best input method changes depending on what is in front of the user.
A photo is great for a plate.
A barcode is better for packaged food.
Text is better when the user already knows what they ate or wants to fix one detail quickly.
The mistake is treating one input mode like the whole product.
Photos feel magical until the meal gets messy
Photo logging is the most impressive demo because it removes the blank search box problem. The user does not need to know the exact database name for “rice bowl with chicken and avocado.” They can just show the app what they ate.
But meals are messy.
A photo might miss the sauce. It might not know if the drink is diet or regular. It might confuse a small serving with a large one. It might identify the food category correctly but still need a portion correction.
That does not make photo logging bad. It just means the UX cannot end at “AI guessed something.”
The real product is the correction loop.
Can the user fix the meal without starting over?
Barcode scanning is boring in the best way
Barcode scanning is not as exciting as AI, but it is often the right tool.
If someone is logging a protein bar, yogurt, cereal, or a packaged drink, asking an image model to infer the nutrition facts is silly. The barcode is more direct.
That changed how I thought about the app.
AI should not be the star of every interaction. Sometimes AI should get out of the way.
The goal is not “use AI everywhere.” The goal is “make logging the thing in front of me take the least effort.”
For packaged foods, that means barcode first.
For mixed plates, that means photo first.
For quick edits, that means text.
Text still matters
The more AI features you add, the easier it is to forget text input. But text is still the fastest path for a lot of real behavior.
Examples:
- “Add 2 eggs and coffee”
- “Change the rice to half a cup”
- “Remove the sauce”
- “Add a banana”
A good AI food logging app should not force the user back through a camera flow for every tiny correction.
That is where text becomes the glue between the other modes.
The product lesson
The biggest UX lesson for me was this:
The user should not have to care which technology is being used.
They only care whether the app can log the meal quickly and let them correct it without friction.
That is why MetricSync supports photo, barcode, and text logging instead of betting everything on one mode.
The camera is for visual meals.
The scanner is for packaged food.
Text is for fast corrections and simple entries.
None of those is perfect alone. Together, they make the app feel much more practical.
If you are building an AI product, I think this is the useful pattern: do not make AI the only interface. Make AI one good path among several, then route the user to whichever path creates the least work.
For food logging, that means the best UX is not always the flashiest demo.
Sometimes it is just scanning the barcode and moving on.
I am building this into MetricSync here: https://metricsync.download
Top comments (0)