Choose the app for the thing that will get you on the bike, then confirm it supports your hardware. Doing it in the other order is how people end up subscribed to a service whose best features their setup cannot physically use.
What actually separates one app from another
| Style | Suits | Trade off |
|---|---|---|
| Virtual world and racing | Riders motivated by competing | Needs a smart trainer to feel right |
| Structured training plans | Riders with an event on the calendar | Repetitive without outside motivation |
| Real road video | People who find virtual worlds hollow | Large downloads, little interaction |
| Instructor led classes | People who want to be told what to do | Built around a schedule, less flexible |

Hardware, from nothing up to a smart trainer
- A phone and nothing else. Very limited. Some apps accept a manually entered effort level, but nothing is measuring what you are doing.
- Speed and cadence sensors. Inexpensive, and enough for apps that estimate power from wheel speed on a known trainer model.
- A power meter or a power reading trainer. The point at which structured training starts to mean something.
- A smart trainer with controllable resistance. The app adjusts the resistance itself, which is what turns a written interval into a ride you simply follow.
ANT plus and Bluetooth are not the same connection
Most trainers broadcast on both, and the difference causes a large share of first week frustration. ANT plus is a broadcast, so any number of devices can listen to the same trainer at once. A classic Bluetooth connection is a pairing between two devices, so once your app has claimed the trainer, your bike computer or watch cannot also have it. The practical fix is to connect the trainer over ANT plus where you have a dongle for it, and leave Bluetooth to the heart rate strap. Dropouts in the middle of a session are usually this, not a failing trainer.
ERG mode and simulation mode feel completely different
In ERG mode the trainer holds a target wattage no matter what gear you are in or how fast you pedal. Gearing stops mattering, which is excellent for intervals and disconcerting the first time. It has one trap. If your cadence drops, the trainer raises resistance to hold the target, which drops your cadence further, and the whole thing stalls within a few seconds. Ease off, spin back up, and it recovers.
Simulation mode instead matches resistance to the gradient of the virtual road, so you shift gears as you would outdoors. Most apps offer a trainer difficulty slider that scales how much of that gradient reaches your legs. Turning it down does not make you faster or slower in the app. It changes how much of your gear range a steep climb consumes, which matters if your bike has a narrow cassette.
One number drives every training plan
Structured plans are written as percentages of your threshold power, so the app asks you to establish that number before it can prescribe anything. A short ramp test is the usual way in, and a longer sustained effort is the traditional alternative. Retest every month or two, because a plan built on an old number quietly gets easier and stops producing anything.
Check these before you pay
- The trial length. Two weeks of actual riding tells you more than any feature list.
- Your exact device model on the compatibility list, not just the brand.
- Whether it runs on the screen you own. Support for TV boxes, tablets and desktops varies far more than you would expect.
- How it exports. Confirm your rides can leave the service before you build a season of history inside it.
- Whether you can pause the subscription instead of cancelling, since most riders barely touch these apps once the weather turns.
The thing that ruins the first month is a fan
Riding indoors without moving air becomes miserable within about ten minutes. A cheap floor fan aimed at your chest changes the experience more than any subscription on this page. The other setup item is calibration. Wheel on trainers need a spindown after a few minutes of warming up, and skipping it lets your power numbers drift.