A daily food and water log that shows your real calorie balance

By General Input

Open one screen to tap in meals, water and morning weight, then see what you ate against what you actually burned today.

Integrations

  • Google Health
  • Google Sheets

Type

App

Categories

  • Personal Productivity

Build me an app I open several times a day to log what I eat and drink and to see whether my intake matches what I actually burned. It runs on my own Google Health account for the health data, and on a Google Sheet I keep as my meal library.

The main screen is a single day view. At the top, a date header with previous day, next day and a jump back to today. Below that, in order: a grid of quick add meal tiles, a water quick add row, a morning weight field, the list of everything logged for that day, and a chart of calories in against calories out.

The quick add tiles are built from my meal library sheet, read with the Google Sheets Get Values operation. One row per meal holding the name, calories, protein, carbs and fat. Read the sheet once when the day view loads and reuse it rather than re-reading on every render. Each tile carries a portion multiplier, from a quarter up to three, defaulting to one, and the multiplier scales the calories and macros before anything is written. Tapping a tile logs it with the Google Health Create Data Point operation against the nutrition-log data type, timestamped at the moment I tap it, carrying the scaled calories and macros and the meal name.

The water row is a set of preset buttons, 250 ml, 500 ml and a custom amount, each writing a Create Data Point against the hydration-log data type. The morning weight field writes a Create Data Point against the weight health metric data type. If a weight already exists for that day, use Update Data Point on the existing point instead of creating a second one, so there is never more than one morning weight per day.

Underneath the inputs, show every entry logged for that day. Load it by reading back nutrition-log, hydration-log and weight with List Data Points, batched into as few calls as possible rather than one request per data type per render. Google Health allows 300 requests per minute per user, so the day view has to be careful here and refresh on demand rather than continuously. Every row in the list is editable and deletable: editing a portion or a calorie figure goes through Update Data Point, and removing entries goes through Batch Delete Data Points, which also backs a multi-select clear so I can wipe out a badly logged meal in one go.

A New meal button opens a small form for name, calories, protein, carbs and fat, appends it as a row to the meal library sheet with the Google Sheets Append Values operation, and then shows it as a tile immediately so I can log it right away.

The calories out side has to be real rather than estimated, so read it from Google Health with the Daily Roll-Up Data Points operation across the total-calories, active-energy-burned and steps activity data types. The day chart puts calories in, taken from the sum of the day's nutrition-log entries, against calories out from total-calories, and shows the net difference against my daily target. Under it, a 30 day trend chart of daily calories in, calories out, the running net, and my morning weight, so I can see whether the balance is actually going the way I want.

Day boundaries follow my civil day, not UTC. Every read and write is scoped to a closed-open range from the start of my local day up to but not including the start of the next one, and the daily roll-up groups by civil-time days for the same reason. Let me set a day cutoff in settings so a snack at half past midnight lands on the day I count it against rather than jumping to the next one.

Add a Review my week button that kicks off a background agent. The agent pulls the last seven days: intake from nutrition-log and hydration-log with List Data Points, calories out and steps with Daily Roll-Up Data Points across total-calories, active-energy-burned and steps, and the weight trend from the weight data type. It then writes a plain language adherence summary covering average daily intake against my target, how many days I actually hit it, how consistent my hydration was, which way my weight moved, the net deficit or surplus for the week, and one or two concrete observations about where things slipped. The summary lands back in the app in a Weekly review panel, timestamped, keeping previous reviews so I can read back through them, and the agent also appends a row to a log tab in my meal library sheet with Append Values, carrying the date range, average calories in, average calories out, net, average weight and the summary text.

Settings hold the spreadsheet id, the meal library tab name and the log tab name, my daily calorie and protein targets, the water preset amounts and unit, my day cutoff and my timezone. Each person using the app sees their own health data through their own Google Health connection, so nothing is shared between viewers.

Make it fast and tap-first, comfortable on a phone, with the day's numbers large and readable at a glance. Logging a meal should take one tap, and I should never wait on a full page reload to see the totals move.

Related prompts

Explore more prompts
Call overdue Xero customers with an AI collections agentLocal listing health board for every location you manageLet support send one-off Loops emails without an engineerStop cold emails to anyone with a live deal in PipedriveiMessage campaign console with pre-flight checks and delivery boardLinkedIn Ads budget pacing dashboard for every client accountFront desk appointment confirmation board for the next 3 daysGive your team Looker numbers without buying more seatsBuild audience segments from product usage and push to LoopsTurn the people who engage with your posts into Pipedrive leads