Real screens from the app, not a video, shot in the iPhone Simulator with the clock set for
each step. The tour follows the four pillars: protect the protein, the session, the day and
the record, a few screens each. Tap where it's ringed, or let it drive.
Click-through demo · real screens from MealStack 0.9.1 · four pillars
MealStack click-through demo
Why it exists
Fueling is training.
I sat in a nutrition seminar at the Shaw Strength Summit and heard Nathan Payton say it plainly: if you are not eating properly, you are failing your training. Eating is part of your training.
That sent me home to rebuild how I eat, and then looking for an app that understood it. The meal-timer apps are alarm clocks. The routine apps roll a late morning into the session. The macro trackers know what I ate to the gram and have no opinion about when. Not one of them asks what time you train. So I built the one I needed. Four ideas hold up everything it does.
01Protect the proteinProtein has no storage tank. Stack it across the day, and never send it out alone.
02Protect the sessionYour pre-workout meal is equipment, not a snack. It anchors backward from when you train and holds its time.
03Protect the dayFlights, time zones, a session that moved to 8pm. Change the day to recovery, move the session, swap the plate, keep going.
04Protect the recordLog when you eat, not when it was due. Today shows what actually landed, so tomorrow is built on the real day.
Two kinds of meal. The morning meals follow on from the time you actually ate.
The carb surge, your pre-workout meal, stays where the session puts it, and so does everything
after it. Drag breakfast late and watch which ones move.
Logged breakfast at 7:00 AMSession 6:00 PM
The morning is meant to finish two hours before the carb surge. When a late breakfast won't allow that, the gaps tighten evenly, rounded to five minutes, and never below two hours; past that point lunch simply lands closer to the carb surge. The carb surge never moves for a late morning, and never past the start of the session: still not eaten when you start training, it's marked "Session started without it" and waits for you to log it or skip it. Move the session itself and everything tied to it moves with it.
What it does differently
Six things the market didn't have in one place.
Timing · Protect the session
The day is anchored to the session, not the clock.
The carb surge, the fuel around the session and the meals after it are tied to the session. Everything before them is worked out from the time you actually ate. A late morning tightens the gaps and says what moved; it never pushes the carb surge past the start of the session.
Other apps: Alarms every N hours, or routines that roll lateness forward into the session.
Macros · Protect the protein
Weighed from the plate, or typed. Never both.
A meal is a list of ingredients and quantities, so the numbers come from the ingredients and editing a portion moves them. The daily target lives apart from the plan, so the editor can say "this plate puts the day 40 g of carbs over" while you are still building it.
Other apps: A food database and a total. No plan to measure the plate against.
Logging · Protect the record
Log when you eat, not when it was due.
The sheet opens on now with 15, 30 and 60 minutes ago one tap away, and shows what every remaining meal does at that time before you commit. Move today's session from the Today screen and the meals tied to it move with it.
Other apps: "Done" means now, so the day keys off the wrong number.
Travel · Protect the day
Home or Away, in one tap.
Flip Travel on Today, or let the app do it when you are far from home. With IronStack on the phone, it is one switch for both apps. Skip a meal and it stays a decision, not a miss. History compares home days to travel days.
Other apps: One schedule, and it assumes you are home.
Surfaces · Protect the protein
You should rarely have to open it.
Notifications carry the plate and two actions: "Ate it now" and "Not yet · 20 min". Home and Lock Screen widgets with a live countdown. A card on the Lock Screen from an hour before each meal to thirty minutes after, with a Log button on it and at the top of the screen.
Other apps: A badge, and a screen you unlock to answer it.
Coach · Protect the day
An AI that proposes. You decide.
Let Coach build the plan, or send it the plan your coach wrote, as a photo or a PDF, and it brings it in for you to review. Ask for targets and a fixed formula does the arithmetic, not the model. Eating out, hand it up to five menu photos, a link or a restaurant name, and it fits options to this meal's numbers. Nothing changes until you tap a card. Not a doctor, and it says so before you ask.
Other apps: A chatbot that talks, or a coach that edits your plan without asking.
How you use it
Two questions, then get on with your day.
01
Pick how to start.
Just the times, your coach's plan, let Coach build it, or build it yourself; or see a finished day first. Just the times builds a working day from when you eat and train, no AI and no account: the morning meals follow one another from your first meal, the carb surge before the session and everything after it are tied to the session. Five meals by default; change the number in Settings. Put food on the plates when you are ready, or let Coach fill them.
02
Log when you actually ate.
One tap for now, one for thirty minutes ago. The sheet shows what every remaining meal does before you commit, and the notification can log it without opening the app. The carb surge holds. The rest of the day bends around you.
03
Ask when the plan breaks.
Client lunch, airport, empty fridge. Send Coach the menu, a link or what is in the kitchen and it fits an order to this meal's numbers. Nothing changes until you tap. History keeps score, so you can see what the road does to you.
And the rest
Meals are plates. Fuel is what you take for the session rather than as a meal: pre-workout, the jug
you sip through the session, the shake after it, electrolytes, creatine, water. It can carry protein,
carbs and fat, and those count toward the day's totals. Fuel is never a meal: it isn't in the meal
count, doesn't move the meals around it, and isn't scored for timing. It gets its own alert and its
own line on the record.
Three shelves on the Plan tab: stacks, meals, and ingredients (about two hundred built in, plus
your own, entered like the label). Drop a saved meal onto any plate. Apple Health gets the macros at the real
eat time; if you allow it, the app shows what other apps logged (never added to yours) and offers your weight. Light and dark. History that scores against the target you set.
Your plan is a file on your phone. No account, no sign-in, no cloud sync.
Side by side
What other apps do, and what this one does instead.
Other appsMealStack
AnchorThe clock.Your session.
A late mealThe next alarm fires anyway.The rest of the day re-flows. The carb surge holds.
MacrosTyped in, or scanned, then summed.Weighed from the plate, measured against a target you set.
Logging timeNow.When you actually ate, with the consequence shown first.
On the roadOne schedule, and it assumes you are home.Home or Away in one tap, or automatic.
Eating outSearch the database, guess the portion.Coach reads the menu against this meal's numbers.
Your dataTheir servers, your account.Your phone. Coach sends only what you give it, after you accept its terms; usage data only if you say yes.
Best atA database of a million foods and a barcode scanner.Timing. Keep the other app for the barcode if you like.
The fine print, in plain words
Your data, and the one thing I have not picked.
The code
Closed app. Open data.
MealStack is a closed-source app from Mission Built. What is open is your data: a plan is a plain JSON file in a documented format, the MealStack Schema. Plans and stacks export as those files and import back in. The MealStack name and the marks stay with Mission Built.
Price
Not settled yet. Here is why.
Every Coach question runs on a server I pay for. I want Coach in the app, and I am not willing to lose money keeping it there, so the launch price is an open question: free with Coach on an allowance, a one-time price, or Coach as the paid part of a free app. The answer lands here before it lands in the store.
Your data
On your phone. Two switches.
The plan, the log and the day never leave the phone. Coach is on, but sends nothing until you accept its terms and ask it something; what you send it goes to a server Mission Built runs, and it is metered. Turn it off in Settings any time. Usage data is a second switch the app asks about once. The privacy page says exactly what, where, and for how long.
Not a doctor. Neither is Coach.
I am not a doctor or a dietitian, and nothing on this page or in the app is advice about how you should eat. It is how I manage my own diet. Coach is an AI and is not one either: its targets are estimates from a formula you can read, it declines questions about medical conditions, medication, pregnancy and supplement doses, and it points you to a professional instead. Nothing it proposes changes your plan until you tap.
MealStack runs my own day, every day, and a small group of outside testers is on it with me. I add testers by hand, in small batches, from the email on your Apple ID. You get an invite from Apple, a link to install, a choice of how to start, and a short list of things I would like you to break.
Builds expire every ninety days and you get the next one. The address is used for the invite and nothing else; you can leave from the invite email at any time.
The form is not taking names right now. Email [email protected] with the address on your Apple ID and I will add you by hand.
Beta
By invite, from the form. Small batches, added by hand.
During the TestFlight beta, yes. Coach runs on a monthly allowance per phone. The launch price is not settled. The fine print above says why, and the answer lands on this page before it lands in the store.
Does it need an account?
No. There is nothing to sign up for. Your plan, your log and your history are files on your phone. Delete all MealStack data, under Start over in Settings, wipes them, and the little the server holds for Coach along with them.
What leaves my phone?
What you send Coach. Coach sends nothing until you accept its terms and ask it something, and you can turn it off in Settings. What you type, photograph or attach goes to a server I run. Usage data goes to an analytics service only if you say yes when the app asks. The privacy page says exactly what, where and for how long.
Is Coach a doctor?
No. Coach is an AI. Its targets come from a formula you can read, its meal ideas are estimates, and it declines questions about medical conditions, medication, pregnancy and supplement doses. Nothing it proposes changes your plan until you tap.
Can I keep my macro tracker?
Yes, and if you lean on a barcode scanner you should. MealStack is the timing layer. It knows the plate, weighs macros from it, and writes them to Apple Health at the time you ate, so the two live side by side.
Does it have streaks?
Yes, for full days: every meal logged or skipped on purpose. A skip you chose is a decision, not a miss, so there is nothing to fudge. Only good habits earn badges, and nothing is taken away. History still scores the week on what actually landed.
How old do I have to be?
Eighteen. MealStack sets targets, plans cuts and reads your weight, and that is for adults.
Android, iPad, watch?
iPhone only, iOS 26 and up. No Android, no iPad layout, no watch app, and none planned for 1.0. The Lock Screen, the widgets and the notifications are where the app lives when it is not open.
Is the code open?
No. MealStack is a closed app. Your plan is yours: plan files are documented JSON (the MealStack Schema), and they go out and come back in. The name and the marks stay with Mission Built.
When is 1.0?
When the beta has proven it on phones that are not mine. The date lands on this page before it lands in the store.
Better together
Two apps. One body.
MealStack times the fuel. IronStack keeps the record of the work it fuels. Each one stands on its own, and neither will ever ask you to install the other. Put both on one phone and they start talking about the same person.
MealStack
What you ate
Meals, macros, when you ate
The carb surge before the session
Travel days
macros →
Apple Health
Food and workouts, one timeline
← workouts
← session end
Shelf on your phone
Travel · session time · session end
travel, time ⇄
IronStack
What you lifted
Every set, said or typed
When you train, from your log
Sessions on the road
Both apps → to Apple Health
Live in both
One record of the day
Carries MealStack writes protein, carbs, fat and calories at the time you actually ate. IronStack writes the session as a strength workout, if you switch it on.
Food and training on one timeline in Health, from two apps that never had to know about each other.
Either app → to Both apps
Live in both
Travel, one switch
Carries Home or Away, which app flipped it, and when the trip started. A few bytes in a shelf on the phone that only Mission Built apps can open.
Land in Denver, flip it once, or let either app do it when you are far from home. MealStack plans the day for the road; IronStack counts the session in a strange gym toward Road Warrior.
Either app → to Both apps
Live in both
One session time
Carries Today's session time, when you move it in either app.
Move the session in IronStack and MealStack says so the next time you open it: Sync to the new time, or Skip. It works the other way too. Neither moves the other by itself.
IronStack → to MealStack
Live in both
Fuel follows the work
Carries When today's session started and when it ended.
The shake after the session is called when you finish, not at an hour picked in advance, and the meals after it re-time on the real end. Switch on "IronStack times my after-session meals" in MealStack.
Both apps → to Both apps
Live in both
Badges that see both
Carries Whether you trained and ate to plan on the same day.
Double Stacked in both apps, for the days both did their job. In MealStack, Fuelled and Stacked for a carb surge before a session IronStack logged, and Straight off the bar for a shake on time after one.
IronStack → to MealStack
IronStack ready · MealStack next
The carb surge knows when you train
Carries When your sessions usually start, by weekday, worked out from your own log.
MealStack anchors the carb surge to the hour you really lift on a Saturday, without you typing it in.
Both apps → to Your files
IronStack exports it · MealStack uses its words
One way to write it all down
Carries The Mission Built Schema: one documented, versioned vocabulary. A workout reads like a meal, a program like a plan, a session like a day.
Export from both and a single script or spreadsheet reads the lot. Your data outlives either app.
Either app → to Both coaches
Designed
One coach profile
Carries Bodyweight, height, age and goal, the details a coach needs for a target.
Tell one coach once. The other already knows.
"IronStack ready" means IronStack's half is built and waiting, and MealStack reading it is next on MealStack's list. Installing both turns nothing on that you have not said yes to.
A Saturday with both
7:10 AMMealStackBreakfast logged forty minutes late. The morning tightens; the carb surge does not move.
8:30 AMMealStack · nextCarb surge, ninety minutes before the session IronStack says you usually start on a Saturday.
10:02 AMIronStack"Three fifteen for three at eight." Chalk stays on the bar. The rest clock starts itself.
11:14 AMIronStackSTACKED. Heavy lower day, 22 working sets, one new record. The workout goes to Health.
11:45 AMMealStackThe shake, called the minute the session ended. The meals after it re-time on the real end.
9:00 PMApple HealthApple Health shows the day whole: what you ate and what you lifted, on one timeline.
The rules that outrank the features
Neither needs the other
Delete one and the other works exactly as it did. Nothing in either app pretends the other is there.
Nothing moves without a yes
A moved session asks before it moves anything. The after-session timing is its own switch. Travel is one switch because it is one trip.
It stays on the phone
The two apps talk through Apple Health and a private shelf on your iPhone. No server, no account, nothing in between.
One writer per fact
IronStack owns what happened in the gym. MealStack owns what you ate. Neither edits the other.