Guide
How it works, precisely
No magic: you create your race (via GPX, by drawing it, or in timer mode), you share a link, and on race day your phone plays the voices at the right spot. Here's every step, including what can go wrong.
1. The runner creates their race • three ways
Depending on what you have on hand, you pick the simplest method. All three lead to the same result: a race ready to share.
- Import a GPX. This is the most precise. The
.gpxis the universal format for GPS tracks: your race organizer almost always makes one available, and you can also export any activity from Strava, Garmin Connect, Komoot or OpenRunner. - Draw the route on the map. No file? Drop your points on the map: EchoRun connects them by following the actual roads (automatic snapping). Ideal for a training run or a homemade loop.
- Timer mode. No route at all? Simply announce an expected duration • say 2h • and your friends will drop their voices onto a timeline rather than a map. Triggering then happens at the chosen minute of the race, not at a given kilometer.
For a GPX or a drawn route, we keep only the sequence of the route coordinates. The points are simplified (Douglas-Peucker algorithm) to go from a file that may contain 40,000 points down to about 1,500 • enough for a route accurate to the meter, light enough to display instantly on a phone. The total distance and the cumulative distance of each point are computed at that moment.
2. The share link
Each race gets a short, unguessable address, of the form echo-run.app/e/k7m2pq9xr4tz. It's the same principle as a Tricount: whoever has the link can take part, with no account or install. You share it however you like • text, WhatsApp, family group, email.
This link is not indexed by search engines and cannot be found by trial and error. You can close it at any time from your dashboard: no one can drop a message anymore, but those already recorded stay.
3. Your friends choose their moment
When opening the link, your friend enters their first name. Then, depending on the type of race: on a race with a route, they see the course on a map and click on the point where they want their message to trigger; in timer mode, they drag a slider along the timeline to the desired minute of the race. In either case, they then record up to thirty seconds of voice directly in their browser.
On a map, the click doesn't need to be precise: the position is automatically snapped to the nearest point on the route. This matters, because triggering during the race depends on this accuracy.
Each friend can drop up to 5 messages, free and without an account. A race includes 15 free messages; beyond that, it is the runner • notified by email • who unlocks the race for €1.99 (up to 50 messages). Your friends never pay anything.
What you should know about recording
- The browser asks for permission to access the microphone. On iPhone, this is only possible in Safari or Chrome, not in the browser built into some messaging apps: if the button doesn't respond, open the link in a real browser.
- The resulting file is compressed (Opus, or AAC on Apple devices): a thirty-second message weighs less than 200 KB.
- You can listen back to your message before sending it, and redo it as many times as you want: nothing is sent until you confirm.
4. The day before the race: preparation
This is the step no one should skip. From your dashboard, you launch the race preparation. The app then downloads to your phone: the route (or the timeline, in timer mode), the list of triggers, and all the audio files.
Everything is stored locally (IndexedDB for the audio, browser cache for the app itself). The direct consequence: on race day, you can run in airplane mode, in a tunnel or deep in a valley with no network • the messages will still trigger. We also ask the browser for persistent storage, to prevent the system from clearing the cache between preparation and the start.
5. During the race: triggering
You tap Start the race. This action is essential, and not only for ergonomics: mobile browsers only allow audio playback and speech synthesis after an explicit user action. It is at this moment that the app "unlocks" sound for the entire duration of the race.
After that, the loop depends on the type of race:
- Race with a route: the GPS reports your position continuously and, for each pending message, the app computes the distance to its trigger point. The default radius is 70 meters, and it automatically widens if the GPS reports an imprecise position.
- Timer mode: no GPS at all. A stopwatch starts at the gun, and each message triggers at the minute of the race your friend chose on the timeline.
- When the moment comes, speech synthesis announces "Message from Camille", then Camille's voice message plays immediately after.
- If two messages are close together, they play one after the other, in order. Never at the same time.
- If the GPS signal drops at just the wrong moment, the app notices as soon as it finds you again past the point and plays the message slightly delayed. A message is never lost.
The screen staying on: a limit of the web version, not of the app
We'd rather be upfront than let you discover it on race day. A web app (the one you and your friends open in the browser) does not have background access to GPS: it's a system restriction, not a shortcoming on our part. On iPhone, geolocation stops as soon as Safari goes to the background or the screen locks; on Android, it survives a few minutes then is cut off to save battery.
In the web version, our answer is therefore that the app itself keeps the screen on (Screen Wake Lock API) and asks you to keep EchoRun in the foreground. The phone stays in your armband or pocket, screen active. Expect around 12% battery per hour on a recent device with reduced brightness; for a marathon, start at 100%.
It's precisely to lift this constraint that the native mobile app exists: it is allowed to track your position in the background. You start the race, put the phone away with the screen off, and the messages still trigger • without draining the battery. Timer mode, for its part, never needed the screen on, since it doesn't rely on GPS.
6. After the finish
All the messages remain accessible in your dashboard, replayable as many times as you want. You can see which ones triggered, at what kilometer (or at what minute), and at what time. This is also the page most people send to their friends to thank them.
Frequently asked questions
Do I need a GPX file to create a race?
No. You have three options: import a GPX, draw your route directly on the map (it snaps to the actual roads), or choose timer mode if you have no route • you announce a duration and your friends drop their voices onto a timeline.
Do I need headphones?
It's strongly recommended, especially bone-conduction or open-ear headphones, which let you hear your surroundings. Without headphones, the message comes out of the phone's speaker: audible on a country road, inaudible in a pack.
What if I wear a GPS watch?
EchoRun doesn't interfere with your watch: they're two independent devices. Keep recording your run as usual.
How many messages can you receive?
Each race includes 15 free messages. If your friends drop more, we notify the runner by email: for €1.99, they unlock the race up to 50 messages. Each person is limited to 5 messages, to leave room for everyone.
Can my friends hear each other's messages?
They can see that a point (or a moment, in timer mode) is already taken and by whom • handy for splitting up the route • but they can't listen to other people's messages. Only the runner hears them.
Does it work without a network?
Yes, and that's the whole point. The voice messages and the route are downloaded to the phone before the race, then played from local storage. You can run in airplane mode: the messages will still trigger.
Do I have to keep the screen on during the race?
In the web version (PWA), yes: a website can't access GPS in the background — that's a restriction imposed by iOS and Android. The app therefore keeps the screen on and must stay in the foreground (expect around 12% battery per hour). The native mobile app, on the other hand, tracks your position in the background: screen off, phone in your pocket.
For the details of how data is processed, see our privacy policy.