A free running diary

Are you actually getting faster?

Log the distance and time after each run. spur smooths out the good days and the bad days and shows your real pace trend, with nobody else looking.

No accountNo adsNo trackingOpen source, GPLv3
spur overview: trend pace 5:23 per km, 8 seconds faster than 30 days ago, with a chart of each run and the smoothed trend spur overview in dark mode: trend pace 5:23 per km with the pace chart
What it does

One honest number, and everything behind it.

Single runs are noisy: hills, heat, a bad night's sleep. spur looks past them to the trend, the way a good coach would.

Log

Ten seconds after you stop your watch

Enter the distance and one of time, pace or speed. spur works out the other two. No GPS, no syncing, no account: it works with any watch, or none.

Logging a 10 km run at 5:12 per km; spur fills in 52:00 and 11.5 km/h Logging a run in dark mode
Trends

Pace and volume, both at a glance

Each run is a dot, and the line through them shows your real form, so one hard day doesn't wreck the picture and one great day doesn't fool you. Beside it, your weekly distance or running time, with its own trend line.

  • Choose how much smoothing you want: off, soft, medium or strong
  • Compare with where you were 30 days or 4 weeks ago
  • Set a pace goal and get a date your trend should reach it
  • A gentle warning when a week jumps more than 10% above your recent average
Trends: pace chart with a goal line at 5:05 per km, and weekly volume bars with a volume trend of 32.3 km per week, up 8% on four weeks ago Pace and volume trend charts in dark mode
Stats

Race predictions and milestones

5K to marathon estimates from your strongest recent effort, using Riegel's formula. Totals, weekly streaks, your longest run, and milestones from your first 5K to sub-five pace.

Stats: 625 km total, 75 runs, race predictions 5K 25:10, 10K 52:28, half marathon 1:55:46 Stats in dark mode
Diary

Every run, month by month

Tap any run to fix it. Kilometres or miles, pace or speed, light and dark, four themes named after where people run. Export everything as a plain CSV whenever you like.

List of runs grouped by month with distance, pace, time and speed List of runs in dark mode
On a big screen

A proper dashboard, on your own server.

The self-hosted web app spreads out on a laptop or desktop: pace and volume trends side by side, this week, your goal and recent runs at a glance, with a full sortable run table one click away.

spur web app on a desktop: sidebar navigation, trend pace 5:23 per km, weekly totals, pace chart, goal progress and a table of recent runs spur web app on a desktop in dark mode

Every devicePhone, tablet or desktop: the layout adapts, and phones can install it like an app.

Everyone at homeTurn on sign-ups and each person gets a private diary on the same server.

One file to back upAll runs live in a single database file, with a backup command built in.

Privacy

Your runs finish where they started.

Most running apps are built to collect data. spur is built to keep it. Here is the full result sheet.

CheckAndroid appSelf-hosted web app
1PermissionsNoneNone
2Internet accessNone at allOnly to your own server
3AccountNot neededOn your server, created by you
4Ads, analytics, trackersNoneNone
5Where your runs liveOn your phoneIn one database file you own
6Source codeOpen, under the GNU GPL v3 or later
Get spur

Two ways to run it.

Both use the same CSV format, so your runs can move between them.

Android

The app, for Android

A native app with no permissions and no internet access. Everything stays on your phone.

Download the APKF-Droid · coming soon

For Android 7.0 and newer. Open the file on your phone and allow your browser to install it.

Self-hosted

The web app, on your server

Runs in Docker on a home server, NAS or Raspberry Pi. Open it in any browser, or install it on your phone's home screen.

# in the spur source folder
cd selfhost
docker compose up -d
# then open http://your-server:4219

No third-party packages: just Node.js and its built-in SQLite. Add HTTPS with the included Caddy setup.

Free, for good.

spur has no paid tier, no ads and no data to sell. If it helps your running, a coffee helps keep it going.

Coffee link coming soon
Questions

Before you lace up.

Does spur track my runs with GPS?

No, on purpose. You type in the distance and time after each run, from your watch or a map. That means no location data ever exists for spur to leak, and it works with any watch or none.

How are the trends worked out?

Each day's pace trend is a weighted average of your runs over the previous weeks, with recent runs counting most (a one-sided Gaussian). The volume trend does the same to your rolling 7-day total, so it isn't thrown by which days you run. Both only look backwards, so today's numbers never depend on runs you haven't done yet. The goal forecast extends your last six weeks of trend in a straight line.

Can I change or turn off the smoothing?

Yes. Soft follows changes within days, medium within a couple of weeks, and strong shows the longer direction. Off shows your runs and weekly totals exactly as they are.

Can I move my runs between the app and the web app?

Yes. Both export and import the same simple CSV: date, distance in km, time. Spreadsheets can open it too.

What do I need to self-host it?

Any machine that runs Docker with Compose: a home server, a NAS, a Raspberry Pi or a small cloud server. To install it on your phone like an app you'll want HTTPS, which the included Caddy setup gives you with a free certificate.

Can my family use my server?

Yes. Turn on sign-ups and each person gets their own account. Nobody can see anyone else's runs.

Why “spur”?

It's German for track: a diary of the tracks you leave.