Coming to the App Store

YOUR RUNS.
YOUR DATA.
YOUR PLAN.

RunHub is an iOS training companion that syncs with Strava, tracks your zone performance over time, discovers local races, and helps generate and import AI-powered training plans, all in a single interface built for runners.

20000+
Races Mapped
5
Tabs
1
Athlete
RunHub Dashboard showing weekly miles, YTD stats, and weekly mileage chart

EVERYTHING A
RUNNER NEEDS

Five purpose-built screens — Dashboard, Schedule, Performance, Gear, and Discover — connected by Strava sync and driven by your real training data.

Dashboard
YOUR WEEK
AT A GLANCE

Weekly miles, YTD totals, average pace, runs per week, all auto-calculated from your Strava data. Reorderable stat cards, a day-by-day activity strip, and a weekly mileage bar chart give you instant clarity on your training load.

  • Total YTD miles across all synced runs
  • Upcoming races with goal times and countdowns
  • Personal bests tracked across all distances
  • Training Snapshot for AI-ready data export
Dashboard
Races and Personal Bests
Schedule
PLAN YOUR
TRAINING

Weekly and monthly calendar views with full event management. Add workouts, races, trips (with automatic flight-day detection), and rest days. See Strava activities overlaid in green alongside your planned events.

  • Weekly & monthly calendar views
  • Smart trip planning with departure/return dates
  • Mileage totals per week (planned vs actual)
  • AI Training Plan import allows you to paste a full plan into your calendar from any AI
Schedule weekly view
Add event - trip

New Feature
ZONE PACE
PERFORMANCE

Track how your pace improves within each heart rate zone over time. RunHub filters your runs by HR zone (with ±8 bpm tolerance), plots weekly averages, and highlights your trend, showing real aerobic fitness gains that pace alone can't capture.

  • Zone 2, 3, 4, and overall pace charts
  • Configurable time windows: 4W, 8W, 12W, 6M, All
  • Trend callout: "0:50/mi faster in Zone 2 Pace"
  • HR zones configurable via Max HR, HRR, or Lactate Threshold
  • Built-in Race Predictor using modified Riegel formula that accounts for recent training data
Performance zone pace chart

New Feature
DISCOVER
LOCAL RACES

A map-based race finder with 20000+ races, color-coded by distance. Search by city, filter by 5K through Ultra, set date ranges, and adjust your search radius. Tap any pin for race details, registration links, and one-tap calendar import. Jump into a race on your weekend trip wherever you are.

  • Interactive map with distance-colored markers
  • Filter by distance: 5K, 8K, 10K, Half, Full, Ultra
  • Date range and radius controls
  • Location search with autocomplete
  • One-tap add to your schedule
Discover map with race pins

New Feature
AI TRAINING
PLANS

A 4-step guided flow that assists in generating and importing a personalized training. Choose your race distance, set a goal time, pick training days, and optionally include your recent mileage and pace data. Chat GPT, Claude, Gemini, or your AI of choice will return a compatible file based on the prompt for easy importing into RunHub. Review every workout, toggle individual sessions on or off, then import the entire plan to your schedule with one tap.

  • 4-step flow: Setup → Copy → Paste → Review
  • Supports 5K through Ultra distances
  • Optional Strava data inclusion for personalized pacing
  • Full plan preview: 14 weeks, 83 workouts, 663 miles
  • Per-workout toggle before importing to schedule
AI Training Plan setup
AI Training Plan review

GEAR, SNAPSHOTS,
& STRAVA SYNC
Gear
SHOE BROWSER

Browse 50+ running shoes with expert scores, category tags, weight, drop, and pricing. Filter by category (Daily, Tempo, Race, Trail, Recovery), sort by rating, and organize into Owned, Wishlist, and Shopping tabs to manage your rotation.

Gear shoe browser
Training Snapshot builder

FROM SPREADSHEET
TO APP STORE

RunHub started as a Google Sheets dashboard. A manual tracker where I logged weekly mileage, heart rate zones, race goals, and personal records by hand. It worked, but it was tedious: copy-pasting Strava data, manually calculating zone paces, and scrolling through rows to spot trends.

I wanted something that did it all automatically. Something that synced with Strava, showed me whether my Zone 2 pace was actually improving, helped me find local races, and could generate a real training plan based on my fitness, not a generic 16-week template.

So I built RunHub. Flutter for the frontend, Node.js + PostgreSQL on Railway for the backend, Strava OAuth for data sync. Every feature, from the zone pace charts to the AI plan import flow, was designed to solve a real problem I had as a runner training for marathons.

Soon to be live on the App Store.

Original Google Sheets training dashboard

TECH STACK

Built as a solo developer project, every screen, API endpoint, and deployment pipeline was written from scratch.

📱
Flutter / Dart
Cross-platform UI framework. Single codebase targeting iOS with dark-themed custom widgets.
Riverpod
Reactive state management with providers for activities, calendar events, and platform status.
🛤️
GoRouter
Declarative navigation with auth guards, bottom tab routing, and deep-linked sheets.
🚂
Railway
Node.js + Express backend with PostgreSQL. Handles Strava OAuth, activity sync, and shoe image caching.
🟠
Strava API
Full OAuth 2.0 flow with token refresh. Syncs all runs, paces, heart rates, and elevation data.
🔐
Google Sign-In
Authentication via Google Identity. Tokens stored securely with flutter_secure_storage.
🤖
AI Integration
Training plan generation using LLM with structured prompts built from real Strava data context.
📊
Race Predictor
Modified Riegel formula with 5 adaptive factors (aerobic base, long runs, consistency, recency, HR efficiency).