Everything the EM Snow platform does across web, phone, wrist and API. One reference.
Open snow.0-21.co.uk on your phone. Add it to your home screen, it works offline where it matters.
Live report: depths, fresh snow, lifts open/total per lift, weather, piste map, and webcams with worldwide coverage (Windy network + resort cams). The "Sun on the mountain" 3D map shows piste and lift names on hover.
auto-locates, or search any resort0-100 "should I go?" score with the best day ahead and why.
top of every resort pageReplay your ski day as a 3D drone flight. Record it to video. Race ghosts. Drop a GoPro MP4 directly -- the GPS track is read from the video; nothing uploads. After the day loads, runs are named after the pistes they match; hover over the 2D or 3D map to see run, piste and lift names. If the wrong resort is linked it auto-corrects to the track's location. Drop a video onto a loaded day and Cinema opens itself -- footage with live stats overlaid, synced to the GPS clock. Toggle the 3D map to fly the terrain alongside your clip (the camera follows the video; drag the picture-in-picture anywhere, drag its top corners to resize). The run list highlights whichever run is playing -- click any run to jump to it. Cycle overlay presets, then export share-ready clips (free: up to 60 s, watermarked; Pro: up to 300 s, clean). Video never leaves your browser.
import your GPX/FIT/MP4 dayThe desktop app (macOS & Windows) for full-length overlay films -- speed, altitude, slope grade, vertical speed, distance and heart rate overlaid on your raw footage, rendered faster than realtime, with a project bin and synced preview. Sync is GPS-clock automatic for GoPro files; a manual sync deck with timezone-first controls covers everything else. Day Reel builds your whole day into one file with title and chapter cards. Pro adds custom widget layouts with the slot editor, overlay-only export (green-screen MP4, or transparent WebM where the machine's encoder supports it), unlimited length and no watermark; free exports 60 s watermarked. Your video never leaves your machine -- network calls are limited to licence verification and an optional resort lookup for Name my runs. Beta builds are rolling out now.
learn more & request early accessDrop a GPX file, get it back enriched: slope, sun exposure, archive weather along every segment, nearest piste names.
gpx overlay toolRecord your day with just the phone, live vert, runs, top speed, then straight into the 3D flyby. Never uploaded.
piste map → ⏺ RecordTurn-by-turn to any piste, lift base, friend, or the base, avoids lifts reported closed (live across the Tarentaise).
piste map → 🧭 NavigateWhiteout bail-out: guided descent to the base, turn-by-turn, works offline.
red 🆘 chip on the resort pageFind-my-friends on the piste map. One 6-letter code, no accounts.
party button → share the code/QRDraw an off-piste line, get slope°, aspect, altitude and avalanche overlap.
draw on the piste mapTonight it plans tomorrow: which piste at which hour, sun and snow aware.
Plan tab on the resort pageBooking odds per week from 15 seasons of history.
resort page → when-to-goShared days, per-piste leaderboards, race the legend.
browse the feedPush notification when 10 cm+ lands on your favourites.
bell icon → allow notificationsOne 6-letter code links your phone, browser and watch, favourites, Pro unlocks and your ski-day history follow you everywhere. No accounts, ever. The QR page confirms with "✓ Linked, favourites synced" when linking is complete; favourites are never lost when you link. Linked browsers also self-heal: if Safari clears the site's storage (it does after 7 days away), your favourites restore themselves on the next visit.
snow.0-21.co.uk/pairAll buttons and tap targets grow to 44-64 px -- usable with ski gloves on. Activates automatically on narrow viewports; toggle big-ui anytime.
add ?down=1 to any page, or resizeThe native EM-Snow app for iOS (Android later this season). Three tabs: ⏺ Record · 🏔 Resort · 📅 Days. Phone stays in your pocket, screen off, while it records your day.
Automatic run / lift / idle detection from motion, no tapping. Live vert, speed, flow score per run. mi/ft ⇄ km/m toggle. Crash-safe: resume right where you left off if the app is killed. Screen-off background recording keeps the battery going all day.
⏺ Record tab → start sessionThe full resort experience in-app: depths, lifts open, Snow IQ, piste map, navigator, day plan, party, everything from the web app without leaving.
🏔 Resort tab → search or auto-locateEvery recorded session is listed here. Tap one to open it straight in the 3D flyby. Publish the ghost or keep it private.
📅 Days tab → tap any sessionWhen a resort is selected, anonymous run aggregates (speed, vert, line) are contributed to that resort's crowd piste-conditions layer. Full tracks never leave the phone unless you publish a ghost.
automatic when a resort is activeA Health toggle in the Record tab asks Apple Health permission, then auto-imports all ski/snowboard workouts from the current season. Imported days appear in the Days tab with a "from Health" badge, workouts with a GPS route get full run detection and 3D flyby; route-less ones (typical for Garmin Connect, which does not write GPS to Apple Health) appear as summary cards (duration/distance/kcal). A Hide button permanently removes an imported day. Toggling Health off and back on re-scans the whole season. Apple Watch native ski workouts carry routes → full pipeline. The full-fidelity Garmin path remains: EM-Snow watch apps or GPX/FIT drop at /flyby. EM-Snow only reads ski/snowboard workouts and never writes to Apple Health. If 0 workouts appear, check Settings → Health → Data Access & Devices → EM-Snow.
Record tab → 🩺 Health toggleThe GPS duty-cycles itself on lifts and the barometer feeds altitude, a full ski day in your pocket on a fraction of the battery. Each day's battery use (%/h) shows in the Days list.
Record tab → 🔋 Saver togglePair the app with your browser and watch in one code, favourites, Pro unlocks and history shared across all of them.
link your devicesNot on iOS beta yet? The web recorder at /js/phone/ runs the same logic in your browser, good for a demo walk before you hit the slopes.
try the demoThe full app, coming soon to Connect IQ across 78 Garmin watches (every barometer-equipped fenix 5 Plus → 8, epix, enduro, Descent, Forerunner 245–970, MARQ, Instinct 2, Venu 2+ and vivoactive 4 model). UP/DOWN cycles the seven screens · START acts · BACK exits · long-press UP opens the menu (record a ski day, choose resort, lifts, party code, link devices). Data flows from your phone's Bluetooth, no watch setup needed. It also records your ski day right on the watch: runs, vertical, ski/lift/idle time and a per-run flow score, written into a normal FIT activity. Now in English, French, German, Italian and Spanish. extreme-media.co.uk/emsnow
GET ME DOWN has a haptic language, no screen needed in a whiteout or with gloves on: one long buzz means right, two short pulses mean left, a soft tick means straight on, and a rising triple confirms you've arrived. Every completed run ends with a buzz; high-flow runs earn a longer celebratory note.
| Setting (Garmin Connect → app settings) | What it does |
|---|---|
Use resort ID + Resort ID | Pin the app to one resort instead of GPS auto-locate (id shown on the resort's web page URL). |
Ski party code | The 6-letter code from the phone party → the Party screen lists everyone with distance + direction. |
Powder alert (cm) | Alert threshold in cm (default 10, 0 = off). The app wakes itself in the background and notifies you when fresh snow crosses the line -- one alert per day, deduped. |
Pairing code | 6-letter code from snow.0-21.co.uk/pair, links the watch to your phone & web: favourites, Pro unlocks and history shared. Or go the other way: menu → Link devices shows a code/QR to scan. |
Watch face complications: EM-Snow publishes two complications on 4.2.0+ watches -- Snow IQ (0-100 score, complication id 0) and 24 h snowfall (id 1). Add them to any compatible watch face via the watch face settings.
The lightweight conditions widget, runs on 71 devices, back to much older watches than the app. If your watch can't run the app, it runs this.
Base/summit depth, 24 h snow, surface type, resort elevations.
screen 1Daily + 37-hour view with wind, snowfall and temps by elevation.
screens 2-3 + hourly viewOne line in the widget carousel, daily fallback when hourly is missing.
automaticMenu → "Send day to phone" → QR opens flyby ready to import your day.
menu item 6Menu → "Link devices" shows a code + QR that ties the watch to your phone & web, shared favourites and Pro unlocks. Or type a code from /pair into the widget's settings.
menu → Link devicesHourly forecast updates without opening the widget.
automaticLives inside the ski activity itself, glove-proof conditions while you ride, zero interaction.
Surface, depths, wind, fresh snow, temps by elevation, refreshed hourly in the background.
The live what-to-ski-next line, mid-run. Avalanche badge + freezing level ride along.
When you stop the activity it posts your vert & top speed, the QR you scan later already knows your day.
Weather + surface conditions are recorded into the activity, and a wall-clock graph (time-of-day, not duration) shows when things happened.
Base https://snow.0-21.co.uk. Watch endpoints return flat arrays with frozen, append-only indices (element 0 = version; errors return a parseable [0] / []). Full contracts: docs/GARMIN.md in the repo.
| Endpoint | Returns | For |
|---|---|---|
| GET /v1/garmin/report?la&lo&days | Clean resort envelope (~1.3 KB) | app / widget |
| GET /v1/garmin/df2?la&lo | 25-index conditions array (~120 B): depths, temps, avy, IQ, next piste, lifts | data field, glance |
| GET /v1/garmin/nowboard?resortId | Top-3 pistes right now + windows | what-to-ski |
| GET /v1/garmin/dayplan?resortId | Tomorrow's hour-by-hour piste plan | evening planning |
| GET /v1/garmin/avy?la&lo | Danger level + top-3 problems (aspects, band) | safety screen |
| GET /v1/garmin/route?resortId&from[&to] | ≤48-waypoint descent route, ≤4 KB, labelled steps | wrist GET ME DOWN |
| GET /v1/garmin/party/CODE | Party members: name, position, age | party screen |
| POST /v1/garmin/handoff?device&vert&maxSpd | 6-char code → QR at /h/CODE/qr; day summaries merge per device for 12 h | watch → phone |
| GET /v1/web/resort?la&lo | resortId | The full rich report (webcams, bulletin, history, IQ…) | web |
| GET /v1/web/nowboard · /dayplan · /whentogo | Rich intelligence endpoints behind the web features | web |
| POST /v1/pair/code · /redeem | 6-char pairing codes, link devices into one identity (favourites, entitlements, history); QR at /p/CODE/qr | all surfaces |
| GET /v1/pair/runs/:subject | Your merged ski-day history across every linked device | web / phone |
GARMIN/Apps/). Settings live in the Garmin Connect phone app → your device → activities & apps.