Open a .fit file from your bike computer and see every record: power, heart rate, cadence, speed, elevation, laps and the route. Then export it to GPX, TCX or CSV. Your file is not uploaded.
Read in your browser. Your file is not uploaded.
FIT stands for Flexible and Interoperable Data Transfer. Garmin created the format, and most bike computers and training apps now save rides in it. It is binary, so a text editor shows nonsense: you need a reader like this one.
Inside there is a small header, then a stream of messages. Definition messages describe a layout; data messages fill it in. Most of a ride file is record messages, one each time the device samples (every second, or less often with smart recording), with the time, position, altitude, speed, heart rate, cadence and power. A lap message closes each lap; when you save, the device adds a session summary and an activity message and ends the file with a CRC, so a reader can tell whether it arrived intact.
When the file has its session summary, the viewer shows the numbers your device wrote: the same ones Garmin Connect or Strava read. When the summary is missing, usually because the device switched off before saving, the viewer calculates them from the records and says so.
Calculated elevation gain will not match your device exactly. Devices smooth barometric altitude in their own way; here a climb only counts once it rises more than 2 metres, which removes sensor noise without inventing hills.
Route planners and mapping apps.
Uploading to training platforms.
Spreadsheets and your own analysis.
The file is read by JavaScript running in this browser tab. It is never uploaded: there is no server on the other end that could receive it, and the page makes no network request with its contents.
You can check that yourself. Open your browser's developer tools, go to the Network tab and drop a file in. You will see the page's usual requests, such as the site's analytics and, the first time you open a FIT file, the file reader loading. None of them carries your file.
Some sensors and apps add their own fields (running dynamics, muscle oxygen, left and right balance under custom names). The viewer reads past them safely but only displays the standard fields.
Normalized Power, calories and moving time come from the file when it has them. If they are calculated here, they are close but not identical to what each brand computes.
The route is drawn as a line without map tiles. Loading tiles would send the area you rode to a map server, which would break the promise that your ride never leaves your computer.
Drop it on this page. The file is read in your browser and you see the summary, charts, laps and route straight away. FIT is a binary format, so opening it in a text editor or spreadsheet will not work without converting it first.
Yes, as long as the ride has GPS. Open it here and choose GPX: you get position, elevation and time, with heart rate, cadence, temperature and power in the extension fields Strava reads. Indoor rides have no positions, so export those to TCX or CSV instead.
No. The file is read by JavaScript in your browser tab and it is never sent to a server. You can confirm it in your browser's developer tools: in the Network tab, none of the requests the page makes while you open a file carries it.
If the file has its session summary, the viewer shows the device's own figure. If not, it adds up climbs from the altitude records, counting a rise only once it passes 2 metres to ignore sensor noise. Each brand smooths altitude its own way, so a calculated figure is close but rarely identical.
The file has no GPS positions. That is normal for indoor rides on a smart trainer, and for devices with GPS switched off. Everything else, from power to heart rate, still shows.
The file failed a structural check: it ends in the middle of a record, its size does not match its header, or its CRC is wrong. The viewer still shows what it could read. The repair tool can rebuild the file from its last complete record.