Routster

Routster Live

Live orienteering results — the third Routster product, sharing the brand and the sign-in of the other two.

Live shows results from a competition while it is still running: class tables, split times with per-control and per-leg ranks, a passing ticker, club pages, and favourites that follow the runners you care about across every race on today. It reads the Swedish live timing feed at liveresultat.orientering.se and adds a layer on top of it.

Route analysis, split-time import, national ranking points and runner profiles belong to Routster Analyse and are not part of Live.

One endpoint per class

Everything in Live derives from a single live endpoint: the results of one class at one competition. The class table reads it. The club page reads it, for each class that club has runners in. The favourites strip reads it, for each class a favourite is entered in.

All of them request it under the same cache key, so the requests merge into one subscription and one copy of the data. Two things follow:

  • Views cannot disagree. A favourite's row and that runner's class table are the same object, so they update together.
  • Opening more views costs nothing. Following a runner into their class while their club page is open adds no requests.

No result is stored

Results are derived on every render from live data. There is no cached copy of a runner's time anywhere in the app.

Locating a runner is separate from reading their result

Finding which class someone is in means looking at every class in the competition. Reading their result once you know is one request. Live separates the two:

  • An entry index is built once per competition on the server and cached, so the work happens once for everybody rather than once per visitor.
  • Favourites, club pages and the competition search box resolve their targets from that index, then subscribe only to the classes they need.

Runner search therefore makes no requests, and following ten favourites costs a handful rather than a sweep of every class in the country.

What Live shares with the other products

ThingWhere it comes fromCan Live change it?
Your account and sessionThe shared Routster sign-in, via a cookie scoped to .routster.seSign in and out, yes
Your name and profile pictureThe same profile row Prepare writesNo — edit it in Prepare
Club names and logosThe platform club registry, filled in through Prepare or AnalyseNo — see Clubs and club logos
Your favourite runnersStored against your account, synced across devicesYes
Results, splits and passingsliveresultat.orientering.se, read through Live's own APINo — Live is a reader, never a writer

Live never writes a result

Nothing you do in Live changes a result, a placing or a start time. A row that looks wrong has to be corrected in the event's timing system, and Live picks the correction up on the next refresh.

Thirteen languages, and a theme

Language and theme sit in the header rather than in Settings. English and Swedish are fully translated; the other eleven are partial and fall back to English for any string they do not carry.