Inspiration

This project started because I did not want another fitness app that only counted workouts. I needed something that could survive real life.

I am a full-time supply chain buyer, a dad with 50/50 custody, and someone trying to rebuild fitness, discipline, sleep, nutrition, and momentum at the same time. My life does not happen in clean weekly templates. Some weeks I have my daughter Hazel. Some days work runs long. Sometimes I get sick. Sometimes I miss a workout and need a fair way to recover without pretending the miss did not happen.

I wanted a system that felt less like tracking and more like command. Something that could tell the truth, preserve progress, protect against duplicate rewards, handle makeup workouts, pause correctly during recovery, and still make the next action obvious.

Spartan Physique Tracker began as my private Ghost of Sparta proof of concept: a real campaign from July 1 through October 31, 2026, where workouts, protein, hydration, sleep, recovery, ranks, and rewards all live inside one auditable progression system. The goal was not to gamify fitness with shallow badges. The goal was to turn a messy personal transformation into a durable operating system.

Build Week gave the project a deadline and a forge. With Codex, ChatGPT, and Replit, I started turning the live app into something more rigorous: separating Core BP from Bonus BP, locking rank gates, preserving earned ranks, adding readiness states, building recovery and shoulder-safety logic, and designing the system so historical progress can be recalculated without rewriting the truth.

The inspiration is simple: build the fitness app I actually needed, one that respects effort, protects data, and keeps working when life does not follow the plan.

Life is not a journey, it's a campaign, start yours~

What it does

Spartan Physique Tracker organizes a personal transformation around Body, Mind, and Soul.

Command identifies the next highest-value action. Battles manage scheduled strength work, recovery drills, required evidence, shoulder specialization, pain-safe substitutions, and makeup workouts tied to the original scheduled date. Campaign Forge captures mission timing, equipment, limitations, protein and sleep targets, supplements, optional CPAP use, and user-selected Mind and Soul activities.

GPT-5.6 generates a structured daily Battle Brief using only validated campaign context. AI Meal Scan analyzes a resized meal photo, returns a conservative protein range and confidence, and waits for the user to edit and confirm the estimate. Deterministic code—not the model—owns BP, rank eligibility, and campaign history.

An isolated, server-authorized QA Clock lets judges exercise Monday, Wednesday, Friday, and makeup scenarios through the real workout evaluator. Every result displays projected BP while awarding zero BP and writing no campaign data.

Why it is different

Most fitness products are either passive logbooks or open-ended AI chats. Spartan Physique Tracker closes the loop:

  1. The user defines the mission, equipment, limitations, and activities that genuinely fit.
  2. GPT-5.6 interprets that bounded context and returns structured guidance.
  3. The human reviews uncertain inputs such as meal-photo protein.
  4. Deterministic evaluators decide eligibility and append the result to an auditable ledger.

That separation is the product. AI can help the campaign adapt to real life, but it cannot manufacture progress.

How we built it

The application uses React, TypeScript, Vite, TanStack Query, Wouter, an Express API, PostgreSQL with Drizzle, and Replit for the authoritative development environment.

Codex helped audit the pre-existing application, reconcile a locked product blueprint, translate campaign rules into deterministic TypeScript evaluators, implement and review frontend/API changes, diagnose a rank-threshold overshoot, run focused tests and production builds, and conduct browser walkthroughs against the working preview.

Greg retained the product decisions: Body + Mind + Soul, campaign duration, CPAP opt-in behavior, equipment inputs, limitations, mission selection, and the rule that AI cannot award points or silently log nutrition.

GPT-5.6 is integrated through the OpenAI Responses API. Battle Brief and Meal Scan use bounded inputs, strict JSON Schema output, request and response validation, timeouts, and store: false.

The final isolated judge branch passed 36/36 judge-route tests, the full workspace typecheck, the API build, and the frontend production build. The public deployment uses synthetic data, requires no login, rejects ordinary mutations, and remains structurally separated from the active production campaign.

What was new during Build Week

  • Deterministic progression and readiness engines.
  • Discipline streak, workout chain, Spartan Week, and monthly badge logic.
  • Recovery Drill and shoulder-specialization evaluators.
  • Evidence-gated completion and pain-safe substitutions.
  • Makeup logic that preserves original scheduled-workout identity.
  • Campaign Forge personalization and selectable Mind/Soul pools.
  • GPT-5.6 Battle Brief and meal-image analysis.
  • A zero-write judge simulator using the real evaluator.
  • Persistent Profile access and consistent Command/Armory thresholds.
  • Rank-overshoot regression repair without resetting production BP.

The pre-existing project already included the mobile tracker, active campaign data, core navigation, basic battle and quest behavior, meals, body tracking, checkpoints, BP/ranks, Replit hosting, and the original visual language. The submitted branch and Codex evidence log distinguish that foundation from Build Week work.

Challenges we ran into

Turning theme into enforceable rules

The hardest work was resolving collisions: permanent rewards versus current readiness, makeup timing versus recovery duties, set progression versus resistance progression, and historical correction versus append-only auditability.

Protecting real campaign data

The tracker is used for an active campaign. We could not wipe the database, invent history, or let judges mutate real BP. That requirement led to a simulator whose storage interface has no write methods.

Making AI useful without making it the authority

An LLM should not decide rank eligibility or silently log a nutrition estimate. GPT-5.6 handles context-sensitive interpretation; schemas, deterministic evaluators, and human confirmation retain authority.

Accomplishments we are proud of

  • Monday, Wednesday, and Friday resolve the correct required shoulder region.
  • A makeup preserves the original opportunity and cannot duplicate credit.
  • Missing evidence blocks workout BP and chain advancement.
  • The judge simulator runs the same evaluator and visibly awards zero BP.
  • Profile limitations materially constrain GPT-5.6 output.
  • Turning CPAP off removes it from model context.
  • Meal-photo analysis reports a range and confidence instead of false precision.
  • Command and Armory now agree on the canonical next-rank threshold.
  • The final public judge walkthrough renders Command, Armory, Chronicle, and Reports from schema-compatible synthetic data without exposing or mutating the real campaign.

What we learned

Gamification becomes trustworthy only when its ledger is auditable. AI becomes useful only when it is grounded in real context and bounded by deterministic safety rails. Treating recovery, limitations, uncertainty, and data integrity as core mechanics produced a stronger product than adding more motivational copy.

What's next

  • Evolve the engine into an original commercial identity without changing its auditable progression model.
  • Run a small invitation-only beta focused on whether daily commands improve follow-through when plans meet real constraints.
  • Add privacy controls, export/delete tools, account isolation, and a production-grade release path.
  • Expand physique trends, correction workflows, and longer-term campaign comparisons.
  • Preserve the central rule: AI advises, humans confirm uncertainty, deterministic software owns earned progress.

Built With

Share this project:

Updates