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:
- User speaks → audio recorded as M4A (44.1kHz, 128kbps)
- Audio sent to Groq Whisper API → transcribed to text
- Transcription sent to Llama 3.3 70B with custom prompt → parsed into structured JSON
- Backend validates and logs to SQLite calendar database
- 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
- 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).
- 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.
- 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).
- 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.
- 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
- android-studio
- dart
- flutter
- flutter-sound
- groq
- llama
- provider
- restful-api
- shelf
- sqflite
- sqlite
- whisper

Log in or sign up for Devpost to join the conversation.