What tech stack does TrainerRoad use?

This might not be the best place to ask but I thought it might interest others. I really like the TrainerRoad app across all local platforms (iPad, iOS, Windows, and macOS). The web app is also pretty slick. Does anyone know what tech stack TrainerRoads uses? Especially for its apps’ frontend UI’s.

I believe it uses React Native for the native apps.

I’d be shocked if python and SQL aren’t part of the answer.

1 Like

I think it was mentioned it’s mostly running on Azure too.

The TrainerRoad app was overhauled in 2019 and the app uses Electron:

1 Like

There are some old job postings that talk about their stack:

Microsoft backend (C#/ASP/Azure), React/MobX client-side.

When they relaunched the desktop/laptop apps in 2019, they were built on Electron as per Nate above. On my Mac the desktop app opens certain links with “Electron App” listed as UTM source:

?utm_source=Electron%20App&utm_medium=Mac&utm_content=Terms%20and%20Conditions

The iOS beta app has a link to licenses:

which looks like Xamarin and ReactiveUI are key components of the iOS and Android apps. But my background is computational algorithms, networking, and operating systems.

1 Like

yep, Electron is part of it.

When I went through the assembly, due to a crash, Electron is there.

There’s also this…

Screen Shot 2021-06-08 at 2.59.49 PM

1 Like

Right, Electron is the platform that runs the React/MobX client-side apps on the desktop. (Sorry for the confusion, I wasn’t arguing with you :smiley:)

1 Like

Thanks, I’m blissfully UI ignorant and my only experience is hacking a few homebrew iOS and Qt apps.

2 Likes

:laughing: Tcl/Tk anyone?!

(Electron is essentially a stripped down Chrome browser, so it lets dev teams use the same code on their websites as in their “native” desktop apps. Add React and React Native into the mix, and you’re writing code once and running it on the web, Windows, Mac, iOS, Android, Linux, etc. Game changer for cross-platform development.)

1 Like

I still have nightmares about writing TCL for a Vignette-based website.

1 Like

mmm, I’ll take mine with a side of Ruby

Archeological dig in the garage turned up some books from the 90s!!!

3 Likes

I thought as much. Ugh, I can’t think of a single good electron app. I obviously understand the advantages and the appeal, I am not convinced it is actually easier or worthwhile in many cases. Take TR’s Mac app: I found it so alien and bad to use, that I just gave up. Is having a bad Mac app worth the effort?

You are also missing out on so many platform-specific technologies, like proper Health integration on iOS, Apple Watch support, on-device machine learning, localization, proper support of different screen sizes (I have a 13” iPad Pro and TR’s calendar is using a list as if it were an iPhone).

90% of the time I would agree with you but I think this is the valid use case. Almost every crappy react native app out there should just be a web app and not an app (No, your fashion line shopify store does not need its own ios app) . The problem here is the external devices have to work. You cant (yeah yeah I know, but cmon you really cant) get bluetooth/ant to work for a webapp. They are a bootstrap funded company (as far as we know) so having a quality android, IOS, macos, windows and browser-based set of dev teams is simply not affordable. You could probably only have mediocre versions of several of those and even then it would eat all the budget for the actual core business. I would suspect what you are proposing is really a choice between health/googlefit, apple watch, better per device fit and adaptive training, train now, improving plans, the podcast etc. I dont deny you give up something (often quite a lot) going with a single stack like this but I think in this specific case what we as users get in return for that choice is capital well spent.

Write once, run everywhere is just too strong a call. I present to you Java… We have all bitched about it for decade after decade yet even its purchase by evilCorp patent troll inc has not yet managed to quite kill it off.

1 Like

Web apps are even worse than cross-platform apps. Nothing scares me more as a future where everything is a web app.

I would precisely challenge the quality aspect here: in my mind the Mac app is so bad that I just gave up on it. To be frank, these are not quality apps in the sense of e. g. Fantastical, OmniGroup’s apps or ProCreate. The iOS app isn’t too far behind: I don’t have a proper, interactive calendar, the layout is just taken from a smartphone and not adapted to a large tablet, I cannot analyze workouts and rides within the app, not even add notes. TrainerRoad’s platform strategy is quite confusing for a newcomer: some features are only available in the apps, other features are only available on the website. The “large” version of the website does not work properly on touch devices, because the touch targets are too small and only “recognizes” the different platforms (Mac vs. iPhone vs. iPad) by browser window size.

Further, I would challenge the assumption that the team is too small. About 10, 12 years ago few friends of mine have a founded a company to bring a professional DJ software to market. (They have received an ADA and WDA, and were featured in multiple Apple keynotes to give you an idea of their pedigree.) They are now offering their software also for iOS, Android, the Mac and Windows, and they surely have a much smaller team than TR. Working with cross-platform code introduces a lot of constraints and friction, especially if you insist on strict feature parity.

What is more, I don’t see bigger companies going away from cross-platform apps. The end user experience is always abysmal, be it that because of that they don’t properly use iOS’s authentication mechanisms (which means that I always need to enter user name and password into my banking apps) or that certain relevant platform-specific features aren’t used. Localization is of non-existent. And TR had its fair share of localization issues as well. @Nate_Pearson said he wished that he had a breathing rate sensor. Guess what smart watch can detect breathing rate :wink: My Withings scale does not automatically talk to the TR for the same reason either. Sleep information is deposited in Health, too. I’d like an Apple Watch app, too, that e. g. sends heart rate information and allows me to pause and continue workouts, perhaps change the intensity via the digital crown. That’d be a great feature. Or skip songs. Some people would also like to see an Apple TV version — relatively easy if you are native, but very hard if you are not. Another big loss is on-device machine learning, me thinks.

Don’t get me wrong, TR is still the best training service out there and I love the community and the effectiveness. But in terms of app quality, it has a looooooong way to go, me thinks.