-
-
Built with GPT-5.6: Sol plans, Terra understands and coaches, and Luna carries context—with user-controlled writes.
-
Terra’s detected fridge ingredients stay editable and removable, so the user reviews the evidence before planning.
-
Today’s planned Push Day appears in the daily workout view with Open, Reschedule, and Remove controls.
-
The Coach proposes a shoulder-friendly Push Day update, but nothing changes until the user explicitly accepts it.
-
A Journal check-in combines sleep, energy, hunger, motivation, and notes to ground personalized Coach feedback.
-
A complete generated meal with reviewed ingredients, precise quantities, macros, and step-by-step cooking instructions.
-
Planned meals appear in the daily Nutrition view and stay separate from logged intake until the user taps Log.
-
Today at a glance: calories, macros, weekly goals, and the next planned workout in one clear dashboard.
-
A Venice weekend request adapts meals around travel while preserving the locked breakfast, workout, and other items.
-
Three distinct AI-generated 45-minute dumbbell plans, each reusable, structured, and ready for rotation.
-
AI-generated meal library with calories, macros, prep time, meal filters, and reusable recipes.
-
Describe the day, attach a fridge photo, and ask Terra to identify usable foods before proposing meals.
-
The centered Planner connects generated meals and workouts across the week in one practical daily schedule.
Inspiration
Most fitness apps track isolated numbers. Real life is connected: training changes appetite, meals affect energy, and stress or sleep can change both. I built FitForge to turn those fragmented signals into one adaptive loop—understand what actually happened, plan what should happen next, and offer useful coaching without guilt or guesswork.
What it does
FitForge combines daily fitness, nutrition, planning, and reflection in one mobile-friendly web app:
- AI Coach: gives personalized, actionable guidance grounded in the user's goals, profile, nutrition, workouts, journal, and plan.
- Adaptive Planner: builds and updates meal and training schedules around macro targets, preferences, training days, time constraints, food on hand, travel, and even a named restaurant meal.
- Nutrition logging: supports ingredients, reusable meals, explicit fasting days, meal-photo analysis, nutrition-label extraction, barcode scanning, OpenFoodFacts lookup, and a persistent shopping list.
- Workout tracking: supports reusable Training Plans, Custom Sessions, sets/reps/load, an app-wide timer, and AI-assisted calorie-burn estimates that learn from user corrections.
- Voice actions: lets users log food or workouts, write a journal entry, talk to the coach, and navigate from anywhere in the app.
- Progress and reflection: connects measurements, completed work, daily journals, and coach feedback so recommendations can adapt over time.
A key product decision is that the coach cannot silently change durable data. It reads only the scoped context it needs, creates a clear proposal, and waits for the user to confirm before a meal plan, training plan, goal, or Planner update is applied.
How I built it
The product is built with Next.js 16, React 19, TypeScript, Tailwind CSS, Supabase/PostgreSQL, and OpenAI.
OpenAI's Responses API powers coach conversations, structured reasoning, meal-photo and nutrition-label vision, voice intent routing, workout-calorie analysis, plan insight extraction, and adaptive planning. FitForge routes each job through a deterministic GPT-5.6 task policy so model, reasoning effort, context, and output limits match the work instead of using one oversized prompt for everything.
The coach and Planner use a signed Streamable HTTP MCP server. Rather than injecting an entire account into every prompt, the model calls narrow read tools for the relevant dates and domains. Write tools return server-owned, expiring proposals; the browser can execute one only after explicit confirmation. The same planning contracts can also run through the Codex SDK for selected expensive generation tasks.
The AI is paired with deterministic application safeguards. Nutrition totals are recomputed from reviewed user data, USDA references, or OpenFoodFacts data; complete planned days are validated against saved calorie and macro targets. Database mutations are atomic and idempotent, Supabase Row Level Security scopes every account, and AI runs record model, token, cache, latency, and cost metadata for observability.
For long coach relationships, FitForge keeps Responses continuity with previous response IDs and native compaction, while durable user memories remain explicit and auditable. The result is an agent that can use rich history without shipping the full database on every turn.
Challenges I faced
The hardest problem was making AI adaptation trustworthy. A convincing meal plan is not enough if its quantities are unverifiable, a missing food log is mistaken for fasting, or an older response doesn't represent current state. I solved this by separating model judgment from server-owned facts: the model chooses strategy and proposes changes, while deterministic code resolves ingredients, recalculates nutrition, validates ownership and freshness, and commits only confirmed proposals.
Context was another challenge. Fitness data spans meals, workouts, measurements, journals, preferences, and future intent. Sending all of it would be slow, expensive, and hard to reason about. Scoped MCP tools and compact decision briefs let the model fetch only the evidence needed for the current question.
Voice and mobile UX also required careful coordination. A spoken command may start on any screen, write to another domain, navigate to the exact new item, refresh visible state, and speak confirmation only after the durable write succeeds.
What I learned
I learned that the strongest agentic products are hybrid systems. Models are excellent at understanding intent, resolving tradeoffs, and explaining a plan; deterministic services are better at arithmetic, permissions, lifecycle rules, and exactly-once writes. Clear boundaries between those strengths made FitForge more useful, safer, and easier to test.
I also learned that observability is part of the product. Recording model identity, reasoning policy, tool calls, token usage, cache behavior, latency, and outcomes made it possible to improve quality and cost with evidence instead of intuition.
I have also learned that providing such service is currently very expensive and API costs could easily come up to 100$ per user assuming there are no compromises in response quality. This requires deeper thinking of how to package different usage tiers and when to launch which functionality.
What's next
Next, I want to deepen proactive—but still interaction-triggered—coaching, improve natural voice conversations, expand verified food data coverage, and run longer real-world evaluations of how well plans adapt to adherence, travel, schedule changes, and user feedback. I also want to make food and training plans generation feel more genuine and more fitting with user needs and preferences. Important aspect and probably the most challenging part is to maintain and improve user motivation to follow fitness goals, there is still lots of room for improvements in that area.
Built With
- cloudflare
- codex
- gpt-5.6
- mcp
- next.js
- openai
- openfoodfacts
- postgresql
- react
- tailwind
- typescript
- vitest
Log in or sign up for Devpost to join the conversation.