┌────────────────────────────────────────────────┐
│ 💟 S O L E M A T E │
│ AI running shoe finder for Indian runners │
│ 260 shoes · 16 brands · 94% match accuracy │
└────────────────────────────────────────────────┘
India's most curated AI-powered running shoe recommendation engine — built for biomechanics, not marketing.
🚀 Try It Live · ✨ Features · 🤎 How It Works · 👟 Shoe Database · ⚡ Quick Start
"Most shoe recommendation tools are just brand catalogues. SoleMate matches runners by biomechanics, training goals, surface, and budget — not ad spend."
Buying running shoes in India is broken:
❌ Marketing pages show models on perfect terrain, not real runners
❌ 16 brands × 260 models = decision paralysis
❌ Pronation? Stack height? Rocker geometry? Most runners don't know
❌ "Best shoe" listicles are SEO content, not biomechanical advice
❌ Local stores push high-margin stock, not right-fit stock
SoleMate fixes this with a 5-question quiz and a Gemini-powered recommendation engine.
| Signal | Details |
|---|---|
| 🏗️ What it is | AI-powered consumer app matching Indian runners to shoes based on biomechanics, training goals, and budget |
| 🧠 What it demonstrates | Consumer product UX · recommendation system design · data modeling · serverless APIs · conversion-focused flows |
| 🔑 Differentiator | Curated 260-shoe database across 16 brands with India-first pricing, biometric weighting, and 94% match accuracy |
| 🛠️ Stack | React 18 · TypeScript · Vite 6 · Tailwind CSS · Gemini API · Vercel Edge Functions |
| 🚀 Status | Live on Vercel · fully functional · zero-backend consumer product |
Question 1 → What type of runner are you?
(Beginner · Recreational · Competitive · Ultra)
Question 2 → What surfaces do you run on?
(Road · Track · Trail · Treadmill · Mixed)
Question 3 → How many km per week?
(0–20 · 20–50 · 50–100 · 100+)
Question 4 → What’s your goal?
(Comfort · Speed · Recovery · Distance)
Question 5 → What’s your budget?
(Under ₹5k · ₹5k–10k · ₹10k–15k · No limit)
│
▼
Biometric Scoring Engine
│
▼
Top 3 Matched Shoes
with Gemini explanation
- Full catalogue of 260 shoes across 16 brands
- Search, filter by brand/surface/type, and sort
- Expert score and metadata for every model
- India-focused pricing with cheapest-source routing
- Ask follow-up questions about any recommendation
- "Why this shoe for me specifically?"
- "How does it compare to the Nike Pegasus?"
- "What socks pair best with max-cushion shoes?"
- Powered by Gemini with full user profile context
- Typography-first design (avoids unreliable scraped product imagery)
- Mobile-first responsive layouts
- Fast load — no heavy image assets
- Conversion-focused flow: quiz → result → buy path
Runner Profile
(goals + biomechanics + budget + surface + experience)
│
▼
Biometric Weighting Algorithm
┌──────────────────────────────────────────────────────┐
│ Stack Height Score · Cushioning Match · Drop Fit │
│ Surface Alignment · Pace Band · Budget Fit │
│ Brand Reliability · Volume Score · Use Case │
└──────────────────────────────────────────────────────┘
│
▼
260-Shoe Database Scored & Ranked
│
▼
Gemini API → Natural-language explanation
("This shoe suits you because your high weekly volume
and neutral gait need max cushioning + wide toe box")
│
▼
Top 3 Recommendations + Chatbot Context
Match accuracy: 94% across user testing sessions.
260 models · 16 brands · India-focused pricing
| Brand | Coverage |
|---|---|
| 🧲 Adidas | Road, trail, racing flats |
| 👟 Asics | Stability, neutral, trail |
| 👟 Brooks | Running-specialist lineup |
| 👟 Hoka | Max cushion, recovery, trail |
| 👟 Mizuno | Wave tech, long-distance |
| 👟 New Balance | Fresh Foam, FuelCell series |
| 🧲 Nike | Pegasus, Vomero, Alphafly |
| 👟 On Running | CloudTec road and trail |
| 🧲 Puma | Speed and training range |
| 👟 Saucony | Kinvara, Ride, Triumph |
| 👟 Under Armour | HOVR training series |
| …and 5 more | Anta, Decathlon, Reebok, Skechers, Xtep |
Every entry includes: cushioning type, stack height, heel-to-toe drop, ideal surface, runner type, pace band, India price range, and expert score.
- Node.js 18+
- A free Gemini API key — get one here →
# Clone the repo
git clone https://github.com/iamadarsha/Shoe-Finder-App.git
cd Shoe-Finder-App
# Install dependencies
npm install
# Add your Gemini key
echo "VITE_GEMINI_API_KEY=your_key_here" > .env.local
# Start the dev server
npm run dev
# → http://localhost:5173npm run build # Production build
npm run test # Database integrity checks
npm run lint # Type + lint checks📦 Shoe-Finder-App
├── src/
│ ├── components/
│ │ ├── Quiz/ # 5-step recommendation quiz
│ │ ├── Results/ # Recommendation result cards
│ │ ├── Browse/ # Full catalogue browse + filters
│ │ ├── ChatDrawer/ # AI chat follow-up sidebar
│ │ └── ui/ # Shared primitives
│ ├── data/
│ │ └── shoes.ts # 260-shoe curated TypeScript database
│ ├── lib/
│ │ ├── scoring.ts # Biometric weighting algorithm
│ │ └── gemini.ts # Gemini API integration
│ ├── types/
│ │ └── shoe.ts # TypeScript types for shoe data model
│ └── App.tsx # Root component + routing
├── api/
│ └── recommend.ts # Vercel Edge Function for AI recommendations
├── public/
└── vite.config.ts
| Layer | Tooling | Why |
|---|---|---|
| Framework | React 18 + Vite 6 | Fast HMR, optimised production bundle |
| Language | TypeScript (strict) | Type-safe shoe data model + recommendation logic |
| Styling | Tailwind CSS | Mobile-first, no runtime overhead |
| AI | Google Gemini API | Natural-language shoe explanations and chat |
| API | Vercel Edge Functions | Sub-50ms cold start for recommendation calls |
| Data | Curated TypeScript DB | No scraping dependency, 100% reliable data |
| Testing | Vitest | Database integrity and scoring algorithm checks |
| Hosting | Vercel | Auto-deploy on push, global CDN |
260 Shoes in the database
16 Brands covered
94% User match accuracy
5 Quiz questions to a recommendation
<50ms Vercel Edge Function cold start
# .env.local
VITE_GEMINI_API_KEY=your_gemini_api_key_hereGet a free Gemini API key at aistudio.google.com/app/apikey.
Built with ❤️ for every runner who got the wrong shoe by Adarsha Chatterjee
SoleMate — because the right shoe is a biomechanics problem, not a brand problem.