Rides
Import GPX files, manage local and cloud copies, and choose which rides to display on the Map.
Cloud storage: {{ (cloudStorage.used_bytes / 1048576) | number:1 }} / 50 MiB
· {{ cloudStorage.point_count }} points
· about {{ cloudStorage.average_point_bytes }} bytes per point
Measured PostgreSQL ride and trackpoint row data; index overhead is excluded.
Premium cloud storage is unlimited · {{ (cloudStorage.used_bytes / 1048576) | number:1 }} MiB used
{{ cloudStorageMessage }}
Import GPX files
{{ uploadMessage.text }}
×
{{ result.name || result.file }}
{{ result.message || result.error }}
{{ analysisStatus }}
Zoom in on the Map and click an empty area to load up to five recent cloud rides nearby.
Remove all local
{{ bulkRideAction ? 'Uploading…' : 'Upload pending' }} ({{ pendingRideCount }})
{{ bulkRideAction ? 'Downloading…' : 'Download latest 10' }}
RIDE LIBRARY
Motorcycle for {{ rideBikeDialog.ride.name }}
×
Automatically upload new imports to this account
Name
Date
Motorcycle
State
Actions
{{ ride.name }}
{{ localeDate(ride.recorded_date) }}
{{ ride.bike_name || '—' }}
{{ ride.storage_state }}
{{ downloadingRideId === ride.client_id ? 'Downloading…' : 'Download' }}
{{ uploadingRideId === ride.id ? 'Uploading…' : 'Upload' }}
Remove local
Delete forever
No rides yet. Import a GPX file to get started.
MOTOHEAT · RIDE THE NUMBERS
Your rides, mapped.
See your routes, track your riding stats, and share the road with your friends.
Sign in or create an account
Feed
The feed is unavailable offline.
{{ feedMessage }}
{{ feedLoading ? 'Loading…' : 'Refresh feed' }}
{{ (post.is_mine ? (currentUser.handle || post.handle || post.name) : (post.handle || post.name) || '?').charAt(0).toUpperCase() }}
PREMIUM
{{ currentUser.handle ? '@' + currentUser.handle : (currentUser.name || 'Motoheat rider') }}
{{ post.handle ? '@' + post.handle : (post.name || 'Motoheat rider') }}
@{{ post.handle }}
{{ post.name || 'Motoheat rider' }}
{{ localeDate(post.created_at) }} · {{ post.bike_name }}
Delete
{{ post.ride_name }}
{{ post.caption }}
Top speed {{ post.stats.top_speed_kmh }} km/h
Max lean {{ post.stats.max_lean_deg }}°
Distance {{ post.stats.distance_km }} km
Time {{ post.stats.hours }} h
45°+ corners {{ post.stats.corners_45 }}
Nothing here yet. Share one of your uploaded rides, or add friends to see theirs.
Load more
Top list
Sign in to see how you rank.
The top list is unavailable offline.
Friends
Global · 🔒
1 · Motoheat rider 2 · Motoheat rider
🔒 Get premium to unlock the global top list
Premium access is managed by an administrator.
{{ metric.label }}
You are not on the global list.
Join global top list
Loading…
{{ entry.rank }}
{{ entry.handle ? '@' + entry.handle : (entry.name || 'Motoheat rider') }} · you
{{ entry.value }} {{ boardData.unit }}
No results yet for {{ boardData.label | lowercase }}.
{{ boardMessage }}
Profile
Sign in to see your riding profile and garage.
Riding profile
PREMIUM
Based on your complete rides uploaded to your account.
{{ ridingProfile.stats.top_speed_source ? ridingProfile.stats.top_speed_kmh : '—' }}
Top speed km/h · {{ ridingProfile.stats.top_speed_source === 'estimated' ? 'GPS estimate' : (ridingProfile.stats.top_speed_source ? 'recorded' : 'unavailable') }}
{{ ridingProfile.stats.max_lean_source ? ridingProfile.stats.max_lean_deg + '°' : '—' }}
Max lean {{ ridingProfile.stats.max_lean_source === 'estimated' ? 'GPS estimate' : (ridingProfile.stats.max_lean_source ? 'recorded' : 'unavailable') }}
{{ ridingProfile.stats.total_distance_km }} Distance km
{{ ridingProfile.stats.total_hours }} Hours
{{ ridingProfile.stats.ride_count }} Rides
Corner badges
{{ tier.threshold_deg }}°+ lean
{{ tier.count }} corners · next {{ tier.next_milestone }}
🔒 Get premium to unlock achievement badges
Premium access is managed by an administrator.
🏅
{{ badge.title }}
Your first corner badge is waiting.
Lean tiers: 30°, 45°, and 60°. Badges are retrospective statistics, not riding targets—always ride within your skill and local rules.
Motorcycle garage
Default for future ride uploads
No default motorcycle
Save default
Add motorcycle
{{ bike.name }}
{{ bike.year }}
· {{ bike.make }}
· {{ bike.model }}
Details not set
Distance {{ bike.total_distance_km || 0 }} km
Ride time {{ bike.total_hours || 0 }} h
Rides {{ bike.ride_count || 0 }}
Default
Edit motorcycle
Add a motorcycle to your garage, then assign it to rides.
{{ profileMessage }}
Riders
Back to riders
Loading rider profile…
{{ riderProfileMessage }}
{{ riderProfile.rider.handle ? '@' + riderProfile.rider.handle : riderProfile.rider.name }}
PREMIUM
{{ riderProfile.rider.name }}
Garage
{{ bike.name }}
{{ bike.year }} {{ bike.make }} {{ bike.model }}
Distance {{ bike.total_distance_km || 0 }} km
Ride time {{ bike.total_hours || 0 }} h
Rides {{ bike.ride_count || 0 }}
No motorcycles have been added to this garage yet.
Find riders by handle
Search
{{ riderSearch.message }}
@{{ rider.handle }}
Friends
Request sent
Wants to connect
Add friend
Accept
Riders & friends
Sign in to create a rider profile and connect with friends.
Friends and activity are unavailable offline.
Add a friend by rider ID
Send request
Friends {{ socialFriends.length }}
Requests {{ socialIncomingRequests.length }}
Activity
@{{ friend.handle }}
{{ friend.name || 'Motoheat rider' }}
{{ friend.name }}
View profile
Compare
Remove
No friends yet. Share your rider ID or add someone by theirs.
Achievements · {{ friendComparison.friend.handle ? '@' + friendComparison.friend.handle : (friendComparison.friend.name || 'Friend') }}
Achievement You Friend
Top speed · km/h
{{ ridingProfile.stats.top_speed_kmh }}
{{ friendComparison.achievements.stats.top_speed_kmh }}
Maximum lean
{{ ridingProfile.stats.max_lean_deg }}°
{{ friendComparison.achievements.stats.max_lean_deg }}°
Distance · km
{{ ridingProfile.stats.total_distance_km }}
{{ friendComparison.achievements.stats.total_distance_km }}
Hours
{{ ridingProfile.stats.total_hours }}
{{ friendComparison.achievements.stats.total_hours }}
Rides
{{ ridingProfile.stats.ride_count }}
{{ friendComparison.achievements.stats.ride_count }}
{{ tier.threshold_deg }}°+ corners
{{ tier.count }}
{{ friendComparison.achievements.corner_progress[$index].count }}
Received
{{ request.handle ? '@' + request.handle : (request.name || 'Motoheat rider') }}
{{ request.user_id }}
Accept
Decline
No received requests.
Sent
{{ request.handle ? '@' + request.handle : (request.name || 'Motoheat rider') }}
Request pending
Withdraw
@{{ activity.handle }}
{{ activity.name || 'A friend' }}
added a ride: {{ activity.payload.name }}
{{ localeDate(activity.created_at) }}
Friend ride updates will appear here when they upload rides.
{{ socialMessage }}
Settings
Riding encounters
Encounters are matched between uploaded rides when GPS points are within 30 m
and 60 seconds. Both riders must enable matching. Details use the more private
of your two settings.
Sign in to manage encounter privacy.
Encounter settings are unavailable offline.
Who can see encounter details?
Don't match my rides
Show the day only
Show time and route location
{{ savingEncounterSettings ? 'Saving…' : (loadingEncounterSettings ? 'Loading…' : 'Save privacy') }}
{{ encounterMessage }}
Ride matching is off until you opt in.
{{ encounter.date }}
· {{ encounter.time }} · {{ encounter.ride_name }}
· {{ encounter.latitude | number:5 }}, {{ encounter.longitude | number:5 }}
· another MOTOHEAT rider
No encounters found in your uploaded rides yet.
Administration
Manage accounts and their ride data. Admin accounts are protected from blocking and deletion.
{{ adminUsersMessage }}
Users
{{ adminUsersLoading ? 'Loading…' : 'Refresh list' }}
Loading account list…
No accounts found.