Roles:
- Aldo: Token Creation, Frontend
- Ryan: Frontend, Tester, Presenter
- Kirvey: Frontend, Backend (Gemini API, MediaPipe)
- Samuel: Frontend, Backend (Supabase integreation)
Inspiration
We wanted to provide a platform for people to inspire others by publishing their personal routine. Most fitness apps just track reps we asked what if your effort had real economic value? Fit Mirror was inspired by the idea that working out should earn you something on-chain, not just a streak badge.
What it does
Fit Mirror is a social fitness app where users attempt creator-uploaded workouts by recording themselves. A real-time pose estimation model (MoveNet) scores their form against the reference video. Pass the workout and earn FIT tokens directly to your Phantom wallet. Every attempt, reward, and creator payout is a real Solana transaction visible on-chain.
How we built it
Frontend: React + Vite, TailwindCSS, TensorFlow.js MoveNet for body tracking
Blockchain: Phantom Wallet, custom SPL token (FIT) on Solana devnet, @solana/web3.js + @solana/spl-token
Backend: Supabase (auth, database, storage) + Supabase Edge Functions (Deno) as a treasury signer for automatic token rewards
Scoring: Joint angle extraction + normalized body shape comparison across 40 sampled keyframes Challenges we ran into
Getting TensorFlow.js and Solana's web3 packages to coexist in Vite without Buffer/Node polyfill conflicts
Real on-chain SPL token transactions triggered automatically by workout results, no manual steps A pose scoring system that runs entirely in the browser with no server-side ML
What we learned
Solana devnet is surprisingly fast and developer-friendly for prototyping token economies. It is also very useful in learning how blockchain works and its implementations in projects.
What's next for Fit Mirror
Face verification gate before attempts to prevent cheating Live webcam mode instead of video upload Creator dashboards showing earnings per workout
Built With
- gemini
- javascript
- mediapipe
- phantomwallet
- react
- solana
- superbase
- vite
Log in or sign up for Devpost to join the conversation.