Contents

What Ocean Tracker does

Open Ocean Tracker is a GPS tracking app for downwinders, foilers, kayakers, rowers, and paddlers. It records your session from your Apple Watch, shows the metrics that actually matter on a single clean dashboard, and saves everything to your iPhone for review afterwards.

It also gives you something no other watersports app offers: a permanent live-tracking link. Share it once with your shore crew, partner, friend, or rescue contact, and they can watch your dot move on a map any time you're tracking — for the lifetime of the app. No per-session setup, no expiring share codes.

All distances in kilometres, all speeds in km/h. No knots, no nautical miles, no metric/imperial toggle. One unit system, the one downwinders use.

Full feature list

Apple Watch — live session

Two-page swipe layout

Page 1 is the dashboard: heart rate, speed (km/h), elapsed time, compass ring with the bearing-to-next-waypoint arrow, current split, time of day. Page 2 is the controls: Pause / Resume / End Session. Buttons never overlap your data.

Water Lock — auto-engaged

Three seconds after you start tracking, the Watch enters Water Lock automatically. The screen ignores all touch (so splashes won't pause your session). Turn the Digital Crown to release.

Pause with any physical button

Crown press, side button, or any gesture that backgrounds the app pauses tracking instantly — even when water-locked. Reopening the app keeps you in paused state until you tap Resume.

Haptic at every kilometer

You feel a single tap (directionUp haptic) at each km split. Know your pace without looking at your wrist.

1 Hz GPS, navigation-grade accuracy

Best-for-navigation accuracy, points filtered above 20 m horizontal accuracy, sampled every second. Splits computed every 1000 m from the previous split point.

Standalone Watch GPS + HealthKit

The Watch tracks GPS and heart rate on its own — no iPhone required during the session. Cellular Watches can also post live beacon data without a paired phone.

Action Button start (Apple Watch Ultra)

Map the Action Button to Open Ocean Tracker and start a session with a single press — straight into tracking, no taps.

iPhone — sessions, routes, sharing

Session log

Dark-themed list of every session you've recorded, with header showing total sessions, total kilometres, and best km/h. Each row shows average speed, duration, distance.

Session replay on satellite map

Tap a session to see the full GPS trace on a hybrid satellite map. The fastest kilometre is colour-coded (green <10 km/h, orange 10–15, red >15).

Route planner — map picker or coordinates

Build a route by tapping waypoints on a satellite map, or by typing GPS coordinates. Name your waypoints, reorder them, save the route to your library.

Save a track as a route

One tap on any past session creates a new saved route with Start and Finish waypoints. Run it again as a navigated route.

GPX export

Share session GPS data as a standard GPX file via the system share sheet. Drop it into Strava, Garmin Connect, Footpath, or any GPX-capable app.

Share Stats text

One-tap formatted text summary (distance, average speed, max speed, duration, calories) for Messages, WhatsApp, etc.

Track on iPhone too — no Watch needed

Don't have an Apple Watch? Track a full session straight from the iPhone. GPS, distance, splits and the live beacon all run on the phone. Keep it in a waterproof pocket — recording continues with the screen locked.

Live Activity on the Lock Screen

While tracking on iPhone, your live speed, distance and elapsed time appear on the Lock Screen and in the Dynamic Island — glanceable without opening the app.

Tag your sport

Mark each session by discipline — downwind, foil, wing, SUP, kayak, paddle and more. Your stats and leaderboard standing are kept per sport.

Compete & review

Global leaderboard

Tag a sport and your best sessions rank against other riders — by distance and top speed, filterable by sport and country. It shows your nickname only, never your identity.

Personal records

The app keeps your all-time bests — longest session, top speed, fastest kilometre — and surfaces them as you beat them.

Heat map

Every session you've tracked, overlaid on a single map. See the lines you ride most and spot the runs you haven't explored yet.

Live Beacon

Permanent personal link

Your beacon URL is set once at signup and is yours forever: fetchheavy.co/beacon.html?id=<nickname>-<random>. The 8-character random suffix means nobody can guess your link from your nickname alone.

Live updates every 30 seconds

While tracking, your Watch posts your position to the server roughly every 30 seconds. Viewers see your dot move and your trace grow in near real time.

Trace persists until next session

When you end a session, the full trace stays viewable at your beacon URL. It is only replaced when you start a new tracking session — so people can still look at your last ride hours or days later.

Dark Leaflet map

Viewers see a clean dark CartoDB map with your polyline trace, current position, start marker, and a status indicator (Live / Stale / Session ended).

Routes & navigation

Waypoint compass arrow on Watch

An orange arrow on the outer edge of the compass ring points to your next waypoint. Distance remaining and ETA shown below.

Auto-advance waypoints

When you come within 50 m of a waypoint, the Watch auto-advances to the next one. No tapping mid-paddle.

Routes sync iPhone → Watch

Save a route on iPhone, it's on the Watch by the time you start the session. Uses WatchConnectivity's persistent context — works even if the Watch app wasn't running.

Stats

Fastest kilometre (sliding window)

The fastest km is computed with a sliding-window algorithm over the GPS track — it finds the genuinely fastest 1000 m segment regardless of split boundaries. Shown with pace, speed, and the km range it occurred in.

Split cards with pace and speed

Horizontal scroll of per-km splits — each card shows pace (/km), speed (km/h), and km number.

HealthKit-derived calories

Active calories are computed by Apple's HKWorkoutBuilder using MET values and your weight + heart rate.

Apple Health & privacy

Saves workouts to Apple Health

Each session is recorded as a Sailing workout in Apple Health, with workout duration, active energy, distance, heart rate, and the full route.

Encrypted signup, no password

The signup record (nickname + optional email) is stored AES-256 encrypted on the server. The key file lives outside the web-accessible directory. No password, no analytics SDK, no cookies.

Beacon ID is unguessable

The 8-hex random suffix gives 4.3 billion possible IDs per nickname. Nobody finds your beacon by guessing it.

Getting started

1

Download & onboard

Open the app for the first time. Type a nickname, optional email, tap Continue. The app calls the server, gets your permanent beacon ID, and you're done. No password.

2

Grant permissions

Allow Location (Always or While Using) and HealthKit access. Location while using is fine — tracking happens on the Watch, which has its own GPS authorization.

3

(Optional) Plan a route

Tap the Routes tab → New Route. Tap waypoints on the map or enter coordinates. Save. The route syncs to the Watch the next time it comes online.

4

Open the Watch app, pick a route or "Free Session"

Open Ocean Tracker on your Apple Watch. Pick a saved route or tap "Free Session" to track without waypoints. Tap Start.

5

Go

Water Lock engages after 3 seconds. The dashboard shows your live numbers. Swipe left to access pause/end controls. Crown to wake from water lock when you're done.

Live tracking on the Watch

The dashboard (Page 1)

The dashboard never has buttons on it. It shows:

The controls page (Page 2 — swipe left)

One screen with three things and nothing else:

"Swipe → back to dashboard" hint at the bottom.

Water Lock

Engages automatically three seconds after you tap Start. The Watch ignores all touches until you turn the Digital Crown — splashes, drips, and accidental brushes can't pause you. The dashboard is still visible the whole time.

Physical pause

If you press the crown, side button, or anything that backgrounds the app (including a wrist-down gesture), tracking pauses automatically. The PAUSED indicator appears on the dashboard. Re-open the app and tap Resume to continue. This works even when water-locked, because the system-level button press still backgrounds the app.

Stopping a session

Swipe to the controls page → End Session. The Watch packages up the GPS points and splits and transfers them to the iPhone via WatchConnectivity. If the iPhone isn't reachable at that moment, the transfer is queued and retried until delivered — you won't lose a session because your phone happened to be off.

The Live Beacon — how it works

This is the headline feature. Read it once and you'll know the exact behaviour.

Your link

Set at signup, yours forever. Format: https://fetchheavy.co/beacon.html?id=<nickname>-<8 hex chars>. Example: tommyftv-a7f2b3c8. The 8 random characters mean strangers can't guess your link — only people you give it to can find you.

What happens during a session

When you tap Start on the Watch, the app calls beacon.php?action=start on the server, which creates a fresh trace file (wiping any previous one). While you track, the Watch posts your current position to beacon.php?action=add roughly every 30 seconds. Each post includes latitude, longitude, instantaneous speed, and a timestamp.

What viewers see

Anyone with your link opens it in a browser and sees a dark Leaflet map with:

Session hasn't started
No trace data on the server yet, or a new session just initialized.
Connected / Waiting
The session has been started but the Watch hasn't posted its first GPS fix.
Live
The last point was posted in the past 3 minutes — you're being tracked in real time.
Stale (5 min ago)
No new point in over 3 minutes. Usually means no cell signal at your location.
Session ended
You tapped End Session. The full trace stays visible until your next session.

How long the trace stays up

The trace persists until you start a new session. When you tap End, the server marks the session ended but keeps the full trace file. Viewers can come back hours or days later and still see your last ride. The trace is only replaced when you (or your Watch) calls the start action again — which happens at the beginning of every new tracking session.

Translation: share your link once with your wife / shore crew / kite school owner / rescue contact. They can pull it up at any time. If you're not currently tracking, they see your last session's trace. If you are, they see you moving live.

What's stored on the server

Just GPS points (lat, lon, speed, timestamp). Up to 5000 points per trace (roughly 41 hours at 30-second posts). No name, no email, no device identifier in the trace itself — just your beacon ID, which is publicly your URL anyway.

If your Watch loses signal

Posts are sent best-effort over cellular (or via your paired iPhone if you have a non-cellular Watch in range). If a post fails, the Watch keeps recording locally and tries again on the next cycle. The session's stored GPS data is independent of beacon posts — your local session always has the complete track even if the beacon missed updates.

Routes & waypoints

Building a route on iPhone

Tap Routes → New Route. Two input modes:

Name each waypoint (or leave the default). Reorder them by drag. Save and name the route ("Punta to Cove", "Sotavento full run"…).

Using a route on the Watch

At session start, the Watch shows a list of your saved routes plus a "Free Session" option. Pick a route and tap Start. The dashboard's compass arrow now points to the next waypoint, and shows distance + ETA.

Auto-advance

When you come within 50 metres of a waypoint, the Watch silently advances to the next one. The compass arrow re-targets. You never need to tap anything mid-session.

Save any past session as a route

Open a session on iPhone, tap "Save as Route". A new route is created with Start and Finish waypoints derived from the GPS track. Useful for memorialising a run you'd like to repeat.

Stats, splits & fastest km

Per-session

Splits

Detected every 1000 m from the previous split start. Each split records distance (always 1000 m), duration, average speed, and max speed within the split. Shown as a horizontal card scroll on the session detail screen.

Fastest km (sliding window)

This is more sophisticated than "the fastest split". The app slides a 1000 m window across your full GPS track, second by second, and reports the genuinely fastest 1 km segment — even if it straddles two split boundaries. Result shows the speed, pace, and which kilometres of the session it occurred in.

GPX export & sharing

Export GPX

On a session detail screen, tap the share button. The system share sheet appears with two ShareLinks: GPX and Stats text. The GPX is a standard XML file you can hand off to:

The GPX includes per-point timestamps, latitude, longitude, altitude, and speed, so the receiving app can recompute its own stats.

Share Stats (text)

The "Share Stats" link generates a clean formatted summary of the session for Messages, WhatsApp, Slack:

Open Ocean Tracker session
14.2 km · 32 min · avg 26.6 km/h
max 41.3 km/h · 312 kcal

Apple Health integration

Every session is recorded as a workout in Apple Health under activity type Sailing (the closest match in HealthKit's official taxonomy — there is no "downwind foiling" type).

Stored values:

This means your sessions count toward your Activity rings, show up in the Fitness app's workout history, and flow into any HealthKit-aware app (Apple Fitness+, third-party trainers, etc.).

FAQ

What's the app actually for?

Tracking watersports sessions where the existing apps are bad fits — downwind foiling, kayak runs, SUP, paddleboard, rowing, anything where a Strava-style "running app" feels wrong. It focuses on the metrics that matter for water (speed in km/h, distance, splits, live position) and drops everything else.

What does it cost? Is there a subscription?

No subscription, ever. The app is free to download and free to use for 14 days — every feature, no limits. After the trial, a single one-time in-app purchase of $3.99 unlocks session tracking permanently, on all your devices with the same Apple ID. Viewing your existing sessions, maps and records stays free even after the trial. No premium tier, no monthly anything, future updates included.

How does the Live Beacon work in plain English?

At signup, the server gives you a permanent URL like fetchheavy.co/beacon.html?id=yourname-a7f2b3c8. While you're tracking a session, the Watch posts your GPS position to that URL every 30 seconds. Anyone with the link can open it and watch your dot move on a map. When you end a session, the trace stays visible at the link until you start the next session. Share the link once and it's good forever.

How long does my trace stay visible on the beacon?

Until you start a new tracking session. The server keeps your full last-session trace on file indefinitely. The next time you tap Start on the Watch, the new session overwrites the old trace. So if you ride on Saturday and your shore crew checks the link on Monday, they'll still see Saturday's run as long as you haven't tracked again in between.

Can other people figure out my beacon URL?

No. The link includes 8 random hex characters after your nickname. That's 4.3 billion possible IDs. Even if someone guesses your nickname, they'd have to brute-force a few billion suffixes to find your beacon. The server has no directory page, so nobody can browse beacons.

Can I share my GPX file?

Yes — on any session detail screen, tap the share icon. You get a standard system share sheet with the session as a GPX file. Send it to Strava, Garmin, email, Files, Messages, whatever accepts GPX. The file includes timestamped GPS points and speed at each one.

Why km/h and not knots or mph?

Open Ocean Tracker is built for downwinders, where km/h is the de-facto unit (Olympic medalists, foil league results, the entire downwind community talks km/h). The app uses km/h everywhere with no toggle — it's a design choice, not an oversight. If you need knots, multiply by 0.54; for mph, multiply by 0.62.

How accurate is the GPS?

The Watch uses kCLLocationAccuracyBestForNavigation at 1 Hz with no distance filter. Points reporting horizontal accuracy worse than 20 m are dropped automatically. In practice you'll see GPS accuracy of 3–8 m on open water with a clear sky, which is fine for downwind sessions of any length.

Does it work without my iPhone nearby?

The tracking part — yes. The Watch runs GPS, heart rate, splits, and the dashboard on its own. The session data syncs to the iPhone when you reconnect (via transferUserInfo, which queues until delivered). For the live beacon to update in real time, the Watch needs cellular (Apple Watch Cellular) or a paired iPhone in range with internet. If the beacon can't post, your session is still recorded locally — only the live view falls behind.

What about battery?

Best-for-navigation GPS + heart rate + HealthKit workout is the highest-drain mode on Apple Watch. Expect roughly 5–7 hours of continuous tracking on a Series 7+ or Ultra. The Ultra and SE 2nd gen do better; older Series watches do worse. The iPhone-side app has effectively zero battery cost — it just receives the session data after you finish.

What is Water Lock and when does it engage?

Water Lock is a watchOS feature that disables touch input so splashes can't trigger taps. Open Ocean Tracker engages it automatically three seconds after you tap Start. The dashboard remains visible. To release: turn the Digital Crown until you hear the "all clear" beep — this also ejects any water from the speaker.

Does it save to Apple Health?

Yes — each session is saved as a Sailing workout. Duration, calories, distance, heart rate, and the full GPS route all flow into the Health app, the Fitness app's Activity rings, and any third-party HealthKit-aware app.

Can I plan a route?

Yes. On iPhone, tap Routes → New Route. Drop waypoints by tapping a satellite map, or type lat/lon coordinates directly. Save it, and it syncs to your Watch automatically. At session start on the Watch, pick the route from the list and the compass arrow + distance + ETA appear on the dashboard.

What's an "auto-advance" waypoint?

When you come within 50 m of your current waypoint, the Watch silently moves to the next one. The compass arrow re-targets without you tapping anything. The session itself doesn't stop or split — only the navigation cursor advances.

What if I want to use it for kitesurfing or windsurfing?

You can — the GPS, splits, and beacon all still work. It's just optimised for downwind (long-line, point-to-point) sessions rather than figure-8 loops near a beach. If you do tight upwind/downwind laps, the "fastest km" stat is still meaningful, but the route navigation is mostly aimed at downwinders who need to know how far they have left.

What's "fastest km" and why is it different from a "fastest split"?

A split is a fixed 1000 m segment from the previous split boundary. The fastest split is the fastest of those segments. The fastest km uses a sliding window: it looks at every possible 1000 m segment across your whole track (overlapping, every second), and reports the fastest one — even if it straddles split boundaries. It's the answer to "what was my best minute of riding, anywhere in this session?"

What happens if I need to be rescued?

Open Ocean Tracker isn't an SOS device — it doesn't call emergency services. But your beacon link is a real asset in a rescue scenario: anyone with it (a partner on shore, your kite school, the harbour office) can pull up your live position on a map and direct help. For actual emergencies, also use the Apple Watch's Emergency SOS feature (long-press side button) and carry a real safety device if you ride in serious water.

Why "Sailing" workout type in Apple Health?

Apple Health has no native activity type for downwind foiling, kayaking, or paddling that captures all of them well. Sailing is the closest match: HealthKit treats it as a moderate-intensity outdoor activity with GPS and energy expenditure. It feeds calorie estimates and Activity rings correctly.

What does the app NOT collect?

No analytics SDKs, no advertising IDs, no third-party trackers, no crash reporting service. The server stores your nickname + optional email AES-256 encrypted (key outside web root), and per-session GPS traces under your beacon ID. If you tag a session with a sport, its summary (distance, top speed, sport, country) is also stored under your nickname for the leaderboard — performance numbers only, never the GPS track. That's all. See the Privacy Policy for the full disclosure.

I forgot to start tracking before I launched.

The app only records what was tracked while a session was active — no retroactive reconstruction. The compromise: starting a session is two taps (Watch app → Start), so build the habit before push-off.

Can I import a GPX file as a route?

Not in v1.0. Routes can only be built in the app (map tap or coordinate entry). GPX import is on the roadmap.

What iOS / watchOS versions do I need?

iOS 18+ and watchOS 11+. The two-page swipe layout, HKLiveWorkoutBuilder, and the Watch app's standalone GPS / cellular features require these versions.

I see "Session hasn't started yet" on my beacon link.

That means the server hasn't received a start action for your beacon ID yet — usually because you haven't tracked a session since installing, or your most recent session's start request was blocked by a connectivity issue. Start (or re-start) a session on the Watch and the beacon will switch states within a few seconds.