Connect to Strava
VeloLoop records your rides as standard FIT files that Strava accepts. You can upload rides manually via the Strava website at any time. VeloLoop also includes built-in Strava integration for automatic and one-click uploads, available once the project owner has configured the Strava API connection.
Upload to Strava (manual)
The quickest way to get your ride onto Strava — works for everyone, no configuration required:
- 1Open Strava in your browser and go to the Upload page (strava.com/upload/select)
- 2Click "Choose Files" and select your FIT file from Documents/VeloLoop/Rides
- 3Set the activity type to "Virtual Ride"
- 4Add a title and any notes
- 5Click Upload
When virtual distance is enabled, VeloLoop includes estimated distance and speed in the FIT file, so Strava will display these values for your ride.
Built-in Strava integration
Note: Built-in Strava integration is implemented in VeloLoop but requires one-time setup by the project owner (deploying the authentication proxy and registering a Strava API application). When not configured, Strava features are hidden in the app. End-to-end upload has not yet been verified against the live Strava API.
- VeloLoop includes built-in Strava integration with OAuth 2.0 authentication, automatic upload and manual upload controls
- This feature requires one-time configuration by the project owner: deploying the Cloudflare worker proxy and registering a Strava API application
- Once configured, a "Connect to Strava" button appears in the desktop app after your ride
- After connecting, you can upload rides manually via a button in the post-ride panel, or enable automatic upload so rides are sent to Strava when you finish
- Auto-upload is off by default — you choose whether to enable it in Settings
- Strava credentials are stored securely in your operating system's credential manager (Windows Credential Manager or macOS Keychain) — never in a plain text file
- To disconnect: click Disconnect in the Strava section of Settings — VeloLoop revokes its access and removes stored credentials
- Your FIT files are always kept locally in Documents/VeloLoop/Rides, even after uploading
- VeloLoop tracks uploads locally to prevent duplicate submissions to Strava
How connecting works
Once the Strava integration is enabled in your build, the connection flow is:
- 1Open VeloLoop and finish or skip a ride so the post-ride panel is visible
- 2Click "Connect to Strava"
- 3Your browser opens the Strava authorisation page
- 4Approve VeloLoop — only the "Upload activities" permission is requested
- 5The browser shows a confirmation page — you can close it and return to VeloLoop
- 6VeloLoop shows your Strava connection status and upload controls
Activity type
- VeloLoop sets the sport type to "VirtualRide" in all FIT files
- For manual uploads, choose "Virtual Ride" so Strava handles indoor data correctly
- When virtual distance is enabled, VeloLoop includes estimated distance and speed calculated from your power data — Strava will display these alongside power, cadence and heart rate
- No GPS coordinates or elevation data are recorded — this is normal for indoor cycling
Common issues
Duplicate activity rejected
Strava rejects files it has already received. If you see this error on manual upload, the ride is already on Strava. The built-in integration tracks uploads locally to prevent duplicates automatically.
Distance or speed looks different from expected
VeloLoop includes estimated virtual distance and speed derived from power using a flat-road physics model (when enabled in ride settings). These are estimates, not GPS measurements. Strava may display slightly different values if it applies its own calculations.
Upload stuck on processing
Strava processes uploads asynchronously. VeloLoop polls for status updates (uploading, processing, success or error). If status does not update within a minute, check your Strava activities page — the upload usually succeeds.
Strava option not visible in the app
The built-in Strava integration is only visible when the project owner has configured the Strava API credentials. If you do not see a Strava option, the integration has not been enabled for your build. You can always upload FIT files manually via the Strava website.
Privacy
- VeloLoop requests only the "activity:write" permission — it does not read your Strava data, followers, routes or personal information
- Strava credentials are stored securely in your operating system's credential manager (Windows Credential Manager or macOS Keychain) — never in a plain text file
- Client secrets are never embedded in the desktop app — authentication is delegated to a server-side proxy
- You can disconnect and revoke access at any time from VeloLoop Settings or from your Strava connected-apps page