Inspiration

87% of people abandon fitness apps within the first month. After talking to dozens of gym-goers, I discovered the real problem: logging workouts is too tedious.

Imagine this: you just finished an intense workout. You're exhausted, sweaty, and ready to move on. But your fitness app wants you to tap through 5+ screens, type sets/reps/weight manually, remember exact numbers from 20 minutes ago, and spend 45 seconds per exercise.

Most people give up after a week. I thought: what if tracking was as easy as talking to a friend? Just say "Bench press 225, 5 reps yesterday" and it's done. No forms, no typing, just natural conversation.

What it does

Liftoff is a voice-first fitness app that understands natural language:

  • 🎤 Just speak naturally: "Went for a run yesterday" or "Bench press 225 for 5 reps"
  • 🤖 AI understands context: Recognizes dates ("yesterday", "Monday"), gym slang ("deads" = deadlift), and activity types
  • 📊 Instant logging: Automatically categorizes workouts (running, gym, swimming, cycling, yoga, meals)
  • 📅 Smart calendar: Visual timeline of your fitness journey with clean, organized entries
  • âš¡ 3 seconds vs 45 seconds: Turn tedious typing into effortless speech

Key Features:

  • Natural language parsing (handles "yesterday", "day before yesterday", "last Monday")
  • Multi-sport tracking (gym, running, swimming, cycling, hiking, yoga, meals)
  • Gym slang recognition ("deads", "chins", "ohp", "bench")
  • Smart defaults (intensity, equipment, focus areas)
  • Clean UI with refined color scheme and smooth animations

How we built it

Frontend (Flutter):

  • Flutter for cross-platform mobile app (Android/iOS)
  • flutter_sound for native audio recording (M4A format)
  • Provider for state management
  • Custom animations and polished UI with refined color theory

Backend (Dart):

  • Shelf framework for RESTful API server
  • SQLite (sqflite) for local data persistence
  • Groq AI for intelligent parsing:
    • Whisper for speech-to-text transcription
    • Llama 3.3 70B for natural language understanding
  • Custom date parsing engine (handles relative dates, days of week, specific dates)

AI Pipeline:

  1. User speaks → audio recorded as M4A (44.1kHz, 128kbps)
  2. Audio sent to Groq Whisper API → transcribed to text
  3. Transcription sent to Llama 3.3 70B with custom prompt → parsed into structured JSON
  4. Backend validates and logs to SQLite calendar database
  5. Flutter calendar auto-refreshes to show new entry

Architecture: Clean separation of concerns (UI ↔ Repository ↔ Backend ↔ AI), RESTful API design, robust error handling for microphone issues, network failures, and empty audio.

Challenges we ran into

  1. Android Emulator Microphone Issues The emulator's virtual microphone was inconsistent, sometimes transcribing as just "." (empty audio).

Solution: Added backend validation to reject empty/punctuation-only transcriptions with clear error messages, and improved mobile audio settings (44.1kHz sample rate, 128kbps bitrate).

  1. Date Parsing Complexity Users say "yesterday", "last Monday", "20th of October", "day before yesterday", all needed to work perfectly.

Solution: Built a custom date parser that handles relative dates, days of week, specific dates, and compound phrases.

  1. Generic Logging Initial regex-based parsing was too basic, "chicken and rice" logged as "workout", "chest workout" logged as just "workout".

Solution: Replaced manual parsing with Groq's Llama 3.3 70B LLM. The AI understands context (meal vs workout), activity types, intensity levels, equipment, and formats clean notes (removes filler words).

  1. Calendar Not Refreshing Voice logs saved successfully but didn't appear in calendar until app restart.

Solution: Added CalendarController.load() call after successful voice logging to force immediate UI refresh.

  1. User ID Mismatch Voice logs were saving as "anonymous" while calendar fetched for logged-in user, causing logs to never appear.

Solution: Modified voice assistant to send actual userId from the current session with each request.

Accomplishments that we're proud of

✨ From 45 seconds to 3 seconds - Reduced workout logging time by 93%

🤖 AI that actually works - Llama 3.3 70B achieves near-perfect accuracy in parsing natural language workouts

🎨 Polished UI - Refined teal color scheme, clean animations, thoughtful UX

📅 Smart calendar - Visual timeline that makes tracking feel rewarding, not tedious

🎤 Voice-first design - Built around speech, not tacked on as an afterthought

💪 Real-world tested - Successfully logged 50+ workouts during development (running, gym, meals, swimming)

What we learned

Technical:

  • Flutter's cross-platform capabilities are incredible (one codebase → Android + iOS + Web)
  • Groq's inference speed is insane. Whisper + Llama 3.3 processing in < 2 seconds
  • LLMs are better at parsing natural language than regex (by far!)
  • Audio handling differs significantly between web (MP3) and mobile (M4A)

Product:

  • **Friction kills adoption: Even 30 seconds of typing is enough to make users quit
  • Voice is the future: People want to talk to their apps, not type into forms
  • AI should be invisible: Users don't care about the tech, they just want it to work
  • Feedback matters: Clear error messages and status indicators build trust

Design:

  • Color theory matters-refined teal feels more professional than bright cyan
  • Remove anything that doesn't serve a purpose (like useless icons on cards)
  • Immediate feedback (auto-refresh) makes the app feel responsive and alive

What's next for Liftoff

Short-term:

  • iOS build (already cross-platform ready)
  • Workout streaks ("You've logged 7 days in a row! 🔥")
  • Meal calorie estimation with AI-powered nutrition tracking
  • Progress insights ("You've benched 225+ three times this month")

Medium-term:

  • Social features (share PRs with friends, workout buddies)
  • Apple Watch integration (log directly from your wrist)
  • Offline mode (record workouts without internet, sync later)
  • Export data (CSV, PDF reports for personal trainers)

Long-term:

  • AI personal trainer ("Based on your logs, try adding lat pulldowns")
  • Voice coaching (real-time form tips during workouts)
  • Integration with gyms (auto-log when you check in)
  • Wearable sync (Apple Health, Google Fit, Strava)

Built With

Share this project:

Updates