RunForge
First run

RunForge

Training analytics from your Intervals.icu account. Connect your own Firebase project to sync across devices — or skip and use it locally right now.

Firebase console steps
  1. console.firebase.google.com → Add project (name it RunForge).
  2. Build → Authentication → Sign-in method → enable Google.
  3. Build → Firestore Database → Create database → production mode.
  4. Firestore Rules tab → publish the rule below.
  5. Settings → General → Your apps → </> Web → copy the firebaseConfig object.
rules_version = '2';
service cloud.firestore {
  match /databases/{database}/documents {
    match /users/{uid}/{document=**} {
      allow read, write: if request.auth != null
        && request.auth.uid == uid;
    }
  }
}

Heads up: this is saved in this browser only. Open RunForge in a different browser, a private tab, or a fresh install and you'll be asked again — that's the browser, not a bug.

RunForge

Training, measured

Sign in to sync your runs, settings and dashboard across devices.

RunForge
Training analytics
RunForge
Not synced
Fitness score
–/100—
—

This week

Dashboard

Drag a widget by its header to move it anywhere on the grid · drag the corner to resize · double-click the corner for the default size · with a widget's grip focused, arrow keys move and Shift+arrows resize.

Sync

Connect Intervals.icu in Settings, then sync to pull your training history.

Run log

Data source

RunForge only reads your Intervals.icu activities. Nothing is written back.

Not connected.

Training goal

Sets the weekly-mileage bar that scores 100. Half is the default 50 mi/wk; marathon training runs 70; 5K training runs 30.

Themes are saved to your account, so every device you sign in on looks the same.

Current
Built-in
My themes
Random theme

Each seed makes one theme, the same way every time — shuffle until one feels right, then keep it, or share the seed. Every random theme is checked so its chart colours stay easy to tell apart, including for colour-blind viewers.

Heart rate

Zones and the training-load model scale to your max heart rate. Leave it blank to use the highest value seen in your runs — one sensor spike can skew that, so set it if you know yours.

Zone boundaries

Lower bound of each zone, as % of max HR. Zone 5 runs to 100%.

Weight

Goal 190 lbs. Weight next to mileage moves more than a score does.

No weigh-ins yet.

Account & data

How the score works

Anchor100 = 1:30 half @ 160 bpm

Pace40%
HR efficiency40%
Volume20%

Motivational, not scientific. Intervals.icu already computes CTL/ATL training load with better math — use that for decisions. This score exists to give the dashboard one headline number, with a band and an attribution so it can explain itself.

Add a widget

Pick a ready-made widget, or build one from any metric.

Design a widget

Live preview

Custom theme

Changes show live on your dashboard.