“Elevate for Strava” is jumping the “Strava Fence” to become an independent desktop training app 🗽!
By: Thomas Champagne
Tags: Running, Elevate, Strava, Cycling, Training

Want to read this story later? Save it in Journal.

Why jumping the “Strava & chrome extension” fences to start an independent desktop app project?

The current “Elevate For Strava” chrome extension is completely “welded” to Strava. The web extension durability depends only on this company: it’s not viable! This will change in the desktop app. It doesn’t mean that you’ll be unable to load your Strava activities from the desktop app: you’ll be able to do it through multiple paths along updates.

In early 2019, Strava introduced some server behavior changes impacting the activities synchronization within the “Elevate For Strava” chrome extension. This is an illustration of the first point... Synchronization became painful for most users 😤 😠 😓 and generated many unsolvable issues on the GitHub project. The fix depends actually from Strava, not Elevate. A new solution has to be brought to users.

The “Elevate” destiny doesn’t match the Strava one. The social fitness network tends to be more “Stravagram” than “Stravalytics”. Over the last years Strava focused on social oriented features at the expense of the analytics ones. The lack of support of the evolution of athlete physiological attributes over time (required for the reliability of stats calculations) is an indisputable example. So there’s a kind of “mismatch”. “Elevate” is not intended to ride a social wave but is trying to surf an analytic one…

The Strava policy towards their partners is debatable. The lack of clarity on the break with “Relive.cc” friends is appalling… Was Relive members too “dangerous” because of their talent? This is what we can deduce at first glance. Relive had created one of the most innovative and stunning Strava app before being ejected (read full story on dcrainmaker.com)! “Elevate” wants to be isolated from this.

The current “Elevate For Strava” extension is for chrome based browsers only 🤔… Leaving firefox, safari & edge users aside… The desktop app will be for all, as long as you have only a computer.

The same chrome extension has been created in 2014. So five years of development at the time of this post. There’s time for everything. Let’s evolve to the next step!

Freedom !!

An “Open” Desktop Training App already in development 👨🏻‍💻

Since early 2019 the existing work from the chrome extension is transposed to the new desktop app. Most of the work consists to deal with the associated technicals constraints like keeping the legacy chrome extension working alongside the desktop app (the code can be shared or specific). Most of these tasks were huge and are invisible. The whole synchronization workflow has been completely redesigned to be open to various sources of data through a “connectors” system. Data can be provided by your GPS files directly and/or others connected training platform.

The desktop app will be available on Windows, Linux & MacOS (later). The Mac OS version is delayed at the moment. An investment in a MacBook to develop and build the Mac OS version is required.

Based on screenshots on top of this post, the look & features are similar to the current “Elevate For Strava” chrome extension. The current desktop prototype includes following features:

Activities listing and stats table.

Fitness Trend.

Year-to-date & Rolling progressions.

Athlete settings support over time.

Connectors setup (1 currently, working on others…).

The technology stack is mainly:

Angular : Running on latest version with Ivy renderer

Running on latest version with Ivy renderer Electron : Desktop applications like Discord, Skype, WhatsApp, Twitch, Slack, Visual Studio Code, many others are made with this technology.

Desktop applications like Discord, Skype, WhatsApp, Twitch, Slack, Visual Studio Code, many others are made with this technology. PouchDB : as local storage database. This database has the ability to sync remotely with key-value data-store server (like Apache CouchDB, Redis, Riak, …). This technology was chosen to anticipate the use of the application from several computers: no need to import your data on each of your computer.

as local storage database. This database has the ability to sync remotely with key-value data-store server (like Apache CouchDB, Redis, Riak, …). This technology was chosen to anticipate the use of the application from several computers: no need to import your data on each of your computer. and more not relevant in this post…

Features of the desktop app? What becomes the Chrome extension?

On the first releases, features of the desktop app will be the same as the chrome extension (embedded app). Others key features are planned: this is the goal of this new application. You can expect legit features you can find in a training app and the current pending features/improvements which have been postponed by the development of this project since early 2019.

Note: Development and efforts performed on 2019 free time have been mainly dedicated to this desktop app. This explains the lack of releases on the Chrome extension this year. The development is now focused on the desktop app.

👉 The old chrome extension will remain available on Chrome Store as long as necessary.

If applicable, features added in desktop app will be also added into the chrome extension. However, I’ll encourage users to switch on the desktop app.

When Desktop App will be released?

At first, a closed prototype testing is planned by the end of 2019. Since project is still performed on free time, no specific date is planned. However you will see a closed-alpha & open-beta between Q1 and Q3 2020. The first official release is expected in 2020.

If you want to test the desktop app prototype, fill-up this form. The number of participants will be limited.

Want to help me to accelerate this new project?

Beyond keeping my motivation on top, your help will allow me to finance the purchase of a MacBook develop and distribute the Mac OS version.

You can help this new project here 😊 ❤️