Inspiration

We’ve all been there: staring at a notification that says "Run 5km today" after a brutal, exhausting day at work. The result? We ignore it, feel guilty, and eventually break our streak.

Traditional fitness apps are rigid. They act like drill sergeants. We realized that what’s missing isn't "more discipline," but empathy. We were inspired by BJ Fogg’s Tiny Habits methodology—the idea that consistency matters more than intensity. We wanted to build an AI agent that understands "I'm tired" and doesn't push you to quit, but instead negotiates a smaller, winnable victory to keep the momentum alive.

What it does

FlexiFit is an AI Wellness Agent designed to prevent burnout through negotiation.

  • Empathy-First Chat: You can tell the AI, "I'm too tired to run 10km." Instead of forcing you, it negotiates a Micro-Habit (e.g., "How about just putting on your running shoes?").
  • Smart Journaling: It tracks your "Journey History," distinguishing between goals you Conquered versus those you Dropped, giving you a realistic view of your progress.
  • Dynamic Personas: Using Generative AI, it analyzes your behavior to create unique RPG-style identity cards (e.g., "The Strategic Pengu" for slow-but-steady users), making the journey fun.
  • Voice-Enabled: Supports voice input for friction-free venting when you are exhausted.

How we built it

We built a robust, cross-platform ecosystem:

  • Frontend: Built with Flutter for a seamless experience on Android, iOS, and Web. We implemented a glassmorphic UI with constrained layouts for desktop web polish.
  • Backend: A stateless FastAPI (Python) server deployed on Railway.
  • AI Brain: Powered by Google Gemini, utilizing system instructions tailored for negotiation and psychological safety.
  • Observability & Evaluation (The Secret Sauce): We integrated Comet Opik to build an LLM-as-a-Judge pipeline. A secondary "Judge Agent" evaluates every response in real-time, scoring it on an "Empathy Scale" (1-5). If the score is low, the system self-corrects before replying to the user.

Challenges we ran into

  • Balancing Empathy vs. Pushover: It was hard to prompt the AI to be understanding without letting the user give up completely. We had to fine-tune the "Negotiator" persona to be firm yet kind.
  • State Management: Handling complex chat history and goal states across a stateless backend and a local-storage frontend required careful synchronization.
  • Web Layouts: Making a mobile-first Flutter app look professional on a wide web screen was tricky. We solved this by implementing "Bento Grid" layouts and constrained width containers for the web version.

Accomplishments that we're proud of

  • Automated Evaluation Pipeline: **Opik integration. Seeing the "Empathy Score" appear automatically in our dashboard for every chat proves our agent is safe and effective.
  • The "Strategic Pengu": Successfully connecting user statistics to a Generative AI flow that creates unique, funny, and motivating character cards.
  • Polished UI/UX: Achieving a "production-ready" feel with micro-interactions (typing indicators, confetti, shimmer effects) that make the app feel alive.

What we learned

  • Observability is Non-Negotiable: Building AI agents without tracing is like flying blind. Opik gave us the visibility we needed to trust our agent.
  • Context is King: The AI needs to know the user's current goal and their emotional state to negotiate effectively.
  • Less is More: The most effective health intervention isn't a complex plan, but a simple permission to do less when necessary.

What's next for Flexifit App

  • Wearable Integration: Automatically detecting fatigue via Heart Rate Variability (HRV) to trigger a negotiation before the user even opens the app.
  • Social Quests: Allowing users to negotiate group goals with friends.
  • Advanced RPG Evolution: evolving the personas (e.g., "Strategic Pengu" evolves into "Emperor Pengu") based on long-term consistency streaks.

Built With

Share this project:

Updates