Slopie
Ski map and tracker · web live, iOS in development
Resort trail maps are beautiful but flat. Digital maps are accurate but look like every other map. Slopie draws ski areas the way a painted trail map does — with real terrain, forests and lifts underneath — and records your day on top of it.
slopie.app ↗



Three directions, one map
Before committing to a layout I built the iOS app three ways, each as working SwiftUI screens running on the live Slopie map in the simulator, and compared them side by side. The question was simple: on a chairlift, with gloves on, what should be one tap away?
A map that had to be fixed first
OpenStreetMap has most of the world's pistes, but often drawn loosely. I wrote a correction step that snaps each piste to aggregated activity data, which raised its overlap with hand-drawn reference maps from an IoU of 0.35 to 0.79 on a 19-resort benchmark.
Every layer — terrain, contours, snow, forests, buildings, lifts — is served from Slopie's own Cloudflare Worker, and buildings, trees and lifts are generated in 3D in the browser. 4,116 resorts are covered, 1,814 of them with hand-checked resort logos, in seven languages.
On the phone
The tracker is native SwiftUI: HealthKit workouts, automatic lift-ride detection, barometric altitude, a Watch app that shares the phone's workout, and friends on the map. Builds go to testers through an automated TestFlight pipeline.


Built with
SwiftUI, HealthKit, Next.js, MapLibre GL, PMTiles, Three.js, Cloudflare Workers and R2, Python for the data pipeline.