- Next.js 14 (App Router)
- Supabase (Postgres DB + Auth)
- Google OAuth (via NextAuth.js)
- Groq (LLaMA 3.3 70B — workout plan generation + macro estimation)
- Gemini 1.5 Flash (food photo scanning)
- Vercel (free hosting)
- 🤖 AI workout plan generation (gender, goal, level, equipment)
- 🏋️ Exercise logging: sets, reps, weight, RPE
- ⏱️ Rest timer between sets
- 🏆 Automatic PR detection
- 🍽️ Food logger: AI text description, photo scan (Gemini), manual entry
- 📊 Macro tracking (calories, protein, carbs, fat) with targets
- 📈 Progress charts (weight, workout volume)
- 💪 Body measurements tracker
- 🔥 Muscle group heatmap (recent training)
git clone <your-repo>
cd ironpulse
npm install- Go to supabase.com → Create new project
- Open SQL Editor → Run the contents of
supabase/schema.sql - Copy your Project URL and anon key from Settings → API
- Go to console.cloud.google.com
- Create a project → Enable Google+ API
- Create OAuth 2.0 credentials
- Add
http://localhost:3000/api/auth/callback/googleto Authorized redirect URIs - Copy Client ID and Client Secret
Groq (free, no credit card):
- Go to console.groq.com
- Create account → API Keys → Create key
Gemini (free tier):
- Go to aistudio.google.com
- Get API key (free with Google account)
cp .env.local.example .env.localFill in .env.local:
NEXTAUTH_URL=http://localhost:3000
NEXTAUTH_SECRET=<run: openssl rand -base64 32>
GOOGLE_CLIENT_ID=xxx
GOOGLE_CLIENT_SECRET=xxx
NEXT_PUBLIC_SUPABASE_URL=https://xxx.supabase.co
NEXT_PUBLIC_SUPABASE_ANON_KEY=xxx
SUPABASE_SERVICE_ROLE_KEY=xxx
GROQ_API_KEY=gsk_xxx
GEMINI_API_KEY=AIzaxxx
npm run devnpm install -g vercel
vercelOr connect GitHub repo at vercel.com and add env vars in project settings.
For production, also add to Google OAuth authorized redirect URIs:
https://your-app.vercel.app/api/auth/callback/google
- Sign in with Google
- Onboarding (6 steps): gender → goal → level → days/week → equipment → body stats
- AI generates your weekly workout plan via Groq
- Dashboard: today's workout, calorie ring, streak, muscle heatmap
- Workout tab: log sets/reps/weight, rest timer, PR detection
- Food tab: log meals via text AI, photo scan, or manual
- Progress tab: charts, PRs, body measurements
| Service | Free Limit |
|---|---|
| Groq | 30 req/min, 6000 req/day |
| Gemini Flash | 15 req/min, 1500 req/day |
| Supabase | 500MB DB, 2GB bandwidth |
| Vercel | Unlimited personal projects |
All free, no credit card required.