Stay on Track

A minimal, fully-offline hiking companion that keeps you on your intended trail — with spoken cues at every trail junction and an off-trail warning tone. SwiftUI, for iPhone and Mac Catalyst.

One-tap install for iPhone/iPad via SideStep (macOS).

Stay on Track on GitHub →

What it is

You load a planned hike as a GPX file, and Stay on Track guides you along it. Its focus is the moment you actually get lost — a decision point, where another path branches off and you confidently walk down the wrong one. As you approach a real trail junction, a posh British voice simply says “Left”, “Right” or “Straight” — how to stay on your intended path. If you drift off the trail, a Geiger-counter-style tone rises in pitch the further you stray, so you can course-correct without looking at the screen.

Everything needed for the hike — map tiles, the trail network, elevation — is downloaded once when you import the route. After that the app is fully offline: put the phone in airplane mode for all-day battery.

Features

How it’s built

SwiftUI with MapKit (a custom offline OpenStreetMap tile layer), CoreLocation and AVFoundation. Trail junctions are queried from the Overpass API; elevation, when a GPX lacks it, comes from Open-Meteo; the spoken clips are pre-rendered with Kokoro and bundled so the app stays offline. Built for iPhone, with a Mac Catalyst build used for development.

Attribution

Map tiles and trail data © OpenStreetMap contributors; elevation from Open-Meteo (Copernicus DEM); voice from Kokoro-82M (Apache-2.0).

Repository

Source and build instructions: github.com/johnbuckman/stayontrack. Licensed under the GNU General Public License v3.0.