Loading...

Release Notes

What's New

Updates and improvements to NavRun

September 12, 2026

v2026.9.12.31

Saving race notes on the iPhone no longer closes the app, we believe.

  • On iOS 27, saving race notes could close the app while the note was being prepared to send.
  • The cause was found in a crash report from a real phone, and it is fixed, with a test.
  • It could not be reproduced in the simulator, so it is being confirmed on a phone next.
v2026.9.12.30

Connecting Strava no longer asks you to turn AI on first.

  • If you answered "Keep it off" on the AI screen, every attempt to connect Strava sent you back to that same screen, with nothing said about why. Connecting is how NavRun gets your runs, so that one answer cost you the app.
  • Connecting now works whatever your AI setting says. Your runs come in either way.
  • Nothing changes about what AI off means. No run of yours goes to Anthropic or OpenAI while it is off, and NavRun builds your week from your own runs, holding your caps and your rest days.
  • This is the server side of the fix. The app on your phone still asks until the next update reaches you. Until then: turn "Use AI" on in Settings, connect Strava, then turn it back off. Your connection stays.
v2026.9.12.29

The website takes your email address at the login box now, the same as the app always has.

  • The app's login field says "Username or email" and accepts either one. The website asked for a username and only a username, so a runner who signs in on the phone with their email address, then types that same address on navrun.app, was told their username or password was wrong. The password was never the problem, and changing it did not help.
  • Logging in on navrun.app now works with your username or your email address. The address is not fussy about capitals.
  • In the phone app, a stray space on either end of your email address, the kind a keyboard or a password manager adds when you paste, used to be enough to refuse you. It is not any more. The app and the website read what you typed the same way now.
  • The field says "Username or email", and whatever you typed stays in the box when a login is refused, so you are not retyping an address to find out it was not the thing that was wrong.
  • When a login is refused, the page now names every way back in: your username, the reset link, and Ike's address if neither works.
  • An email address can end up on two accounts, because nothing ever stopped it. That address now opens one of them, and the other one opens with its username. If the address does not let you in, your username still will.
v2026.9.12.28

Fixed a memory error in how the iPhone app cleans up its connection to NavRun after a request. Saving race notes on the phone is still being checked.

v2026.9.12.27

On the iPhone, "What you carry" in Fuel and water now opens the screen where you set it.

  • Found on a phone smoke test: the row showed a number but did not open anything. It now opens the same "What I can carry" screen Settings does, and saving there updates the number back on Fuel and water.
v2026.9.12.26

Two drop bag fixes found on a phone smoke test: a tick that looked lost, and a new bag's name.

  • Tick an item, close its bag, reopen the same bag: the tick now shows right away. The tap was always saved, the list just had not been told yet.
  • Tap a station with no bag from "Stations with no bag" and the new bag now starts named after that station, still yours to change before you save. The "+" button with no station picked yet still starts blank.
v2026.9.12.25

The iPhone drop bag planner: a list of your bags, and the bag sheet to fill them in.

  • Drop bags on the race day plan now opens a real screen: every bag you have set, and the stations that do not have one yet.
  • Tap a bag to open it: name, station, and its items. Tick an item and it saves right away. Add a bag from any station with none yet.
  • If a bag changed somewhere else while you had it open, saving shows you what it holds now instead of overwriting it.
v2026.9.12.24

The iPhone packing list: every bag's items, grouped by bag, ticked on the phone.

  • Drop bags now has a Packing list, opened from the "+" screen: each bag's items grouped under its name and mile, with a tick that saves the moment you tap it.
  • Share sends the plan itself: bags, stations, miles and items. Never a tick, never what is packed.
  • The bag list now shows each bag's station and how many things are in it, and marks which stations with no bag yet can still take one.
v2026.9.12.23

The iPhone station note sheet: the drop bag is now what's actually in it.

  • The station note sheet's drop bag field is no longer a place to retype what's in your bag. It shows the bag itself, and taps through to the same bag sheet the drop bag planner uses.
  • No bag yet at that station opens a new one, already pointed at that station.
  • Crew and pacer notes save exactly as before.
v2026.9.12.22

Fixed putting back an old crew or pacer note emptying a drop bag at that station, and a "Cancel" that left the remove-bag banner on screen.

  • Restoring an old crew or pacer note from the plan changes page could silently empty a drop bag at the same station, with no warning. Putting back a note now only ever touches the note.
  • "Remove this bag", then "Cancel", used to leave the confirm banner on screen until you reloaded the page. Cancel now takes you back to the planner cleanly.
v2026.9.12.20

Fixed the drop bag planner losing what you typed, and added a confirm step before removing a bag.

  • If a tick landed somewhere else right before you hit Save, the planner used to show you the bag's new state and quietly drop the name, station and items you had just typed. It now keeps what you typed on the form so you can save it again.
  • "Remove this bag" now asks you to confirm before it deletes the bag and everything in it.
  • An empty bag stays on the packing list with a plain note that there is nothing in it yet, instead of disappearing.
v2026.9.12.19

The drop bag packing list is live on the web, and the strategy page's drop bag column now points at it.

  • Every bag, grouped, with its items: tick things off as they go in, right from the browser. No count anywhere, because a tick is yours, not a score. Reach it from the planner.
  • The race strategy page's drop bag column is now a read only view of what you have packed, with a link to the planner where you actually manage it.
  • The drop bag planner's table now stacks into rows on a narrow screen, so "Pack one" is never off to the side of the phone.
v2026.9.12.18

The drop bag planner is live on the web.

  • Every aid station on your race, in the order you meet them: whether it takes a drop bag, and what you have packed there. Pack a bag, rename it, move it to another station, add or remove what is in it, and tick things off as they go in. The race page's "Drop bags" link now goes somewhere.
v2026.9.12.17

Fixed a drop bag caution line that always named the wrong station, and a crew link that could read notes it should not see.

  • A station with no answer yet on whether it takes drop bags now names itself in its own caution line, instead of always saying "Red Rocks."
  • A crew link with edit access can no longer get back your crew and pacer notes for a station by sending it a blank edit.
  • Clearing a drop bag's name field with an edit no longer causes an error.
v2026.9.12.16

Packing a bag over an evening now leaves one entry on your Changes page, not one per edit.

  • Editing a bag's item list again within a few minutes now updates the same row on your race's Changes page instead of adding a new one, so packing for an hour does not flood your history.
v2026.9.12.15

Crew page and crew room notes and drop bags now show per aid station, not per whole mile.

  • Two aid stations that round to the same mile, like one at 26.1 and one at 26.4, used to share a single crew note. Each now keeps its own.
  • A drop bag packed for an aid station now shows on the crew page and in the crew room, which never showed one before.
v2026.9.12.14

A station note or an old crew, pacer or drop bag edit made through a link can now be put back too.

  • The same "Put it back" on your race's Changes page now covers a station's crew or pacer note, and an old-app mile note edit, as long as nothing has changed it since.
v2026.9.12.13

A drop bag change made through a crew or pacer link can now be put back.

  • On your race's Changes page, a bag that was renamed, moved or deleted through a link now offers "Put it back", the same as your race notes or your race day list, as long as nothing has changed it since.
v2026.9.12.11

A new API can now replace a drop bag's whole item list and tick items packed.

  • Same routes the drop bag packing list screen will call. No release change yet on its own; the screen that calls it is still coming.
v2026.9.12.10

A new API can now create, rename, move and delete a drop bag.

  • Same routes the drop bag planner screen will call. No release change yet on its own; the screen that calls it is still coming.
v2026.9.12.9

A new API reads every drop bag on a race, station by station, and a packing list to share.

  • Every drop bag and its items, grouped by the aid station it goes to, plus every station's own "can I send a bag here" answer. No release change yet on its own; the drop bag planner and packing list screens that call it are still coming.
v2026.9.12.8

A station's crew and pacer note can now be read and saved by its own aid station, not a shared whole-mile slot.

  • New API routes, for the iPhone and web to build on: a race's crew reads every station's note at once, and a runner or their crew (through their link) can save one station's note directly. No release change yet on its own; the app and site screens that call it are still coming.

  • Two aid stations that round to the same mile, like one at 26.1 and one at 26.4, used to share a single crew note. Each now keeps its own.

  • A drop bag packed for an aid station now shows on the crew page and in the crew room, which never showed one before.
v2026.9.12.7

A crew or pacer note saved under a duplicate mile key, like "26" and "026", no longer loses either one.

  • The one-time move of notes and drop bags onto their aid stations could pick only one of two ways of writing the same mile and drop the other's words. Both are now combined onto the one station, the way the mile was actually shown.
v2026.9.12.6

The drop bag sheet, the splits CSV, the strategy page and mile note saves all read the same per-station notes now.

  • The printable drop bag sheet now lists every aid station holding a packed bag, even one marked as having no drop bag, since the sheet is the runner's own list.
  • Saving a crew, pacer or drop bag note by mile no longer needs a saved strategy first.
v2026.9.12.5

The Crew Sheet, Pacer Sheet and the crew room's next-stop note now agree with the crew page about which station holds a note.

  • All three used to read a note by rounding to the nearest whole mile, so two aid stations close together could show the same words at the wrong one, or nothing until the exact whole mile was written to. They now read each station's own note directly, the same way the crew page already does.
v2026.9.12.4

The drop bag line your crew sees at a stop now matches what you actually wrote, not a placeholder sentence.

  • A stop nobody has said takes bags or not now shows your own packed bag, with a note that nobody has confirmed it, instead of that note replacing your words. A stop with nothing packed and nothing confirmed shows nothing, instead of a sentence at every one of them.
v2026.9.12.3

A retried deploy of the crew note migration could bring back a cleared note or duplicate a drop bag item. Fixed before it shipped.

  • A crew or pacer note cleared, or a drop bag edited, between two runs of the carry-over now reaches the aid station correctly and only once, instead of the old value coming back or the edit landing twice.
v2026.9.12.2

If you added a race before we had its course on file, we may now offer you its aid stations.

  • On a race's screen, if we're confident we've matched it to a course in our catalog (same name, date and distance), you'll see a preview of the aid stations it would add, with your own stations named as staying exactly as you entered them.
  • Tap "Add them" and the new stations are added, with an Undo right there if you change your mind. Undo keeps any station you've since added a note or a drop bag to, and tells you how many stayed.
  • Tap "Not now" and it's gone for that race, for good.
v2026.9.12.1

Adding a race from the catalog, onboarding, or "Hey Siri, add a race" now tells you about your thirty-day trial, once.

  • The phone shows the trial-start message right when a race you add actually starts one: immediately after a catalog pick, at the end of onboarding, or the next time you open the app after asking Siri to add a race.
  • The ordinary "add a race" form never shows this message, so it never repeats itself for the same race.

September 11, 2026

v2026.9.11.22

Tapping a change on your race's Changes list now opens what happened.

  • Each row opens its own screen: what changed, what it was before, and whose link made it.
  • The newest change to your race notes or your race day list carries a "Put it back" button. An older change that has since been changed again just says so, with nothing to tap.
  • A station note, drop bag or mile note doesn't put back from the phone yet, and says so plainly.
  • If someone changes the same thing again right as you tap Put it back, you're told nothing was written, and the list is safe to check again.
v2026.9.11.21

Fixed: an empty sweat rate, sodium loss, or carb tolerance field showed the unit twice instead of a typical starting number.

  • The empty fields in "Use my own numbers" now show the typical number ("22.0 oz per hour") as a placeholder, with the unit shown once.
v2026.9.11.20

Fuel and water's numbers stay current the moment you save them, no pull to refresh needed.

  • After saving your own sweat rate, sodium loss, or carb tolerance from the Fuel and water screen, the read-only rows above it now update right away.
v2026.9.11.19

Your own sweat rate, sodium loss, and carb tolerance are now in Settings too, not only on a race's Fuel and water screen.

  • A "Body numbers" row under Settings opens the same sheet, with no race needed: type your own numbers, or work one out from a run, any time.
v2026.9.11.18

Fuel and water on the phone now has a place to type your own sweat rate, sodium loss, and carb tolerance, or work the first one out from a run.

  • On a race's Fuel and water screen, "Use my own numbers" opens a sheet with the three fields, free to fill in and free to keep.
  • "Work it out from a run" turns a before and after weigh in into a sweat rate, without saving anything until you choose to.
  • A card under the fields restates the numbers in plain words as you type, including how long what you carry for this race lasts between refills.
  • Saving shows the three numbers read back to you, in your own words, before the sheet closes.
v2026.9.11.17

Fixed: Undo on the catalog offer now actually removes what it added.

  • Undo was reporting "Removed 0 aid stations" and leaving every added station in place, edited or not. The stations it added were never wrong; only the step that found them again to remove them was.
v2026.9.11.16

Two fixes to the catalog offer, so it never touches something you did not see.

  • A note written before your race had aid stations in its own table could land on a newly added catalog station instead of staying on the station you wrote it for. It now stays put.
  • If the match changed after you opened the page, tapping "Add them" no longer merges a different course than the one you looked at. You see a plain message and nothing is added.
  • The preview now leaves out stations past what a race can hold here, and says how many, instead of showing more than "Add them" would actually add.
v2026.9.11.15

You can now undo adding a matched course's aid stations to a race you typed in by hand.

  • After you tap "Add them," an "Undo" link sits right on the confirmation line.
  • Undo removes the aid stations that were added, unless you have since attached a note, a drop bag, or a supporter alert to one, or pinned its arrival time by hand. Those stay, and the line tells you how many stayed and why.
  • Any race field the match filled in is put back too, unless you have typed something else there since.
  • Undo only works once per match. The line after undoing tells you exactly what came back.
v2026.9.11.14

Groundwork for the trial-start message. Nothing changes on screen yet.

  • The server now knows which surface added a race (the ordinary form, onboarding, or Siri) and stamps, once, that the trial-start message has been shown, or remembers the race waiting for it when there is no screen to show it on yet.
  • Adopting a course from the catalog reports back how many of its stations nobody has checked for crew access, and whether that adopt started your trial.
  • The trial itself stays off in production until it ships in full, sheet and all.
v2026.9.11.9

Adding a race, or bringing one in from the catalog, shows you the trial it just started.

  • Save a race, or confirm a course from the catalog, and the race page shows what came with it, when your thirty free days end, and that nothing about it costs a card.
  • Comes up once, right after you add the race. It stays off in production until the trial itself ships.
v2026.9.11.13
v2026.9.11.12

A new page, "Changes to your plan," lists every change made through a link you shared, and lets you put one back.

  • Open it from a line on your race page or your race strategy page: "Changes through your links," or a count like "Three changes through your links since you last looked."
  • Each row shows what changed, what it says now, what it said before, when, and who it came through, for example "via Maria's link" or "via a shared link."
  • A "Put it back" button appears on the newest change to each thing. If that thing has changed again since, the row instead says "Changed since," and nothing is lost.
  • Station, drop bag and mile-note rows show as plain history for now, with "This one can't be put back from here yet." instead of a button.
  • Putting one back never tells the person whose link made the change. It is your own edit from then on.
  • This only covers changes made through a link. Your own edits are not listed here.
v2026.9.11.8

A race you typed in by hand before we had it in our race database can now pick up its aid stations, if we are confident it is the same race.

  • On your race page, when the name, date and distance match a course we have on file, you will see the aid stations that would be added, in the order you would reach them. Your own stations are listed too, staying exactly as you entered them.
  • "Add them" copies over only the stations you do not already have. Anything you wrote yourself is left alone.
  • "Not now" closes it for that race for good.
v2026.9.11.7

The "just filled" tag on Cutoff times and Share with your crew no longer covers the button's own label.

  • Adopting a catalog course used to drop the "just filled" tag right on top of the button text, hiding "times" and "crew". It now sits clear, at the button's own corner.
v2026.9.11.11

On the web, you can set when you expect to reach an aid station, the same way the iPhone app does, and the cutoff table says what that moved.

  • On your race strategy page, under Cutoff times, each arrival time has a pencil beside it. It opens "When you expect to be here" under that station's row, with "Worked out from your goal", a Time and a Day, Save and Cancel.
  • Save, and the page reloads with your time on that station and "You set this one." under it. The line below says what moved: for example "Setting this moves Deer Creek 31 minutes later, and your finish 31 minutes later." Those minutes are the ones the table printed, so a time that changes nothing after it says "Setting this moves nothing after Bear Creek."
  • The stations after it move by the same amount, until one you set yourself. Your own time stays put when you change your goal.
  • At Realistic or Survival, a station you set reads "Moved with the time you set here." The line saying what moved, and the note about when you leave the station before, show at Goal only, because both are about your goal times.
  • Picking a time before the race starts on race day says "That is before the race starts." and Save stays off. A time after midnight on the next day works as a normal pick.
  • "Put it back to 13:20" takes your time off and gives the station its worked-out time again.
  • Editing a station's name, cutoff or notes in the station window keeps the time you set.
v2026.9.11.10

The account menu has one Crew row instead of a badge by your name plus a separate Pricing link, and it says where you actually stand.

  • The "CREW" badge next to your name is gone.
  • The menu now has one "The Crew" item. If you are in, it says "In the Crew." If you are trialing, it says "Trial, until" the day it ends. If your trial ended, it says "Trial ended" that day. If you have never trialed, it just says "The Crew."
  • The separate "Pricing" item is gone; "The Crew" takes you to the one page that carries both prices.
  • This row never shows up inside the iPhone app.
v2026.9.11.23

Adopting a course from the catalog now tells you what arrived in one line, and lights up the tools it just filled.

  • After you say "Yes, use this course," your race page shows one line above the hero: "Your course arrived: 22 aid stations, 21 with a cutoff." If none of them carry a cutoff yet, the line says "Nobody has said a cutoff for any of them yet" instead of a count.
  • Cutoff times, Share with your crew, and Drop bags (once it exists) each carry a small "just filled" tag while that line is showing, so you can see which tools just came alive. The tag reads out loud to a screen reader, not just on screen.
  • Reload the page, or come back to the race later, and the line and the tags are gone. The tools work the same as any other race's from then on.
  • If the catalog course has no aid stations on file yet, the page still says so plainly, and nothing is tagged.
v2026.9.11.6

If your Crew comes through the App Store, a friend who starts the Crew on navrun.app still earns you a reward once you have a web plan of your own.

  • If your Crew comes through the App Store and someone you invited starts paying for the Crew on navrun.app, your reward is saved for you.
  • If you start a paying web subscription yourself, the reward is applied on your next bill, or picked up that night if it was missed.
  • If more than one is saved, a monthly plan gets one free month per bill, and a yearly plan gets them off the next yearly bill together.
v2026.9.11.5

The old "What I carry" box in Preferences is retired.

  • Preferences now links to the new What I can carry page instead of showing a single ounce box. Whatever total you had typed is still there, waiting as one container the first time you open that page.
  • Fuel and water on a race's strategy page now links straight to What I can carry, next to Edit my numbers.
v2026.9.11.4

What I can carry, a page for your water containers, on the web.

  • List what you carry water in: name, size in ounces, how many, and where it goes. NavRun adds it up, and the list stays on your account for every race.
  • Reach it from Preferences, where the single "what I carry" box used to be, or from Fuel and water on a race's strategy page, where it also shows if a leg of that race asks for more than you carry.
  • A total you had typed before shows as one container, "What I carry," so nothing is lost, and it is only kept for real once you save.
v2026.9.11.3

Your race strategy page on the web has a Fuel and water section, under Cutoff times, for every runner.

  • It opens by saying what is free and what is part of the Crew, before any number.
  • Your numbers: sweat rate, sodium loss and carbohydrate an hour, each marked as your own or as a general starting number, then what you carry. "Edit my numbers" opens Preferences at Body numbers.
  • Your legs: one row for each stretch, from the start to the first station, station to station, and the last station to the finish. Each row has its distance and climb in your units, the time at your goal pace, and the water that takes, in ounces. A leg reads "fits" or "more than you carry" only when your goal and what you carry are both known.
  • With no goal time, each leg says nobody has said, with a link to set a goal. When the race has no goal but you have a written strategy, its finish time is used, the same as the cutoff table.
  • Without the Crew, a leg that holds more water than you carry shows a card naming that leg, with See the Crew and Not now. Not now hides it until the page loads again.
  • With the Crew, that leg shows where its water runs out instead, for example "Leaving Mount Falcon with 20 oz, that runs out near mile 15.4."
v2026.9.11.2

The Course profile card, when no GPX file is loaded yet, now points straight to the Crew instead of showing the bear image and a second heading.

  • It reads "Loading a GPX course file for the elevation profile and course breakdown comes with the Crew" with a See the Crew button.
v2026.9.11.1

The Training Specificity Analysis card on your race page now points straight to the Crew instead of showing a padlock.

  • It reads "Comparing the climbing in your last 8 weeks with this course's comes with the Crew" with a See the Crew button. No padlock icon.

September 10, 2026

v2026.9.10.68

Your crew now sees your race notes, word for word, on the live page, on the page they see before you start, and on the crew page.

  • The card is headed with your first name, for example "Sam's race notes", then "Sam wrote these for race day.", then your words exactly as you wrote them. On a phone it shows the first three lines with "Read the rest". With nothing written it says "Nothing written yet."
  • A link set to Read and write also shows "Add a line" and "Change all of it", or only "Write" while nothing is written yet. Adding a line puts their words on a new line at the end and never changes yours. If you changed your notes while they were typing, they see your newest words first, and nothing of yours is replaced by the older copy they opened.
  • If the link stops being able to save while they type, what they typed stays on screen to copy.
  • If you changed your notes while they were changing all of it, everything they wrote stays on screen to copy, including lines they fixed, and it is still there when they start again from your newest words.
  • A Read only link sees the same card with no buttons. A link without read access, and a link preview in a messaging app, show no notes at all.
  • An open page checks for new words every 5 minutes and whenever the phone screen comes back on.
  • Most crew links open at the live page (the address ending /live/). The card sits under the map there, and under the heading on the page your crew sees at that address before you start. On the crew page (the address ending /crew/) it sits just under where you are.
  • The page before the start looks again every minute on its own. It waits while someone has a notes sheet open, so a line they are typing is not wiped.
v2026.9.10.67

If your crew changes your race notes through a link you shared, your race strategy page on the web says so, and a save from a page you opened before their change no longer wipes their words.

  • Under the race notes box, a line names the link and when: for example "Last changed from Maria's link, Saturday 26 September at 13:31." A link you did not name reads "a shared link". The time is in the race's time zone. The line goes away after your next save that changes the words.
  • If the page was open from before their change and you press Save notes, nothing is saved. What you typed stays in the box, and above it the page says "These notes changed after you opened this page. What you typed is still in the box. The notes as saved now:", then shows the notes as they stand. Press Save notes again and what is in your box replaces the notes shown above it, including any line your crew added.
  • Pressing Save notes without changing anything writes nothing, and the "Last changed" line stays.
  • On the iPhone app from the App Store, opening your race notes and pressing Save without changing anything no longer deletes a line your crew added after you opened them. Nothing is saved, and the notes come back with their line in them. To take out only their lines, use the web or the next app version.
v2026.9.10.66

If you have added a race or a plan and no run has synced yet, your home page shows your training instead of the welcome.

  • Before, a new account that had entered a race, built a plan or written a race strategy, with no run from Strava or Apple Health yet, saw "Welcome to NavRun" on the home page, while Training Plans opened for it. Home now opens for that account too.
  • An account with nothing in it yet still sees the welcome, with Connect Strava or Apple Health and the button for following someone's race.
  • On the web form for editing a race that has a race strategy, the note under Start time now says the strategy's stretch in the dark and its weather stay on the start it was written for. It used to say night miles, even to a runner who reads kilometres.
  • Two more notes said night miles the same way: one when a strategy's start has since moved, one when a strategy predates NavRun recording start times at all. Both now say stretch in the dark instead, on the race strategy page, the race card PDF, and the phone app's strategy API field. No iOS screen shows this note yet.
v2026.9.10.65

Your race page on the web has one row of controls, and Cutoff times and the race strategy page open from it for every runner.

  • Under the race name there is one row: Cutoff times, Share with your crew, Race strategy and Edit, then Delete race and Back to races as text links at the end. Cutoff times opens the cutoff table on the strategy page. Race strategy opens the written plan further down the same page, where a runner in the Crew with no strategy yet finds the button that writes one.
  • Before, a runner outside the Crew saw "Race Strategy, with the Crew" with a padlock, and it went to the pricing page. That link is gone.
  • Under the row: "Cutoff times are worked out from your goal and your aid stations. They are yours whether or not you join the Crew."
  • The crew link page lets you create a link for any race. Before, a race with no written strategy showed "does not have a plan yet" where the Create the link button should be.
  • On a phone, a race with four numbers across the top (distance, goal, climb and descent) made the page scroll sideways. The numbers now stack one under another, here and on any other page that shows four or five of them.
v2026.9.10.64

You can write race notes on a race's strategy page on the web, whether or not a race strategy has been written.

  • The Race notes box now sits on the strategy page just below the race day checklist, for every runner, in the Crew or not. Before, it only showed once a strategy was written for the race.
  • Tap Save notes and the page comes back to the same box, with your words in it and "Race notes saved."
  • The box appears once on the page, with or without a strategy.
v2026.9.10.63

A crew link that can see your race plan now carries your race notes too.

  • The race plan a crew link opens now includes your race notes, the same words your own race page shows. This is true for Read only links and for Read and write links. Before, a Read and write link could replace your race notes without ever being able to read them.
  • A link that can only listen to or speak in the crew room still cannot read your race notes.
  • On your race's crew link page, the lines saying what a link carries now name your race notes, under Read only and in the list above the choice.
  • The page your crew opens does not show race notes yet. Changing them from a crew link still needs a race strategy and the Crew, as before.
v2026.9.10.62

The email thanking you for bringing someone into the Crew says what you got.

  • When a runner you invited joins the Crew on navrun.app, the email thanks you and says your reward in plain words. On a monthly plan, your next month is free. On a yearly plan, one month's price comes off your next yearly bill. With no plan on navrun.app, you get a code worth one month's price that doesn't expire and works on a monthly or a yearly plan.
  • The dollar amount in the email is the monthly price NavRun charges, so it stays right if that price changes.
  • If your Crew comes through the App Store, no reward email and no code are sent. A code only works at checkout on navrun.app, so it would only help by starting a second payment. Your invite is still recorded as joined.
v2026.9.10.61

Room before a cutoff now matches the times printed beside it.

  • An arrival time that falls part way through a minute is now shown at the next whole minute: on the strategy page, the crew and pacer sheets, and the crew room on the web and in the app. Before, the seconds were dropped from the clock but kept in the room, so a station reached at 09:06 and some seconds, against a 09:15 cutoff, read "8 minutes of room" beside two times that look 9 minutes apart. It now reads 09:07 and 8 minutes.
  • Leave times are the printed arrival plus the time planned at the station.
  • The room shown is never more than the real room. An arrival that rounds onto the cutoff reads 0 minutes of room, and one that passes the cutoff by less than a minute says the cutoff comes first.
  • The crew room line saying whether your runner is where the plan expected uses the same printed minutes, so a runner still inside the printed Survival minute is not described as putting in more time than planned.
  • That line now reads the same arrival times as the table. When a time you set for a station sat earlier than when you leave the station before it, the table held it at that leave time and the line did not, so a runner ahead of the printed times could read as putting in more time than planned. It now reads quicker than the plan.
v2026.9.10.59

On a race's strategy page, what the Crew writes is said before you ask for it, and a strategy you already have stays yours.

  • If no strategy has been written for the race and you are not in the Crew, the bottom of the page says what the Crew writes: the course split into stretches with how hard to run each one, and a pace for every mile. It comes after the cutoff times, the checklist and the crew share link, with a button to see the Crew. The cutoff times stay yours either way.
  • If a strategy was being written and got stuck, the page says it took longer than expected straight away, and if you are not in the Crew the bottom of the page shows what the Crew writes again instead of nothing.
  • The line under the race name gives your goal as hours and minutes, such as "goal of 7 hours 30 minutes", so it no longer reads like a time on the clock beside the start time. The line under a strategy's estimated finish says the goal the same way.
  • On your dashboard, a race with no strategy has a See Race Strategy button that opens its strategy page, instead of the old upgrade page.
  • If you are in the Crew, including during a trial or if NavRun gave you the Crew, and no strategy has been written yet, a Write my race strategy button starts one from the same page.
  • If you hold a strategy and are not in the Crew, because a trial ended or you stopped paying, you keep reading all of it, including the pace band and the PDF race card. The Regenerate buttons are gone. At the bottom, Writing a new one says what having the Crew write a new one costs before you click.
  • Asking for a new strategy without the Crew is refused by the server too, not only hidden, so a page left open from before cannot start one. It takes you to the Crew page instead of the old upgrade page.
  • If you are not in the Crew, the live forecast banner says a forecast is there without asking you to regenerate, and a strategy that could not be written says so without a Try Again button.
  • Under the elevation profile, a line says what the station markers mean: green where your crew can get to a station, blue where they cannot, and grey where nobody has said. The old line under the cutoff times, which named markers even when there was no chart, is gone.
  • Under a strategy's estimated finish, the page again says which goal the arrival times aim at.
  • In the crew room, on the web and in the app, a cutoff whose day nobody gave now names the day it is counted as, in the same words the strategy page and the crew sheet use.
v2026.9.10.58

On the iPhone, a race opens on its cutoff times, its aid station list says when you reach each station, a new Arrivals screen reads the race leg by leg, and a few words now match the web.

  • Open a race and Cutoff times is the first section under its name, whether or not you are in the Crew and whether or not a strategy is written. It shows up to three aid stations: the mile, when you arrive at your goal pace, the cutoff, and the room before it, counted from Survival. When the race has more than three, a row such as All eight stations opens Arrivals.
  • Under the race's name is one line with the date, the place, how many days out and your goal, such as "27 September, Lakewood. 18 days out. Goal of 15 hours 30 minutes.", then the start time, or a line saying the times are worked from 8am when nobody has said when the race starts. The dark header card is gone and nothing on it bounces.
  • With no goal time set, Cutoff times lists each cutoff and says setting a goal works the times out. With no aid stations it says to add them when you know them, with Add a station. If the times cannot be worked out, it says so and the section stays.
  • The button at the top right of a race reads Edit.
  • The date, the place, the days out, the start time and the goal now show once, under the race's name. The race's type, distance, climb, priority, status and website sit under Race details at the very bottom.
  • On a race with no strategy written, the bottom of the screen reads The written plan, leg by leg. In the Crew, Write my race strategy opens the race strategy screen. Not in the Crew, it says what the Crew writes and that the cutoff times stay yours either way, and See what the Crew writes opens the Crew page in the app. With a strategy written, Race strategy in the race day plan is the way in and nothing extra shows. A race whose date has passed, or that is marked completed, shows nothing extra there either.
  • Near the bottom of a race, The course says how many aid stations are on file and how many of their cutoffs, such as "Eight aid stations" and "Six cutoffs on file, two nobody has said". Tap it for the aid station list. It takes the place of the Aid Stations row.
  • Under Cutoff times on a race is Your race day plan: Cutoff times, Share with your crew, Drop bags, Race strategy, Checklist and Race notes. Open the race day plan shows those rows on a screen of their own, and each row under Inside it opens straight from the race.
  • Cutoff times in the race day plan says how many aid stations are on file and how many arrival times you set yourself, such as "Four stations, one you set yourself", and opens Arrivals. With no aid stations yet it says so and opens the aid station list.
  • Checklist in the race day plan says how many things are on your race day list, such as "Twelve things on the list" or "Nothing on the list yet", and opens the list. It takes the place of the Race day list row. How many you have ticked off is never counted there.
  • Share with your crew in the race day plan says whether your crew link is out. Tap it and the link is made, or the one already out is found, and the share sheet opens. It needs no strategy and no Crew. If the link cannot be made just then, the row says so and a second tap tries again.
  • Drop bags in the race day plan says how many aid stations take a drop bag, such as "Three stations take a drop bag", or that nobody has said where they go yet. The bag planner is not on the phone yet, so the row says to set drop bags on each station for now, and opens the aid station list.
  • Race strategy in the race day plan says whether the written plan is there, and opens the race strategy screen whether or not one is written. The Race Strategy section, with Estimated Finish, Weather and View Strategy, is gone from the race screen.
  • On the race strategy screen, Fuel and water now opens whether or not a strategy is written and whether or not you are in the Crew. Before, it showed only under a written strategy.
  • Race notes in the race day plan shows the first line of your race notes, or Nothing written yet. Tap it to write or change them and tap Save, whether or not a strategy is written and whether or not you are in the Crew. Each tap reads your notes again, so the sheet opens on what is saved now, not on what was there when you opened the race. The row shows what was saved. If your notes could not be read, the row says so and a second tap tries again. If a save does not go through, the row says so and your words are kept for the next try.
  • If one of those counts cannot be read, its row still opens, with nothing written under it.
  • Adding or editing a race has a Start time row under the date. Turn on I know the start time and pick it. Turn it off and the arrival times go back to being worked from 8am, and it stays off after you save. Saving brings the new start into the race screen and Arrivals.
  • When nobody has said what time a race starts, Set the start time sits under that line on the race screen and on Arrivals, and opens the race form at Start time.
  • If the race has a strategy written for a different start, the Start time row says the strategy's stretch in the dark and its weather stay on the start it was written for.
  • On a race strategy, the first row under Aid Stations is Arrivals, leg by leg. It opens a card for every leg, station to station: its miles, the climb or "climb not measured", when you leave and when you get in, and when the station closes.
  • A switch at the top of Arrivals shows the day at Goal, Realistic (10% slower than your goal) or Survival (25% slower). The room before each cutoff is counted from Survival, so it reads the same whichever you pick. Past a cutoff it says so in words, never a minus number or a red one.
  • Arrivals names your goal as a length of time, "Arrival times aim at your goal of 15 hours 30 minutes", the same words as the web, never in the shape of a clock. On the race screen the goal time reads the same way, 15 hours 30 minutes instead of 15:30:00, which beside a 06:00 start could be read as half past three in the afternoon.
  • With no goal time set, Arrivals says so once at the top with a Set a goal button, and every leg keeps its card without times. If the times cannot be worked out, one line at the top says so and the cards stay. When nobody has said what time the race starts, it says the times are worked from 8am.
  • On Arrivals, tap a leg to set when you expect to be at that station, or tap Edit for the aid station list. Pull down to refresh.
  • Each aid station shows when you reach it at your goal pace and its cutoff, with the day added when that is not race day. A station you pass twice is named as a second visit.
  • Crew access and drop bags each read yes, no, or nobody has said. Before, a no and an unknown both showed nothing.
  • With no goal time set, each station says that setting one works the times out for you. If the times cannot be worked out, one line at the top says so and every station keeps its cutoff on the list.
  • A race with no aid stations yet says to add them when you know them.
  • Tap a station and set when you expect to be there yourself: a time, and which day of the race. The stations after it move by the same amount, up to the next one you set. A time before the start cannot be saved, and the screen says why.
  • A station you set shows "Put it back to" with the time worked out from your goal, and one tap returns it to that.
  • Editing a station has a For your crew section. Move the map until the pin sits where your crew parks and tap Set parking here, or tap Clear parking. How the crew gets in and the driving directions are written there too, and an empty one says nobody has said. Your crew link and crew sheet do not show these, so send your crew what they need.
  • Adding a new station says to save it first before setting when you expect to be there and where your crew parks.
  • Clearing a cutoff, or changing crew access or a drop bag back to "Not sure", now stays that way after you save. Before, the old answer came back.
  • The Fuel and water screen says "part of the Crew" while it loads and when it cannot load, the same words it shows once the plan arrives.
  • Picking the Heartland 100K from race search on the iPhone names it "Heartland 100 Spirit of the Prairie 100K", the same name the web gives it, instead of dropping the race's own 100.
v2026.9.10.57

On your races list, Strategy opens the race's strategy page for every runner, with no padlock.

  • Each race's Strategy button opens its strategy page whether or not you are in the Crew and whether or not a strategy has been written. It no longer leads to the pricing page, and the races list no longer has a separate Generate Strategy button.
  • A race with a course file shows its elevation profile on the strategy page before any strategy is written.
  • On the strategy page the elevation profile now comes after the cutoff times, then the race day checklist, then the link to share with your crew.
  • When a race has no course file, the strategy page asks every runner to add one and says what it gives: the elevation profile and the climb on each leg.
  • On the crew sheet PDF, a cutoff whose day nobody gave now says which day it is counted as in the same words the strategy page uses.
v2026.9.10.56

The cutoff table on a race's strategy page shows one arrival time at a time, with a switch for the pace.

  • The table is called Cutoff times. Above it are three links, Goal, Realistic and Survival, and the Arrival column shows the times for the one you pick. The room before each cutoff is counted from Survival, so it stays the same whichever you pick.
  • Arrivals and cutoffs read on a 24-hour clock, with the day beside any time that is not on race day. When nobody has said which day a cutoff is on and NavRun worked it out, the line under it says which day it used.
  • Each station row shows the leg into it: its distance and the climb, or that the climb has not been measured. It also says yes, no or nobody has said for crew access and for a drop bag.
  • A place the course passes twice reads "second time" on its second visit.
  • The arrival times are no longer green, red or amber, and the remove button on each station is no longer red.
  • The line under the race name says the date, the start time and your goal. If no start time is set, it says so and links to where you set one. If no goal is set, it says so and links to where you set one, and the table shows cutoffs only.
  • A race with no aid stations says there are none on file yet. If the arrival times cannot be worked out, the table says "Not worked out" in those cells and keeps every station and cutoff.
  • On a phone-width screen each station reads as its own block, so the cutoff and room are no longer hidden off the side of the table.
  • The days-out count at the top no longer pulses.
v2026.9.10.55

On the iPhone, tap an aid station to write what you want waiting there.

  • On Race Strategy, tapping an aid station opens a note for it: what your crew should have ready, who is meeting you, and what is in your drop bag. Your own words, free for everyone.
  • The note says whether your crew can reach the station and whether a bag can go there. Where nobody has said, it says exactly that, never a no.
  • If a station's note cannot be opened yet, because your notes are still loading or the race has no strategy to keep it with, tapping the station says so in a plain line instead of doing nothing.
  • A station's note says which day its cutoff falls on when that is after race day, so a cutoff past midnight reads as the next day.
  • Race Strategy has a Fuel and water screen. It says what is part of the Crew first, even while it is still loading or cannot load, then shows every leg's water at your own hourly rate, free. Where you have not entered a number, it says the number is general and not about you.
  • When your crew's phone loses the connection overnight, their room keeps the last arrival window it had and says how old it is, instead of going blank.
v2026.9.10.54

A race's strategy page opens whether or not a strategy has been written for it.

  • If you open a race's strategy page before a strategy is written for it, the page opens instead of sending you back to your races. That is true for every runner, whether or not you are in the Crew.
  • With no strategy written, the page shows your aid stations, the race day checklist and the link to share with your crew, and you can add and edit aid stations there.
  • While a strategy is being written, the strategy page says so and waits for it, instead of sending you to the race page.
  • When a race has a strategy, its written parts (the estimated finish, weather, finish breakdown, segments and pace band) now come after your aid stations, checklist and crew sharing. Race notes and the race day sheets stay at the bottom.
  • The aid station badge that said "Crew" now says "Crew access", and the pace band's crew column is called "Notes for your crew".
v2026.9.10.53

A referral reward now lands, and it is a month's worth off.

  • When a runner you invited subscribes on navrun.app, a month's worth comes off your subscription, next to any other discount you already have. On monthly, your next month is free. On yearly, one month's price comes off your next yearly bill. Before this, that step would have failed. No invite had reached it yet, so nobody missed a reward.
  • It only happens for a subscription made on the web. A runner who subscribes in the App Store does not set it off.
  • If you have no subscription running, you get a code for one month's price off instead, and that code is now made the way Stripe accepts it.
  • One invite gives one reward, even if NavRun hears about the new subscription twice.
v2026.9.10.52

More fixes from the second 1.4 web check.

  • A weekly goal under 5 miles no longer stops Preferences from saving. If you set 8 km, switched to miles and then tried to save anything else, the page would not send. It sends now and keeps the goal you had. A new goal under 5 miles (8.1 km) is not saved, and the page opens on the message that says so.
  • The weekly goal box says that leaving it blank keeps the goal you have saved, since that is what happens.
  • The crew sheet and drop bag sheet PDFs say which day each arrival is on when your race runs past midnight, the same way the pacer sheet does. A 12:05 AM arrival has "the next day" under it instead of looking like the start of race day.
  • The pacer sheet now treats an aid station with no answer on crew access the same way the crew sheet does: that row says nobody has said whether crew can get there. Only a station marked no crew access is left off.
v2026.9.10.50

An arrival you set yourself never reads earlier than when you leave the station before it, and a race on the web can have its own start time.

  • If you set a station's arrival earlier than when you leave the station before it, the race strategy page and the crew and pacer sheets show it at the time you leave that station, so no leg runs backwards.
  • The stations after it count on from that time. Goal, Realistic and Survival each count on from their own, so every leg after it takes what that pace gives.
  • Nothing changes on a race where you have not set an arrival yourself.
  • On the web, a race's edit form has a Start time box, beside the race date. Arrival times are worked out from 8am until you set it, and you can empty the box again if the start you entered was a guess.
  • A race strategy's night miles and weather are worked out once, when the strategy is written. A strategy written from now on keeps the start it used, and if the race's start changes after that, the strategy page and its race card name the start they were worked out for.
  • A strategy written before now cannot say which start it used. Once its race has a start time, the strategy page and its race card say its night miles and weather may not match it.
  • When a race has a strategy, the Start time box says its night miles and weather stay on the start it was written for until you write it again.
v2026.9.10.49

Fixes from the second 1.4 web check.

  • A new account can save Preferences now. The weekly goal box used to open at 0.0, a number the page itself refused, and a save after fixing it came back with nothing saved. You can leave the goal blank if you have not picked one.
  • The note under the arrival table on a race strategy says what the table does: room before each cutoff is counted at Survival, 25% slower than your goal. It used to say Realistic.
  • The race search on Add Race no longer shows the state twice ("Cassoday, KS, KS").
  • The crew sheet PDF lists the aid stations where nobody has said whether crew can get there, and says exactly that, instead of leaving them off.
  • On the pacer sheet, when a stretch runs past midnight every time says which day it is on, so a stretch through the night no longer reads as 8:00 AM to 8:18 AM.
  • The race list no longer scrolls sideways on a phone.
v2026.9.10.48

Your crew can take hours through the night from the room.

  • The room page has a new section, Hours through the night. Tap an hour to take it and tap it again to give it back. An hour nobody takes stays open.
  • On a night the clocks go back, the two 1 AM hours are two separate rows.
  • Once the hours are on your page, an hour someone else takes shows up within half a minute, without reloading.
  • Silence someone and their name comes off every hour they took. Those hours read open again for the rest of your crew.
  • Stop sharing on the crew link page closes the link that page shows you, and nothing else.
  • After a crew link runs out and you share again, the page shows, changes and closes the new link. The old one is never mistaken for it.
  • NavRun can now keep which person each of your links belongs to, and whether a link can speak from the moment it is made. The screens that use this come next.
  • Weighing in the same before and after a run, with nothing drunk, now says so plainly instead of telling you that you finished heavier than you started.
  • Trying to take an hour before the room opens now says the room is not open yet, on the web and in the app, instead of a sentence written for sending a message.
  • If the hours section was not ready the moment you opened the room page, it now appears on its own once it is, without a reload.
v2026.9.10.47

On iPhone, the Crew row says where you actually stand, and you can list what you carry water in.

  • The Crew row in your profile sheet and in Settings used to say "Active" for anyone in the Crew, including someone in the free trial. It now says "Trial, until October 9" with the day your trial ends, "In the Crew" once you have joined, or "Trial ended October 9" after a trial finishes.
  • It gives a date, never a count of days, and nothing about the trial appears on the Today tab.
  • New in Settings, under Training: What I can carry. List the flasks, bottles and bladder you own, with a size in ounces and how many of each, and NavRun adds them up. It is free, and the list stays on your account for every race.
  • If you already typed one carry total on the web, it shows up as a single container. Split it into what makes it up, or keep it as it is. Nothing changes until you tap Save.
v2026.9.10.36

Smoke-test fixes from the 1.4 web pass.

  • A body number the form refused, like a negative sweat rate, is no longer echoed back on the page as though it had been saved.
  • The fuel and water screen now says a plan built leg by leg "is part of the Crew," not "is part of Crew."
  • Adding a race from the catalog no longer repeats the race's own name on the confirm page when the course name already says it.
  • A saved race's city no longer repeats the state a second time when the catalog's own town already carried it (Cassoday, KS was becoming Cassoday, KS, KS).
  • Adopting a race whose own name and course write the same distance under a different unit no longer drops the race's own number when the course name says more than just its distance (Heartland 100 Spirit of the Prairie was becoming Heartland Spirit of the Prairie 100K).
v2026.9.10.35

A late-arriving Stripe receipt can no longer undo a newer one.

  • Stripe can deliver its "you were paid" notices out of order. Until now, whichever one landed last won, so a delayed old notice could make a paying runner briefly stop counting in the Crew, or the reverse. The newer receipt wins now, every time.
  • The nightly billing check's --dry-run used to write to the database anyway, despite its name. It only reports what it would write now.
  • The webhook and the nightly check now resolve a Stripe customer to a runner the same way, so the two can never attribute one payment to different people.
v2026.9.10.34

Nothing changes for runners. The copy of NavRun I test changes on can no longer email you.

  • That test copy holds a copy of real accounts, so every email NavRun sends now passes one check first. Outside the live app, a message goes only to addresses on a short list I keep, and anything else is dropped before it leaves.
  • The hourly race alert digest now also stays switched off in the test copy, the same as every other scheduled email there.
  • A message that check drops is now recorded as its own thing, not as sent and not as failed. Nothing gets marked "already emailed" for mail that never left, and nothing goes down a retry path meant for a real failure. If this ever happened on the live app by mistake, I'd hear about it now instead of losing the mail silently.
  • The check that proves nothing can mail around this now reads every file in the project, not only the main app, and catches a few more ways around it.
v2026.9.10.33

Nothing you see changes in this release.

  • Every crew, pacer and drop bag note you save is now also kept against its aid station, as well as against its mile. The next release uses that to give two stations near the same mile their own notes, and to let you pack drop bags item by item.
  • Moving or deleting an aid station keeps every note you wrote at that mile, including the ones you saved before this release.
  • The same holds when you move or delete an aid station on the website.
  • Adding or moving an aid station into a mile that already has a note no longer hides that note, and editing the note at that mile never removes what another station holds.
  • Where two stations share a mile, their notes read one after the other with " | " between them. Clicking in and out of that note on the website, or opening it on an iPhone, saves nothing and never copies one station's words onto the other.
  • A note saved in the minutes while this release goes out is kept, spaces and line breaks included.
  • Changing only the spaces or line breaks around a note saves that change, as it always did.
  • A mile that was stored twice, once with a leading zero, now reads as one mile, and the next save there keeps the words from both.
v2026.9.10.32

A course's distance reads as its real name again, not a raw number plus "M".

  • The catalog held real names for every distance, but a course published in miles was showing the raw number with an "M" tacked on, which reads as metres. A 100K read as "62.2M", a 50K as "31.1M", a half marathon as "13.1M".
  • Fixed on the phone and the web: a course now shows the name a runner already knows (50K, 100K, 50 Mile, 100 Mile, Half Marathon, Marathon) when its distance is one of those, an unusual distance is spelled out in plain miles, and a time-based or backyard race shows what it is called (24 Hour, Backyard).
  • Narrowed how close a course has to be to 31.07 miles or 62.14 miles to earn the name 50K or 100K, so a course actually measured at 31 or 31.5 miles, or 62 or 63 miles, now reads as its own real distance instead of a wrong one.
  • A backyard or fixed-time course's name was printing twice in its own page title and description, since its distance and its name are the same thing. It now prints once.
  • Same fix on the race page itself: a backyard or fixed-time course's name was printing twice in its own heading and in the "other distances" list whenever it had other distances alongside it ("Big's Backyard · Big's Backyard"). It now prints once.
  • The 50 Mile and 100 Mile bands from the first pass were still too wide: Western States, a real 100.2 mile course, was reading as "100 Mile". A course now only gets a conventional name (50K, 100K, 50 Mile, 100 Mile, Half Marathon, Marathon) when its own published number is that distance, in its own unit, give or take rounding. Western States now reads "100.2 miles", its actual distance.
v2026.9.10.31

A link you set to hear the room only can no longer send into it.

  • When you share your run, you can set one person's link to see where you are and hear the room without speaking in it. Until now that link still showed the record button, and a message sent from it reached the room anyway.
  • A listen-only link now hears everything and sends nothing. Where the record button was, it says the link is for listening.
  • Crew links you have not changed keep speaking exactly as before. Turning speak back on for someone works on their very next look at the room.
v2026.9.10.30

Getting ready for your own arrival times and crew directions.

  • NavRun can now keep the time you expect to reach an aid station, counted from the start so it stays put when your goal changes. There is no screen to set one yet. That comes next.
  • Once one is set, every station after it moves by the same amount, up to the next one set, on the strategy page, the printable sheets, the crew page and the live crew room. Arrival times never run backwards.
  • NavRun can also keep your own version of the crew parking spot, access notes and driving directions that came with a race from the catalog. The screens to edit them, and the crew pages that show them, come next.
v2026.9.10.29

When you reach each aid station, the cutoff there, and the room between them.

  • The arrival table on the race strategy page now aims at your goal time. It used to follow the strategy's own finish estimate, which adds time for tired legs and dark miles, so on a long race its arrivals are now earlier than they were.
  • The printable sheets, the crew page and the live crew room read the same arrival times as the strategy page.
  • The Cumulative column in the strategy page's split table and on the printed race card aims at your goal too, the same clock the iPhone strategy screen shows. Paces and split times are still the strategy's own, and both tables say so.
  • Room before a cutoff is counted at 25% slower than your goal, on the strategy page, the printable sheets, the crew page and the live crew room. If there is room at that pace, there is room. With no goal time set, the live crew room counts from how the day is going and says so.
  • The line that tells your crew whether you are ahead of the plan, on it or behind it reads the same arrival times as the crew page.
  • Arrival times do not account for the weather yet, on any page, with or without a strategy.
  • Where nobody has said which day a cutoff falls on, NavRun no longer reads it as race day. When only one day fits your arrival, it uses that day and says it worked it out. When it cannot tell, the strategy page, the crew page and the crew sheet all say "Nobody has said whether this cutoff is the same day."
  • Two aid stations inside the same mile now get their own arrival times, a station at the start line arrives at the start, and a station past the finish is no longer given the finish time. The pacer sheet no longer prints a stretch that starts at the finish or past it.
v2026.9.10.28

Climbs and trail surface are worked out one way, for everyone.

  • The race strategy and the free splits each had their own copy of the arithmetic that slows a mile for a climb or rough ground. There is one copy now.
v2026.9.10.27

Every page now agrees on when your race starts.

  • When a race has no start time, a new race strategy works from 8am, the same as the rest of NavRun. It used to work from 6am.
  • On a race of 100 miles or more, that changes which miles count as dark. For a course near Denver in early October, a 20 hour goal went from 35 dark miles starting at mile 66 to 45 starting at mile 56, and a 30 hour goal went from 57 starting at mile 44 to 63 starting at mile 38.
  • The strategy's estimated finish moves with them: 13 minutes later for that 20 hour goal, 11 minutes later for the 30 hour goal. On a 50K or a 100K only the hour the weather is read from moves. A strategy you already have keeps its numbers until you write a new one.
  • When you set a start time on the race but not on the strategy, the strategy page, the printable sheets and the crew page now all use it. Some of them used to fall back to 8am.
v2026.9.10.26

On iPhone, adding a race from the catalog never guesses for you.

  • A race that runs more than one distance opens with none ticked. You pick yours, and Save waits until you do. A race with one distance says which one it is.
  • What comes with your distance is read before Save can be pressed. If the catalog does not answer, the form says so and offers Try again, instead of spinning.
  • Once you pick a race its name stays put, so what you see is what gets saved. Clear takes you back to searching, or to typing your own race in.
  • When the only year we hold for a race has already been run, the form asks for the date of the race you are running instead of saving last year's.
  • "What comes with it" now counts only the stations that will be copied, says how many cutoffs are known even when none are, and counts every fact nobody has checked.
  • The catalog tray pages through every race, and every row says whether aid stations are on file. Filters work without typing a name, the sheet adds country, and its button says how many races it will show.
  • When the catalog does not answer, or has had too many searches from your network today, the tray says so instead of saying nothing matched.
v2026.9.10.25

On iPhone, the plus on the Races tab now looks through NavRun's catalog, and you choose your race and your distance before anything is added.

  • The plus opens a tray over your own races. One search finds your races first, then the catalog's, and every catalog race says whether we have its course on file or nothing on file yet.
  • Filters sit in one sheet: format, including fixed time races and backyards, distance past 100 miles, state and month. Distance and format only narrow races whose facts are on file, and the sheet says so, so a short list never reads as an empty catalog.
  • Tapping a race opens its course: the distances it runs, the climb, the elevation along the way, and each aid station with its cutoff. Tap a station for crew, drop bags, pacers and medical, each a yes, a no, or nobody has said.
  • Picking a race adds nothing. You choose the distance you are running, read what we have on file for it, and only Save puts it on your races.
  • Most races in the catalog do not have their aid stations written down yet. When yours does, the form tells you how many will come across before you save.
  • When we hold the race but not its course, the app says that plainly, and you can add the stops yourself.
v2026.9.10.24

The race catalog now keeps every race in view while you page through it, even when two share a name.

  • Two races with the same name could land on two pages of the catalog list, or on neither, depending on how the results happened to sort. Paging now guarantees every race shows up exactly once.
  • A multi-day race already underway (started, not yet finished) is now treated as the race you'd enter next, not a stale past edition, so the app won't ask you to re-confirm a date that's already right.
  • The distance filter's "X of Y courses" note now says plainly that it's counting the whole catalog, not just what's on the page in front of you.
v2026.9.10.23

The race catalog can be browsed a page at a time, and every row says what we have on file.

  • A new catalog list gives each race its courses, each course's distance, its format (loop, backyard, fixed time and the rest) and how many aid stations we hold for it, all in one request.
  • You can filter by format, distance, state, month and country without typing a name first.
  • A distance filter says how many courses have a distance on file, because most do not yet, so a short list never reads as an empty catalog.
  • When the only year we hold for a race has already been run, the app is told so, and can ask you for this year's date instead of saving last year's.
  • The filter choices and their counts come from the catalog itself, so they stay right as races are added.
v2026.9.10.22

Behind the scenes: the race catalog page's filters are ready to be shared with the app.

  • The distance, month, state and status filters on the catalog page moved into one place the app can read too, so the two can never disagree about which races fit a filter.
  • A distance filter still needs one course in that range on its own, and a stage race is still never offered as one of its days.
  • The page works exactly as it did.
v2026.9.10.21

Preferences save for a runner who has never set a location.

  • If you had never entered a latitude and longitude for weather, your browser could refuse to save Preferences at all, without saying why. Both are optional now. If you type one, it asks for the other.
v2026.9.10.20

The website calls it the Crew, everywhere you can read it.

  • A few places still said Pro: the badge next to your name, the weekly report pages, the course file upload on the race form, the dashboard, your billing settings, the pricing page and the welcome page after you join. They say Crew now.
v2026.9.10.19

A race strategy or weekly report you already have opens from its button, with no lock on it.

  • Your stored race strategy and weekly reports stayed readable after you left the Crew, but the buttons to them still showed a lock and led to the join page. On the race list, on the race page and in the sidebar, those buttons now open what you have.
  • If you have no weekly reports, the sidebar no longer lists them.
v2026.9.10.18

The Crew page can count the people who pay by card on the website.

  • The number of people in the Crew only ever counted iPhone members, because nothing wrote down what a website member had paid. It is written now when a payment goes through, and checked again every night.
  • A membership someone gave you, that costs nothing, is still a full membership. It is left out of that one number because the sentence is about people who pay. When nobody pays yet, the page says nothing about a count.
v2026.9.10.17

The Crew page says up front what staying is worth.

  • Every year you stay in the Crew, your price comes down another 10%, until it is 50% off, and it holds there. The page now says so next to the price, before you join.
v2026.9.10.16

You can join the Crew for a year on the website, not only by the month.

  • The Crew page only had a button for the monthly price, while the iPhone app offered both. The website now has both: $6.99 a month, or $69 a year.
  • Each button reads its price from the same place the rest of the site does, so the two can never say different numbers.
v2026.9.10.15

The Crew page no longer tells you that you have joined when you have not.

  • A runner who had not joined read "Crew since 2026" under the join button, and "And because you did, you get" over the list of what the Crew gets. Both only show to someone in the Crew now.
  • If you have not joined, the same list reads "What the Crew gets".
v2026.9.10.9

The Crew page says exactly where you stand, and nothing free is called Crew-only anymore.

  • A runner already in the Crew with nothing billed still saw buttons to buy it. The page now shows nothing to buy when you already have it.
  • Building a new race strategy, or rebuilding one, opens the ask to join before you tap into a wall. It asks once a session, not every time.
  • The race strategy you already have stays on the page while a new one is written, instead of disappearing until the new one finishes.
  • Aid station timing was written up as something the Crew adds. It has been free since this release, and the page now says so.
  • How your body felt on a weekly report is free to write down, in the Crew or not. A tap that does not save now says so.
  • The Crew page says which of three places you are in: paying, in the trial, or the day your trial ended.
v2026.9.10.8

The app can tell when your free month has ended.

  • Once a free month ended, your account told the iPhone app nothing about it, so the app could not tell you apart from a runner who never had one.
  • Your account now says the day your free month ended. A paid membership, or one someone gave you, reads as it did before.
v2026.9.10.7

A membership someone gave you ends only when they mean it to, and a free one is never made by mistake.

  • Behind the scenes, ending a free month early or stopping a paid membership by hand could have turned it into a membership that never ended, and ending a membership someone gave you did nothing at all.
  • Now only a deliberate choice gives a membership, and ending one ends it. Your Crew status always follows what is actually behind it.
v2026.9.10.6

On the phone, a Crew membership someone gave you is never offered for sale, and the trial is told apart from it.

  • The Crew page read a membership someone gave you as the free month, and showed it the buttons to join. It now says you are in the Crew, with nothing to buy.
  • The free month is the only thing the page treats as the free month. A runner who pays during it is shown as paying.
v2026.9.10.5

A Crew membership someone gave you stays yours.

  • Once the free month opens, a runner whose membership was given to them with nothing billed would have started the free month by adding a race. When that month ended, the membership would have ended with it.
  • Adding a race never starts the free month for a runner who already has the Crew. A free month ending, or a change to a paid membership, no longer touches a membership someone gave you.
v2026.9.10.4

How your body felt is yours to write down, in the Crew or not.

  • On a weekly report you already have, the buttons for how your body felt did nothing unless you were in the Crew. The app showed them and then quietly refused the tap.
  • They now save for everyone, on your own reports. How your body felt is your own record. Writing new weekly reports is still part of the Crew.
v2026.9.10.3

The app can now tell the free month apart from a membership someone gave you.

  • Your account told the iPhone app the same thing for a runner in the free month and a runner whose membership was given to them: you are in the Crew, and nothing is being paid. The app read both as the free month, so a runner who already had the Crew could be shown the buttons to buy it.
  • Your account now says when you are in the free month and when it ends. A membership someone gave you reads exactly as it did before, and a paid membership still says where you pay.
v2026.9.10.2

On the phone, your weekly reports and your notes read the same after your trial as they did during it.

  • The Crew page says which of three places you are in: paying, in the trial with no card held, or not in the Crew, where it says plainly that your plan, your race strategy and your notes stay yours.
  • A runner in the trial can join from the Crew page before the thirty days end. Before, the join button was hidden from them.
  • The buttons carry the App Store's own price for your country.
  • Your weekly reports list says how many you have and that they stay. The note about new ones each week sits under them, not in front of them.
  • The mile notes and race notes sheets say what has been true since this release: your own words are free to write and free to change.
v2026.9.10.1

On the phone, the race strategy you already have stays on the page after your trial, and the ask for a new one waits until you go to write one.

  • Tapping Write a new strategy at the foot of your race strategy is the only thing that opens the ask. Opening the screen to read what you have never does.
  • The ask names what a new one would read that this one has not: the weeks of running since it was written, and your goal when it differs from the finish this one was written to. The price shown is the App Store's own.
  • If you keep the one you have, you are not asked again that session.
  • Before, a refused write swapped your whole strategy for a buy card. Now the strategy stays where it was.

September 9, 2026

v2026.9.9.12

A race in the catalog runs several distances, so you pick yours and read it before anything is added.

  • Clicking a race in the add-a-race search used to add it to your races on the spot. It no longer adds anything.
  • A result now opens the course, where every distance that race runs is listed side by side with its miles, its climb and how many aid stations we have on file, so you can tell which row is yours without guessing.
  • The page then shows what would come across before it comes: the stops with their miles, the cutoffs we hold, what the race has said about crew and drop bags, and which facts nobody has checked. Those keep saying nobody has said rather than turning into a no.
  • Nothing lands on your races until you say yes.
  • When we hold the race but nobody has written its course down, which is most races, the page says that plainly and offers to save the race so you can add the stops yourself. They are yours.
v2026.9.9.13

Adding a race now searches NavRun's own catalog, and brings the course with it.

  • The search box on the add-a-race page used to go out to other websites every time you typed, and never once looked at the races NavRun holds. Picking a result filled in a name and a date and nothing else.
  • It now searches our catalog. Each result is one course of one race, and it says what we hold for that course: how many aid stations are on file, or plainly that we have not written that course down yet.
  • Picking one opens the course first, so you read what would come across before anything is added: the stops, their miles, their cutoffs, what the race has said about crew and drop bags, and which facts nobody has checked. Nothing lands on your races until you say yes, and then your race page tells you what came across.
  • Most races in the catalog do not have their aid stations written down. When that is yours, the page says so rather than showing you an empty list, and you can add the stops yourself. They are yours.
  • "Browse the catalog" and "My race is not in the catalog" sit under the results, so neither door is hidden.
v2026.9.9.14

The cutoff column on your race page stopped flashing red at you.

  • Your own race page printed the room before each cutoff as a number like "+1h22m", coloured green, amber or red, with the red one pulsing behind a warning triangle. Cutoff arithmetic is comfort. It is not a warning, and a colour that grades your day is not something NavRun does.
  • The column now says the room in words: "1 hour 22 minutes of room", in the same plain type as everything beside it. Where the cutoff comes before you would reach the stop, it says that in a sentence instead of a negative number. A stop with no cutoff written down says nobody has said what the cutoff is, rather than showing a dash.
v2026.9.9.15

Your race page said "Aid only" about stops nobody had checked.

  • On your own race page, a stop showed "Aid only" whenever crew access and drop bags were both blank. Blank did not mean the race had said no. It meant nobody had written it down yet, and the page turned that into a no you could plan a crew around.
  • A stop now says "nobody has said" for each fact nobody has answered. "Aid only" is left for the stops where the race has actually said there is no crew and no drop bag.
v2026.9.9.16

A course with more stops than a race can hold now says so instead of losing them.

  • Adding a race from our catalog copies its aid stations onto your race. A race here holds thirty stops, and a few courses in the catalog have more than that written down.
  • The first thirty now land on your race, in the order you will reach them, and the notice tells you how many stops were left over. Nothing goes missing without being named.
v2026.9.9.17

Your crew could not read the note you left them, because nobody had ticked a box.

  • A drop bag note you wrote for a stop disappeared from the page your crew open whenever the race had not told us whether drop bags go to that stop. That is not the race saying no. That is nobody having checked, and your own writing should not vanish because of it.
  • The note now shows wherever the race has not said no. Only a stated no holds it back.

September 8, 2026

v2026.9.8.17

September 9, 2026

v2026.9.9.8

Add your first race and the next thirty days are on us, with no card.

  • When you add a race, the Crew opens for thirty days. No card, no sign up, nothing to cancel. It starts at the race rather than at the sign up because a race is the thing there is something to plan for.
  • The end date is the only date you will see, and you will see it once. There is no countdown and there is nothing chasing you.
  • When the thirty days finish, everything written during them stays yours to open. Writing something new is what the Crew is for.
  • If you join the Crew while the thirty days are running, you are in the Crew. That was worth saying out loud, because there was a way for a payment made mid trial to go unrecorded and for the runner to be dropped weeks later. It is closed, with a test standing on it.
v2026.9.9.9

You buy the Crew on the screen you were looking at, and that screen opens.

  • On the phone app, joining the Crew from the race day strategy screen, the weekly write up, or the archive left you looking at the same buy card you had just paid on. Backing out and going in again was the only way through. It is not any more: the screen you bought from opens what you bought, where you are standing.
  • Your race notes could still send you to the buy card after you had paid, because the screen was remembering an answer the server gave before your payment. It reads the new answer now.
v2026.9.9.10

The strategy written for you, and the write ups written for you, stayed yours. Now they open.

  • If your subscription ended, the race day strategy already written for your race stopped opening. So did every weekly write up in your archive. The crew page has been promising for months that nothing you have goes away. It does not any more.
  • In the phone app, the strategy, the weekly archive and every stored write up open again whether or not you are in the Crew. On the website the pages themselves no longer turn you away, and some of the buttons that reach them still show a lock. Those are next.
  • Your race notes are your own words about your own race, and you could not even fix a typo in them without a subscription. You can now.
  • What the Crew is for has not moved: writing a NEW strategy, and the write up that arrives on a Monday. Those are still the Crew. Reading back what was already made for you never was.
v2026.9.9.11

What the Crew costs is now written in one place, and the two prices are the same wherever you read them.

  • The price used to be typed into eleven different files, and two of them spelled it out in words, so one of them was always behind. It is now declared once and every page reads it from there.
  • The Crew is $6.99 a month or $69 a year on navrun.app, and every page there reads those two numbers from one place. The yearly price works out about 18% less than paying by the month. In the phone app the price you see is the App Store's own, shown to you by Apple.
  • If you are already paying, nothing about your price changes. Your subscription keeps the price you joined at, at every renewal, and there is no code anywhere that would move it.
  • A win back email offered a discount and then listed injury alerts as something the Crew adds. Injury alerts are free and always have been. The email now says what the Crew actually adds: a written race day strategy and a weekly write up.
v2026.9.9.6

There is now a place on the website to write your own body numbers down, and something to help you work the first one out.

  • Preferences has a Body Numbers section. Your sweat rate, your sodium loss, the carbohydrate you know you can take, and the total you can carry in ounces. All of it is free to record, here and always.
  • The section says what Crew is for at the top, before there is a box in front of you. Building your numbers into a plan across a whole course, leg by leg, is the part you pay for. You will never type three numbers in and then meet a wall you were not told about.
  • Whatever you put in comes straight back to you in plain words. What you carry becomes about two hours of drinking at your own rate. A number nobody has measured is shown as a general starting number and is named as not being about you.
  • If you have never weighed yourself either side of a run, there is a calculator in that section. Weight before, weight after, how long you were out and what you drank, and it works out ounces an hour and puts it in the box. You keep it or type something else. It saves nothing until you do.
  • One warm day is not a whole picture, and the calculator says so. Weigh in on a few runs in different weather and see where your own number settles.
  • None of this is medical advice and NavRun does not pretend otherwise. Test these numbers on long training runs, and talk to a professional if you have health concerns.
v2026.9.9.7

Your own sweat rate, sodium and carbohydrate numbers now live in NavRun, and they are free.

  • What your body does over a long day is your own fact about your own body, learned by running. You can now write down your sweat rate in ounces an hour, your sodium loss in milligrams an hour and the carbohydrate you know you can take in grams an hour. Recording them costs nothing, here and always.
  • A number well outside what most runners see is kept exactly as you typed it. NavRun asks whether that is what your test said and then writes down your answer, on the low side as well as the high side. It never quietly rounds your number into a tidier one.
  • What you carry goes in as one total in ounces, and NavRun tells you roughly how many hours of drinking that is at your own rate. Listing each flask and bladder on its own is not built yet.
  • The arithmetic that walks your numbers across a course, every stretch between two aid stations with its climb and what it costs you in water, sodium and carbohydrate, is written and is not on a screen yet. Nothing shows it to you today, on the website or in the phone app.
  • The page says at the top, before there is a box in front of you, which part of this is Crew: working out what to do about a stretch that does not fit. You will never type three numbers in and then meet a wall you were not told about.
  • Your numbers live on the website, in Preferences. There is nothing new in the phone app for them in this release.
  • None of this is medical advice and NavRun does not pretend otherwise. Where nothing has been measured, the general starting number is named as a general starting number and as not being about you.
v2026.9.9.5

Deleting your account now cancels your subscription.

  • Deleting used to leave the payment running, and people were charged after they had gone. Deleting your account, on the website or in the app, now cancels a subscription you pay for through navrun.app. The page you land on afterwards tells you it is done.
  • If we cannot reach Stripe at that moment, that page says so and gives you the address to write to, and I will cancel it by hand. The delete screen tells you this before you confirm, so it is never a surprise.
  • If you pay through the App Store, only you can stop that. Apple gives us no way to do it for you. The confirmation screen and the page afterwards both say where to tap in iOS Settings.
v2026.9.9.4

A payment page link could put your membership on somebody else's account.

  • The page you land on after paying carries a one time code in its address. That address travels: it sits in your history, and it gets pasted into a support email or caught in a screenshot. If a second person opened it while signed in to their own account, your subscription was written onto theirs.
  • NavRun now checks who a payment belongs to before it writes anything down. A payment opened by anyone other than the person who made it changes nothing at all, and it is reported so a person can look at it the same day. Your own payment lands on your own account exactly as before, and so does a first time purchase.
v2026.9.9.3

A handful of one-click email links published their own address where a search engine or a link preview could pick it up.

  • The blog-subscribe link and a weekly report's body-feel link each carry a token that is the whole proof of who clicked them. The page they open was quietly restating that same address in its own canonical link and preview tags, the way five other pages were fixed to stop doing on 2026-09-05. A machine that reads a page's head, a chat app building a link preview, a search engine, could copy that address forward to more people than the one it was sent to.
  • Those two links, and two race-alert pages found the same way while checking, now say what page they are rather than repeating their own one-time address. Nothing changes for the person who received the real link.
  • We also built a standing check that walks every page NavRun serves looking for this shape of link, so the next one gets caught the day it is written instead of the next time somebody happens to look.
v2026.9.9.2

A brand-new account opened the plans page and got a warning instead of a welcome.

  • Someone who had just signed up, with nothing filled in yet, saw a yellow "Set Your Preferences First" box and no way past it, even though generating a plan never actually needed that first. The newest runner on NavRun was the only one who ever saw the warning.
  • The plans page now opens straight to an invitation to start this week's plan, whether it's a first 50K or a fifth hundred, with nothing to fill in first.
v2026.9.9.1

A free runner opened their race page and the terrain section was just gone.

  • Terrain is a fact about the course: what's underfoot, not something NavRun built for you. It was gated behind a paid plan anyway, and the gate also hid a second section around it, so most runners, free or paid, saw an empty gap between the stats and the aid stations instead. The terrain section now shows and can be edited for every runner on their own race, the same for a first 50K as a fifth hundred.## 2026.9.8.17
    The phone app showed you a heading called Race day and nothing at all under it.

  • The Out Here room on the phone app has a race day section: where your runner is, how that compares to their plan, whether it is time to get in the car, what time they should reach the next stop and how much room there is before the cutoff. The screen was ready for all of it. The server never sent any of it, so the section drew a title over empty space and the stops ahead never appeared.

  • All of it now arrives on the first read and on every refresh after it, as finished sentences rather than numbers to work out. A leave time now carries the race's own time zone with it, so a leave by 4:15 is 4:15 where the aid station is.
  • A first time visitor to the room on the app had no name box, so they could not put their name in, so the runner never saw they were there. The room now sends its own words, including that name question, and it sends them on the refresh as well, so a phone that lost the first read still gets a name box rather than sitting silent for six hours.
  • The crew sheet computed a real safety note and then dropped it. A race with no start time on file plans every arrival off an assumed 8am, and the sheet worked that out and never printed it, so times looked more certain than they were. It now says so once at the bottom of the list, along with the note about where a drive is measured from and the reason a window is wider than usual.
  • When part of the race day picture cannot be read, the app now keeps what it already has on screen instead of blanking it. Nobody watches an arrival window disappear at 3am.

September 8, 2026

v2026.9.8.16

You were in the room on the phone app and could only listen.

  • The Out Here link opens a real room on the phone app, and until now that room read the runner's stream and could not answer it. Crewing from a car park at 2am meant keeping a browser tab open beside it to say anything at all.
  • You can now speak into the room from the app: a voice clip or a line of text, under the name you chose, in the same stream everyone else reads. If the upload cannot get out through a weak trailhead connection, the app posts the recording itself instead of giving up, so there is a second thing to try rather than nothing.
  • A message that is wrong can be reported from the app the way it can from the page, and it goes off everybody's screen straight away. The runner's own voice cannot be taken off their own run by anyone holding the link.
  • A room that has not opened yet says so. Trying to send before the start now answers "You can send something the moment they are out there." It no longer says the run is over.
  • Volume ceilings now count each crew member as well as each connection, so four phones sharing one tower at a trailhead each get their own room to speak in rather than splitting one.
v2026.9.8.15

Your crew opened the link the night before and were told the run was over.

  • The Out Here link you send your crew is meant to be opened early. On the phone app it answered the same way a link you had withdrawn answers, so a crew member driving out to meet you, opening it at 9pm to work out what time to be there, read that the run had already finished. It had not started.
  • That link now opens a room that is waiting. It carries your name, so she knows who she is waiting for, and it says "You can send something the moment they are out there." Nothing is recorded, nobody is joined, and the map stays empty until you set off. The same link becomes the live room at your start, with nothing to reopen and no new address to send.
  • A pacer can put his name in before he is standing in the dark. The name he types while waiting is still his when the room opens.
  • The other half of the same problem: when a session hit its own safety cap, twelve hours in, the link went to "this run is over" while you were at mile 62 restarting tracking on a dead phone. Your crew now see the room waiting through that gap instead, and it follows you when you start again. A run you ended yourself still closes the link, as it always has.
v2026.9.8.14

A voice arrived in the room and you could not play it.

  • Someone sits beside a sleeping child at 1am, or in a quiet car with no headphones, and a voice message on the live page was audio and nothing else. The words were already there: NavRun writes down what it hears on every clip, and the phone app has shown them for a while. The web page, which is where most people follow along, never did.
  • The words now sit under each clip on the live page, on the first load and on every refresh after it, so a voice can be read when it cannot be heard.
  • They are marked as an auto transcript, because a machine listened and did its best. When somebody typed their message instead, you read exactly what they typed, unlabelled.
  • A clip whose words have not come through yet shows nothing under it. No empty space, no waiting message, no error. Quiet means quiet.
v2026.9.8.13

Your crew's page polled a withdrawn link and never found out.

  • The crew page closes warmly when you withdraw its link: "This link is closed." The poll that page runs to keep itself current still asked for a slot that no longer existed and got back the same plain not-found it always had, so a phone that was already open when you withdrew sat there quietly retrying, holding onto the plan it last had, for up to an hour before giving up. It never learned the link was gone.
  • That poll now gets the same warm answer the page itself gives, and the page reloads the moment it hears it, landing your crew member on the same closed page a fresh visit shows. A phone in a car park does not sit on a plan that is no longer yours to share.
v2026.9.8.12

The printed crew, pacer, and drop bag sheets stayed silent about which start time they were built from.

  • When a race has no start time set, the Crew Sheet, Pacer Sheet, and Drop Bag Sheet PDFs still have to assume one to print arrival times, and they assumed 8am without saying so. Unlike the web page, a PDF gets taken away from the network: a crew member drives to mile 62 with the sheet in the glovebox and no way to find out the times were a guess.
  • Each sheet now prints the same line the web crew page already shows, right above the arrival-time table: "Assumes an 8am start. No start time is set for this race yet." It only prints when the race genuinely has no start time. Set one, and the sheet is unchanged.
v2026.9.8.10

The crew page named the wrong time zone for your race.

  • The line under your race times read the zone's short name for today rather than for race day. A November race in New York, opened in September, printed "EDT" while every time on that page was EST. The clock underneath was right the whole time, only the letters beside it were not, and it was most wrong in the months before the race when your crew are working out when to drive. It now reads the name for the day of the race.
  • A race with no date on it yet still says which clock it is showing, using the name in force now, because there is no race day to read one from.

A part of the crew page that had broken said there was nothing to say.

  • When a section of the page could not be worked out, it printed its quiet line: "Nothing to say about leaving yet." A crew member had no way to tell a quiet page from a broken one, so a section that had failed read as an all clear.
  • A section that fails now says nothing at all, and the sections that worked are unchanged. Less on the page, and nothing on it that nobody checked.
v2026.9.8.9

The arrival window at each stop stayed silent about which start time it was built from.

  • When a race has no start time set, the arrival window at each stop still has to assume one to do the math, and it assumed 8am without saying so. A crew member reading "9:38 AM to 9:51 AM at Ridge Camp" had no way to know that number rested on a guess, and if the race actually starts at 5am, every time on the page is three hours off.
  • The window now says so, right under the times: "Assumes an 8am start. No start time is set for this race yet." It only shows when the race genuinely has no start time. Set one, and the caveat is gone because the numbers no longer need it.
v2026.9.8.8

Your crew opened the link the night before and were told your run was over.

  • A link made before race day is a valid link with nothing behind it yet, and the room read that as a run that had ended. Your people tapped the address you sent them, hours before the start, and read that the link was closed. Nothing was wrong with the link and nothing was wrong with them.
  • The room opens now and says what is true: the run has not started, this is where you follow along. It fills in with your position and your voice once you are moving, at the same address.
  • Your crew can add their name while they wait, so the moment you are out there they are already themselves in the room and can send you something.
  • A link you withdrew, and a link that never existed, still answer exactly as they did: closed, and identical to each other, so nobody can use that page to work out which addresses are real.
v2026.9.8.7

The address on your share page is now the address that opens.

  • The crew link page printed one address while the app printed another for the same link, and the one on your page was the one that did not open. Your crew tapped it and read that the run was over, before you had started. Both screens now build the address the same way, so there is one link with one address.
  • A link you withdrew closed two different ways depending on which half of it somebody opened. Whoever holds a closed link now gets the same page whichever address they try: this link is closed, ask your runner for a new one if they are heading out again.

Your crew could not see who else was out here with you.

  • Your phone names the people who have been out here with you. The page those people open said "Everyone here" and named nobody, so a crew member in a car park at 2am had no way of knowing anyone else was there with them. That same sentence is on their page now, and it fills in while the page sits open.
  • Before anyone has arrived there is nothing there. No zero, no space held open, nothing that counts anybody.

The crew page named a time zone it had guessed.

  • The line under your race times named a zone, then said in the very next sentence that we did not have one for this race. Both halves sat on the page at once, so a crew member working out when to drive could not tell whether the times were right. It now says which clock they are reading, and what would make it exact.

A blank band sat in the middle of the crew page.

  • When a runner had left no note for a stop, the page drew an empty bordered row where the note would have gone. Leaving no note is not a thing anyone has to explain, and the page is meant to say nothing there. It now says nothing there.
v2026.9.8.6

Withdrawing a link stopped the plan but kept broadcasting where you were.

  • On a link made before the sheet and the room became one, withdrawing closed the plan half and left the position half serving. You pressed the one control that exists to stop people seeing you, were told it worked, and carried on broadcasting to everyone holding that address. Withdrawing now closes both halves of the address, on every link, however old it is.
  • A crew link made in a browser did not open. Creating it on a laptop the night before narrowed it to the plan only, in the same press that made it, so your crew tapped the address you sent and got nothing.
  • "Read only" on that page means they cannot change anything. It never meant they stop seeing you, and pressing it no longer takes your live position away from your crew mid-race.
  • Closing the room closes the room. A coach who only ever had your plan keeps it, instead of losing it because you shut the door on race day.
  • The address handed back when you start tracking, and the address on the screen that tells you who can see you, are both addresses that open. They could be a plan-only link that answered nothing.

Two of your people were named on the crew page, and which two kept changing.

  • The line that tells a runner who has been out here with them names two people and then says "and others". It picked the two who had been seen most recently, so a third crew member simply refreshing the page swapped one of the named people out. Nobody had left and nobody had been silenced, but at 3am, refreshing, it read like people going home.
  • The two named are now the two who got there first, and they stay named until the runner silences somebody. A crew member arriving later, or refreshing, cannot push anyone off the line.
v2026.9.8.4

On the link your crew are actually sent, the leave-now alerts could not be switched on.

  • The room and the sheet became one link, and the address a new link is made at is the room's. The button that asks to be told when to head for the next stop was only ever offered the small piece of proof it needs by the other page. So a crew member opened the link they were sent, tapped it, and got nothing: no alert, no explanation, and no way to switch it back off either.
  • The room hands over that proof now, exactly as the sheet always did. Open the link you were sent, tap once, and the buzz works.
v2026.9.8.3

The screen that tells you who can still see you had stopped listing new links.

  • The sheet and the room became one link. The screen that answers "who can see you" was still reading the old half, so any link made after that change was missing from it: you would open the screen, see nothing, and reasonably decide your crew had lost access while they were in fact still holding a working address.
  • It reads the link itself now, so a link shows up the moment you make it, and the address on that screen is the same address you sent.
  • A link for a race with no plan behind it is listed too. A link no longer waits on a paid plan existing first, so the screen had to stop assuming one.
  • If you gave a link an end time and that time has passed, it is no longer listed. It does not open any more, so it is not somebody who can see you.
v2026.9.8.2

Your phone dying at mile 40 used to take your crew's link with it.

  • Restarting tracking made a whole new room with a whole new address, so every link your crew were already holding went quiet, mid-race, with nobody told. That was the worst thing this feature could do, and it is fixed: a restart now follows the link your crew already have, so the address you sent on Thursday is still the address at 3am on Sunday.
  • The sheet and the room become one link. One address to send, one thing to withdraw. Every link already out keeps working exactly as it did, and it gains nothing it was not handed out with: a room link stays a room link, and a plan link stays a plan link, until you widen it yourself.
  • Withdrawing one person's link now closes only that link. The rest of your crew keep theirs. Closing the room is the bigger, separate control, and it closes every door, so a link made afterwards cannot walk back in.
  • A link no longer waits on a paid plan existing first. A race-day checklist is craft, and craft is free at the door.
v2026.9.8.1

Every time on a crew page was showing on the wrong clock.

  • Leave times, arrival windows, cutoff times and the "As of:" line were all being drawn in UTC rather than in the time where the race is. For a crew member in California that is a leave time seven hours out. Somebody reading a time hours off can miss their runner at an aid station, which is the one thing this page exists to prevent.
  • Times now show in the race's own time when we hold a time zone for that race, and in the runner's home time when we do not.
  • The page says which of the two it is showing, so nobody has to guess whether the hours on their screen are the race's hours or somebody's home hours.

September 7, 2026

v2026.9.7.16

When a phone's push service was having a bad minute, the leave-now buzz kept knocking, and the way that ends is the buzz going silent for the rest of the race.

  • The buzz that tells a crew member to head for the next stop travels through the browser's own push service. Those services fail sometimes, and some of them answer with a plain "come back in five minutes". NavRun read that answer and then discarded it. It also kept a column for the time to try again that nothing ever wrote to and nothing ever read. A failed send was retried as fast as the job came round again.
  • A push service knocked on too hard does not slow the buzz down, it drops the address it was given. A crew member who turned notifications on would have got silence, with no way to tell that anything had gone wrong.
  • A failed send now sets a time to try again: two minutes, then four, eight, sixteen, thirty-two, and an hour after that. When the push service names its own wait, NavRun waits exactly that long instead of guessing. The send path reads that time before it knocks, so nothing touches an address that has asked to be left alone.
  • One rule sits over all of it. A leave-now buzz has ten minutes to arrive, because a buzz about a stop the runner already went through is worse than no buzz. If the next attempt would land after that window has closed, it is not scheduled, and nothing arrives rather than something arriving too late to use.
v2026.9.7.15

If you had already allowed notifications, the offer to be told when to leave did not appear at all.

  • The "Rather not watch the clock?" box on a crew page checks with your phone before it draws itself. If you had already allowed notifications on another NavRun page, or your phone had dropped the small piece of code that carries the buzz, that check never came back with an answer and the box stayed off the page entirely. No message, nothing to tap, no way to turn the buzz on. The page now asks the phone a question it always answers, so the box is there either way: waiting to be switched on, or already on with the stop button showing.
  • If you had not been asked about notifications yet, or you had turned them off, nothing changes. Both of those were drawing correctly and still do.
v2026.9.7.14

A fix to the crew alert that could have taken four hours to reach a phone.

  • The small piece of code that lets a crew member get a "time to head to the next stop" buzz is meant to be re-checked by the phone every time, so a fix reaches people the moment it ships. On navrun.app it was being handed to phones with an instruction to hold on to it for four hours instead. The instruction NavRun sends was correct. It was being rewritten in front of the phone by the service that sits between navrun.app and the internet, which does that to anything it is allowed to keep a copy of. NavRun now tells that service it may not keep a copy, so what arrives at the phone is what NavRun sent.
  • Nothing about the alerts themselves changes. This is about how quickly a change to them reaches a phone that has already loaded the old one.
v2026.9.7.13

A test deployment could hand out the app's own source files to anyone who asked. That is closed.

  • One of our test servers, not navrun.app and not anything a runner uses, was answering requests for files belonging to the app itself without asking who was asking. No password, key or runner's data was in those files. The app reads its secrets from the server it runs on rather than from anything that was exposed, and the live site was never affected. The cause was a route that exists to serve uploaded files while a developer works locally. When uploads are kept on separate storage instead, that route had no folder behind it and stood in front of everything rather than nothing. It now only exists when there is a real uploads folder for it to serve, and a test holds both halves down: source files stay unreachable, and a developer's own uploads still load.
v2026.9.7.12

A signup link that was meant to take you somewhere took you to a bare signup form instead.

  • navrun.app/signup/ is the spelling people guess and the one that goes in a post or an email. It is a shortcut to the real signup page, and it was throwing away everything after the question mark on the way. So a link built to send someone to a crew page after they signed up sent them to the signup page and then nowhere, and a link carrying a referral code arrived without it. The shortcut now hands the whole address across, so where you were headed still gets you there.
  • The two other shortcuts of the same kind, for the old race strategy and weekly reports addresses, were left as they are. Nothing on either destination reads anything after the question mark, so there is nothing to lose.
v2026.9.7.11

The Crew page promised a cost breakdown and then showed nothing under the headline.

  • "What it costs to hold the line" was still printed even when there were no cost lines to print. The money figures on that page come from settings rather than from the code, on purpose, so that nothing there can be a number somebody made up, and when those settings are not filled in the page shows no costs at all. The headline over them was not covered by the same rule, so it sat above an empty space, and on a phone it read as a stray label between two cards. The headline, the rule under it and the month now leave together with the numbers, and the page says nothing about costs rather than promising something it has none of. When the figures are filled in, the section reads exactly as it did.
v2026.9.7.10

A typo in one internal cost setting could have stopped every deploy of NavRun. It cannot now.

  • The Crew page keeps its money figures in settings rather than in the code, so nothing on that page can be a number somebody made up. A startup check tells a developer when those settings are missing. If a value was set but mistyped, that check stopped the command it was running under instead of reporting the problem, and one of those commands runs on every deploy. A mistyped cost line would have taken the whole site's next deploy with it. The check now reports the bad value, names it, and lets the deploy through, because the only thing a mistyped cost line affects is one section of one page.
  • Two sentences on the Crew page pointed at numbers that were not there. When no plan has moved for somebody yet, the page said "nobody will be told they are behind when it does" with nothing for "it" to mean, and the note under the two counts said "Both" and "Neither" when neither count was showing as a figure. Both now read the same at every count, including zero.
  • For the record, since a merged commit message cannot be corrected: the earlier change said it deleted a test called test_an_unconfigured_ledger_is_loud_for_staff. No test by that name has ever existed. The test actually replaced was test_an_unconfigured_ledger_is_loud_in_development, which checked that a missing ledger printed a visible placeholder on the page. That placeholder is gone and the warning goes to the developer instead, so replacing it was right. Only the name in the message was wrong.
v2026.9.7.9

Groundwork for the leave-now buzz: the keys that let it send, and a deploy check that refuses to let the same person be buzzed twice.

  • The keys the buzz needs to send anything are now generated by one command that prints them and writes nothing down. Nobody has to invent the format, and the private half never touches the repo.
  • A deploy now asks the database itself whether the guard that stops a crew member being buzzed twice for the same stop is really there, and stops the deploy if it is not. That question could only be answered on a developer machine before, where the answer can differ from the one production would give.
v2026.9.7.8

Typing navrun.app with a dot on the end sent you round in a circle instead of loading the site.

  • Browsers pass that trailing dot straight through as part of the address. NavRun cut the address at the first colon, did not recognise the dotted form as one of its own, decided your connection was insecure, and pointed you back at the same dotted address. Your browser followed, got the same answer, and eventually gave up. There was no error page and nothing in the logs to find it by. Plain navrun.app was never affected.
  • The address is now read with the same parser the rest of the site already uses, so a trailing dot, a port number and capital letters all land on the same place.
v2026.9.7.7

Saving a friend's race from a shared phone now only ever saves it for the person who tapped, and a signup that hits a stumble no longer loses the race in silence.

  • If two people use the same phone, one of them could pick up the other's tap. Somebody opened a crew link, tapped "Save this, get updates", and walked away without finishing. If a different person made their own account on that phone in the next half hour, that abandoned tap completed for them: a race they had never opened appeared on their home page, and their name appeared on the runner's crew list. Saving is now tied to the signup that was on its way back to that sheet, so the tap and the account have to be the same trip.
  • A signup could fail to save the race with nothing on screen to say so. Two clocks a fraction of a second apart, on a page that was comparing them to the microsecond, was enough. The comparison now has a few seconds of give, which is more than any of those gaps and far less than the thing it is there to catch.
  • A save carried through an old or damaged session could take the whole page down with an error, in the middle of signing up. It is now turned down cleanly and the page stays up.
  • Two saves landing at the same instant, from a double tap or a retried request, no longer race each other into an error. One race saved once, either way.
v2026.9.7.6

The person meeting you at mile 62 can ask their phone to buzz when it is time to drive, without an account and without an app.

  • Your crew opens the link you sent them in a phone browser. Until now the leave time sat on that page and they had to keep opening it to see whether the clock had moved. The page now offers one button, "Tell me when to leave", and the browser is asked for permission only after they tap it. Nothing asks them before that, anywhere on the page.
  • One buzz per stop, for this race, and then it ends on its own. There is no account to make, no email to hand over, and no name stored. Stopping is one tap on the same box, and taking the link back stops it too.
  • Somebody who is both on your crew link and connected to you in the app gets told once, not twice, when NavRun can tell it is the same person. The same person is a runner one weekend and crew the next, so being reached on two channels for one moment is the thing this closes.
  • This is the channel. The job that works out a leave time is due is still being built, so nothing fires on its own yet.
v2026.9.7.5

Somebody sends you their crew link, you sign up to save it, and you used to land on a dashboard with the race nowhere on it. You come back to the sheet you were reading now.

  • Signing up from a crew link kept the link in the address bar and then ignored it. You were dropped on the dashboard and told to connect Strava, with the race you had opened reachable only through your browser history. Now the page you were sent to is the page you are handed back.
  • If the username you picked is taken, or you miss the privacy box, the race you were reading survives the retry. It used to be lost on the first typo.
  • The "Already have an account? Log in" link carries it too, and so does a failed login, so a wrong password on the first try costs you a password and not the race.
  • Only addresses on navrun.app are followed. Anything pointing off the site is dropped and you get your home page, which is not a failure.
  • Your home page now lists the races you are crewing under one heading, each one linking straight back to that runner's sheet. Where a runner has withdrawn a link, the race stays on the list and says updates for it have stopped, with a note that they can send a new one any time. Nothing disappears out from under you, and your own races never show up as races you are crewing.
v2026.9.7.4

Three sentences on the Crew page were wrong at exactly one, and two of them were wrong at zero too.

  • The runners-with-a-plan line and the forgiving-revisions line had no zero handling at all: a freshly seeded environment read "0 runners have had a training plan out of NavRun" and "0 times a plan has moved." At exactly one runner or one revision, both read as "1 runners" and "1 times."
  • The Crew roster line had the same gap at one: "1 people are in the Crew right now."
  • All three now read correctly at zero and at one. The first person in the Crew reads "1 person is in the Crew right now. Somebody has to be first," rather than a line that claimed a member count it could not yet back.
  • The "the ledger is not configured" developer note that could render on the cost section is gone from the page entirely, in every environment. It never belonged where a visitor could see it, and a missing ledger now shows up where the person setting it up is actually looking: a warning at startup and at deploy, not a paragraph on a public page.
v2026.9.7.3

Paying for Pro left your access waiting on a message that arrived later, and the welcome page told everyone their membership was active whether it was or not.

  • When you finished checkout, Stripe was meant to hand the session straight back so NavRun could switch Pro on before the page loaded. The address we gave Stripe had the part it fills in rewritten on the way out, so Stripe could not fill it in, the handoff never happened, and your access waited on a separate message from Stripe instead. That message usually lands within seconds. When it was slow or did not arrive, nothing in the flow was checking. The address now goes out in the form Stripe reads, so your access is on before the welcome page draws.
  • The welcome page said "Your membership is active" to whoever opened it. That included anyone arriving from a bookmark, a shared link or their browser history, having paid nothing. It reads your account now. If nothing is showing yet it says that instead, and tells you to give it a minute if you have just paid.
  • If you started the upgrade from a particular page, the welcome page now has a link back to it rather than leaving you to find your way.
  • On the test deployment the site was working out its own address as plain http, because the connection reaching it from the front door is a different one from the connection you made. Every link the site builds for itself was affected, checkout returns among them. It now reads that correctly, and only believes it on the addresses NavRun actually serves.
v2026.9.7.2

Your weekly goal and your heart rates no longer break the settings screen.

  • A number bigger than NavRun can store made saving your preferences fail with nothing to read, and the same was true of the weekly goal on the setup screen when you first join.
  • It now names the number and what will fit, so you can correct it and carry on.
v2026.9.7.1

Adding a race with an out-of-range distance now tells you which number to fix.

  • Adding or editing a race failed with nothing to read when a number came in larger than NavRun can store. The race went unsaved and the screen gave you no way to know why.
  • It now tells you which number is out of range and what will fit, so you can correct it and keep going. Adding a race from the ultras catalog is covered too.