MacroDay is a daily macro planner built for gym-focused people who are tired of logging every meal. Most nutrition apps are reactive you log what you ate, then feel guilty later. MacroDay flips this: plan your meals in the morning, get instant AI-powered macro analysis, then check in once at night to close the loop.
The Problem
Apps like MyFitnessPal demand constant meal logging throughout the day. The friction is real people abandon the habit within days. But the people who care most about macros (gym-goers chasing protein and fiber targets) are exactly the ones who need a simple system, not a data-entry job.
How It Works
Two touchpoints a day:
Morning check-in — Tell MacroDay what you're planning to eat for breakfast, lunch, and dinner. Use voice input or type it in. Instantly see 5 animated SVG macro rings showing how well your plan covers your daily targets (calories, protein, fiber, carbs, fats). Claude AI gives you specific written feedback and snack suggestions to close any gaps. Tap "Add" on a snack, and all 5 rings update live with the new numbers.
Night check-in — Confirm what you actually ate. Followed your plan? Quick tick-box list. The day went differently? Enter your actual meals. Either way, you get an end-of-day summary showing real macro numbers vs. targets — and if you hit ≥90% average, you get a celebration card.
The Differentiator
MacroDay is planning-first, not logging-first. You lock in your intention in the morning, which means you make better decisions proactively, not reactively. The closest reference is Welling, but MacroDay goes further: You're setting an intention at the start of the day, not just tracking what already happened.
Milo vs. Evil Vilo
The app's mascot system is its personality. In your profile, you choose:
- Milo (Good) — warm, encouraging, genuinely proud of you
- Evil Vilo — a ragebait villain who will roast your nutrition choices without mercy
Vilo is not softened. He is harsh. If you log "some chicken" without portion sizes, he will be embarrassed on your behalf. This is not a bug — it's the feature that makes people screenshot and share.
## Inspiration I've tried every nutrition app. I always quit within a week, not because I stopped caring about my macros, but because logging every meal all day is exhausting. I wanted an app that matched how I actually think about food: plan it in the morning and check in once at night. That's MacroDay.
What it does
MacroDay gives you two touchpoints a day to hit your macro targets. In the morning, you tell it what you're planning to eat; it instantly analyzes your plan across 5 macros (calories, protein, fiber, carbs, and fats) using Claude AI and suggests snacks to close any gaps. At night, you confirm what you actually ate and get a real end-of-day summary. Planning-first, not logging-first.
How I built it
FastAPI backend serving a vanilla HTML/CSS/JS frontend as a single service. All macro analysis runs through one POST /api/analyze endpoint powered by Claude Haiku. SVG rings visualize macro progress in real time. Voice input via Web Speech API. Data stored in localStorage — no auth required. Deployed on Railway.
Challenges I ran into
Getting Claude to return consistent structured JSON across vague and specific meal inputs was the hardest part. The solution was building vague-input detection directly into the prompt Claude returns needs_clarification: true instead of guessing from incomplete descriptions. Also hit Railway environment variable configuration issues on first deploy; the API key had to go in the service-level variables tab, not the shared project variables.
Accomplishments that I'm proud of
The Evil Vilo mascot system. Vilo is a rage-bait villain who genuinely roasts your nutrition choices, and it works. The live snack ring updates (add a snack, and all 5 rings update instantly) feel polished. And shipping a complete end-to-end app — profile, morning check-in, night check-in, end-of-day summary, time-aware routing — in under 2 days.
What I learned
Prompt engineering is product design. How you instruct the model determines the entire user experience, Vilo's tone, the clarification gate, and the snack suggestion quality. Also learned that single-service architecture (FastAPI serving both the frontend and API) eliminates a whole class of deployment problems. And that planning the app fully before writing a line of code made the build dramatically faster.
What's next for MacroDay
Photo macro analysis: photograph a meal, and AI estimates the macros from the image. Push notifications for morning and night reminders. Multi-day trend insights ("You've been low on fiber all week"). And a post-workout mode with high-protein suggestions triggered right after a workout.
Built With
- claude
- css
- fastapi
- html
- javascript
- localstorage
- python
- railway
Log in or sign up for Devpost to join the conversation.