Inspiration

Most of us have spent hours on a court or in the gym, repeating the same motion, only to realize weeks later that our form was fundamentally flawed. High-quality coaching is often locked behind expensive hourly rates or rigid schedules that don't fit a busy professional's life. We were inspired by the "Duolingo model"—the idea that feedback doesn't always have to be a 60-minute session with a pro; it just needs to be on-demand, affordable, and directionally correct. We wanted to build a tool that removes the self-consciousness of practicing alone and provides that "instant coach" in your pocket.

What it does

Practice is an AI-driven personal sports coach. Users capture or upload short video clips (up to 60 seconds) of themselves performing various sports—from a tennis serve to a ballet plié. Unlike other apps that require you to manually tag your drills, our AI automatically identifies the specific actions within the video. It then breaks down the performance with:

  • Action-Specific Analysis: Timestamps and form critiques for every move detected.
  • Actionable Tips: 2-3 concrete drills to improve technique immediately.
  • Progressive History: An endless-scrolling archive of your practice sessions to track your growth over time.

How we built it

We prioritized a rapid, scalable MVP using a modern full-stack mobile architecture:

  • Frontend: Built with Expo (React Native) for cross-platform performance and Gluestack UI for a clean, accessible design system.
  • Backend-as-a-Service: We used Convex to handle our database, file storage for videos, and edge functions.
  • AI Engine: The "brains" of the app is a modular Analysis Service that routes video data to Gemini 3 Pro via custom Model Adapters. We leverage the Gemini 3 Pro API as the core intelligence engine for our automated coaching. To integrate this into the app, we built a modular Analysis Service that manages the interaction between our Convex backend and the Gemini API.
  • Structured Feedback: We developed a strict JSON-contract prompt system that ensures the AI returns consistent, parseable data, including identified actions, timestamps, and tips.

Challenges we ran into

One of our biggest hurdles was handling multi-action videos. Initially, the AI would give general feedback, but we wanted it to be specific—identifying, for example, a volleyball serve followed by a set in the same clip. Refining the prompt engineering to ensure the AI stayed within its JSON schema while accurately timing these actions took significant iteration. We also had to balance video quality with processing speed, ultimately landing on a 720p/30fps standard to keep uploads fast while giving the AI enough detail to see a wrist flick or a foot placement.

Accomplishments that we're proud of

We are particularly proud of our "Zero-Tag" interface. Users don't have to tell the app they are doing a "backhand" or a "squat"—they just select the sport and hit record. The ability to accurately map a single video to multiple discrete skill analyses feels like magic. We also implemented a robust automatic retry logic for AI analysis, ensuring that if a model hiccup occurs, the user experience remains seamless.

What we learned

Building "Practice" taught us that AI feedback is most effective when it’s constrained. Instead of asking the AI to "be a coach," we gave it a specific library of supported actions per sport. This drastically improved the accuracy of the critiques. We also learned the importance of "graceful processing"—using 15-second status updates and 60-second timeouts to manage user expectations during heavy AI compute tasks.

What's next for Practice

The MVP is just the first set. Our roadmap includes:

  • Visual Side-by-Side: Comparing an old video with a new one to see "Form A vs. Form B" improvements.
  • Coach Marketplace: Connecting users with human experts for deep-dive sessions based on their AI-collected data.
  • Social Training: Creating "Practice Groups" where teammates can share highlight reels and provide peer feedback.
  • AI-Generated Plans: Moving from reactive feedback to proactive training schedules tailored to a user's specific weaknesses.

Built With

Share this project:

Updates

Submission history