1<!doctype html> 2<html lang="en"> 3<head> 4 <meta charset="utf-8"> 5 <meta name="viewport" content="width=device-width, initial-scale=1"> 6 7 <title>Quantify My Bike | Free Bicycle Manager for Strava</title> 8 <meta name="description" content="Free bike manager for Strava users. Find the most durable MTB and road components. Track how long components last. Compare components from different brands."> 9
9<script type="application/ld+json"> 10{ 11 "@context": "https://schema.org", 12 "@type": "Organization", 13 "name": "Quantify My Bike", 14 "url": "https://www.quantifymybike.com/", 15 "logo": "https://www.quantifymybike.com/images/logo_onblue.svg", 16 "sameAs": [ 17 "https://www.facebook.com/quantifymybike", 18 "https://bsky.app/profile/quantifymybike.com", 19 "https://www.strava.com/clubs/quantifymybike" 20 ] 21} 22</script>
22 23 24 <meta property="og:url" content="https://www.quantifymybike.com/" /> 25 <meta property="og:type" content="website" /> 26 <meta property="og:title" content="Quantify My Bike" /> 27 <meta property="og:description" content="Free bike manager for Strava users. Find the most durable MTB and road components. Track how long components last. Compare components from different brands." /> 28 <meta property="og:image" content="https://www.quantifymybike.com/og_images/bikes_2021-07-04.png" /> 29 <meta property="fb:app_id" content="1294050384325998" /> 30 31 32 33<link rel="apple-touch-icon" sizes="180x180" href="/apple-touch-icon.png"> 34<link rel="icon" type="image/png" sizes="32x32" href="/icons/favicon-32x32.png"> 35<link rel="icon" type="image/png" sizes="16x16" href="/icons/favicon-16x16.png"> 36<link rel="manifest" href="/manifest.json"> 37<link rel="mask-icon" href="/icons/safari-pinned-tab.svg" color="#0d6efd"> 38<meta name="msapplication-TileColor" content="#0d6efd"> 39<meta name="theme-color" content="#0b5ed7"> 40 41 42
42<script 43 src="https://cdn.jsdelivr.net/npm/[email protected]/dist/jquery.min.js" 44 integrity="sha256-OaVG6prZf4v69dPg6PhVattBXkcOWQB62pdZ3ORyrao=" 45 crossorigin="anonymous"></script>
45 46
47<script 48 src="https://cdn.jsdelivr.net/npm/[email protected]/dist/js/bootstrap.bundle.min.js" 49 integrity="sha256-5P1JGBOIxI7FBAvT/mb1fCnI5n/NhQKzNUuW7Hq0fMc=" 50 crossorigin="anonymous"></script>
50 51
51<script src="index.min.js" type="module"></script>
51 52 53 54 <link 55 rel="stylesheet" 56 href="https://cdn.jsdelivr.net/npm/[email protected]/dist/css/bootstrap.min.css" 57 integrity="sha256-2FMn2Zx6PuH5tdBQDRNwrOo60ts5wWPC9R8jK67b3t4=" 58 crossorigin="anonymous"> 59 <link rel="preconnect" href="https://fonts.gstatic.com"> 60 <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Permanent+Marker&display=swap"> 61 <style> 62 .header-brand { 63 font-family: "Permanent Marker", cursive; 64 font-size: 1.75rem; 65 color: #0d6efd !important; 66 } 67 68 #screenshotsCarousel { 69 max-width: 1140px; 70 } 71 72 footer, footer a, footer a:hover { 73 color: #00000060; 74 } 75 76 footer a:link { 77 text-decoration: none; 78 } 79 80 footer a:hover { 81 text-decoration: underline; 82 } 83 84 footer img { 85 max-width: 50vw; 86 } 87 88 footer .svg-icon-facebook-brands, 89 footer .svg-icon-bluesky-brands, 90 footer .svg-icon-strava-brands { 91 width: 1em; 92 height: 1em; 93 } 94 95 .cookie-consent { 96 position: fixed; 97 right: 0; 98 bottom: 0; 99 } 100 101 .cookie-consent > div { 102 color: #ffffff; 103 background-color:#130f40; 104 } 105 106 .cookie-consent p { 107 font-size: 0.9rem; 108 } 109 110 .cookie-consent a, .cookie-consent a:hover { 111 color: #ffffff; 112 } 113 114 .brand { 115 font-family: "Permanent Marker", cursive; 116 font-size: 1.5rem; 117 color: #0d6efd; 118 white-space: nowrap; 119 } 120 </style> 121 122 123 124
124<script> 125 if ("serviceWorker" in navigator) { 126 127 window.addEventListener("load", async (event) => { 128 try { 129 //console.debug("registering service worker"); 130 await navigator.serviceWorker.register("/service-worker.min.js"); 131 //console.debug("registered service worker"); 132 } catch (error) { 133 console.error(`service worker registration failed: '${error}'`); 134 } 135 }); 136 } else { 137 console.info("service workers not available"); 138 } 139</script>
139 140 141 142 143 144 145
146<script> 147 window.dataLayer = window.dataLayer || []; 148 function gtag(){dataLayer.push(arguments);} 149 150 gtag('consent', 'default', { 151 'ad_storage': 'denied', 152 'ad_user_data': 'denied', 153 'ad_personalization': 'denied', 154 'analytics_storage': 'denied' 155 }); 156</script>
vendor: 64 bytes, lines 156-157
156 157<script async src="https://www.googletagmanager.com/gtag/js?id=
157G-W9JBZHSLL1
vendor: 12 bytes, line 157
157"></script>
158<script> 159
vendor: 139 bytes, lines 159-162
159window.dataLayer = window.dataLayer || []; 160 function gtag(){dataLayer.push(arguments);} 161 gtag('js', new Date()); 162 gtag('config', '
162G-W9JBZHSLL1
vendor: 4 bytes, line 162
162');
163</script>
163 164 165 <!-- Facebook Pixel --> 166
166<script> 167 !function(f,b,e,v,n,t,s) 168 {if(f.fbq)return;n=f.fbq=function(){n.callMethod? 169 n.callMethod.apply(n,arguments):n.queue.push(arguments)}; 170 if(!f._fbq)f._fbq=n;n.push=n;n.loaded=!0;n.version='2.0'; 171 n.queue=[];t=b.createElement(e);t.async=!0; 172 t.src=v;s=b.getElementsByTagName(e)[0]; 173 s.parentNode.insertBefore(t,s)}(window,document,'script', 174 'https://connect.facebook.net/en_US/fbevents.js'); 175 // default to 'revoke' until user consents 176 fbq('consent', 'revoke'); 177 // standard initialization 178 fbq('init', '318905666498255'); 179 fbq('track', 'PageView'); 180 </script>
180 181</head> 182<body> 183 <div class="alert alert-danger text-center" role="alert" style="display: none;" id="userMustLogInAlert"> 184 You are not logged in anymore. Please log in again. 185 </div> 186 <div class="alert alert-success text-center" role="alert" style="display: none;" id="accountDeletionStartedAlert"> 187 Account deletion has been started. 188 </div> 189 <div class="container"> 190 <header class="d-flex flex-wrap justify-content-center align-items-center py-3 mb-2"> 191 <a href="/" class="text-decoration-none header-brand"> 192 Quantify My Bike 193 </a> 194 <ul class="nav col-12 col-md-auto ms-md-3 me-md-auto mb-2 mb-md-0 justify-content-center"> 195 <li><a href="/" class="nav-link px-2 link-secondary">Home</a></li> 196 <li><a href="/features" class="nav-link px-2 link-dark">Features</a></li> 197 </ul> 198 <div class="text-end"> 199 <button type="button" class="btn btn-outline-primary me-2" id="logInButton" disabled>Log in</button> 200 <button type="button" class="btn btn-primary" id="signUpButton" disabled>Sign up</button> 201 </div> 202 </header> 203 <h1 class="text-center fs-2"> 204 Get insight into bike components' durability<br> 205 Free bike manager for Strava 206 </h1> 207 <div class="text-center"> 208 <a href="/features">See how it works</a> 209 </div> 210 <div id="screenshotsCarousel" class="carousel carousel-dark slide m-auto py-4" data-bs-ride="carousel"> 211 <div class="carousel-indicators"> 212 <button type="button" data-bs-target="#screenshotsCarousel" data-bs-slide-to="0" class="active" aria-current="true" aria-label="Bikes Screenshots"></button> 213 <button type="button" data-bs-target="#screenshotsCarousel" data-bs-slide-to="1" aria-label="Components Screenshots"></button> 214 </div> 215 <div class="carousel-inner"> 216 <div class="carousel-item active"> 217 <img src="images/bikes-screenshots.png" class="d-block w-100" alt="Bikes Screenshots"> 218 </div> 219 <div class="carousel-item"> 220 <img src="images/components-screenshots.png" class="d-block w-100" alt="Components Screenshots"> 221 </div> 222 </div> 223 </div> 224 <footer class="pt-3 pb-4 pe-2"> 225 <div class="row"> 226 <div class="col-sm-auto me-sm-auto mb-2 mb-sm-0"> 227 <img src="images/powered_by_strava.svg" width="175" alt="Powered by Strava" class="me-2"> 228 <a href="https://play.google.com/store/apps/details?id=com.quantifymybike.android"> 229 <img src="images/get_it_on_google_play.png" width="150" alt="Get it on Google Play"> 230 </a> 231 </div> 232 <div class="col-sm-auto align-self-center ms-1"> 233 © 2026 Quantify My Bike<br/> 234 <a href="https://www.facebook.com/quantifymybike" target="_blank" rel="noopener" title="Facebook" class="mx-1"> 235 236 <svg viewBox="0 0 512 512" fill="currentColor" class="svg-icon-facebook-brands"> 237 <!--!Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2025 Fonticons, Inc.--> 238 <path d="M512 256C512 114.6 397.4 0 256 0S0 114.6 0 256C0 376 82.7 476.8 194.2 504.5V334.2H141.4V256h52.8V222.3c0-87.1 39.4-127.5 125-127.5c16.2 0 44.2 3.2 55.7 6.4V172c-6-.6-16.5-1-29.6-1c-42 0-58.2 15.9-58.2 57.2V256h83.6l-14.4 78.2H287V510.1C413.8 494.8 512 386.9 512 256h0z"/> 239</svg></a> 240 <a href="https://bsky.app/profile/quantifymybike.com" target="_blank" rel="noopener" title="Bluesky" class="mx-1"> 241 242 <svg viewBox="0 0 512 512" fill="currentColor" class="svg-icon-bluesky-brands"> 243 <!--!Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2025 Fonticons, Inc.--> 244 <path d="M111.8 62.2C170.2 105.9 233 194.7 256 242.4c23-47.6 85.8-136.4 144.2-180.2c42.1-31.6 110.3-56 110.3 21.8c0 15.5-8.9 130.5-14.1 149.2C478.2 298 412 314.6 353.1 304.5c102.9 17.5 129.1 75.5 72.5 133.5c-107.4 110.2-154.3-27.6-166.3-62.9l0 0c-1.7-4.9-2.6-7.8-3.3-7.8s-1.6 3-3.3 7.8l0 0c-12 35.3-59 173.1-166.3 62.9c-56.5-58-30.4-116 72.5-133.5C100 314.6 33.8 298 15.7 233.1C10.4 214.4 1.5 99.4 1.5 83.9c0-77.8 68.2-53.4 110.3-21.8z"/> 245</svg></a> 246 <a href="https://www.strava.com/clubs/quantifymybike" target="_blank" rel="noopener" title="Strava Clubs" class="me-1"> 247 248 <svg viewBox="0 0 384 512" fill="currentColor" class="svg-icon-strava-brands"> 249 <!--!Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2025 Fonticons, Inc.--> 250 <path d="M158.4 0L7 292h89.2l62.2-116.1L220.1 292h88.5zm150.2 292l-43.9 88.2-44.6-88.2h-67.6l112.2 220 111.5-220z"/> 251</svg></a> 252 <a href="/terms">Terms</a> 253 <a href="/privacy">Privacy</a> 254 </div> 255 </div> 256 </footer> 257 </div> 258 <div class="row" style="display: none;" id="cookieConsentBox"> 259 <div class="col-md-4 col-sm-12 cookie-consent"> 260 <div class="p-3 pb-4"> 261 <div> 262 <h3>Cookies</h3>
263 </div> 264 <div> 265 <p> 266 This site uses cookies. By continuing to use the site, you are agreeing to our use of cookies. 267 Please see our <a href="/privacy" target="_blank">privacy policy</a> for details. 268 </p> 269 </div> 270 <button type="button" class="btn btn-danger w-100" id="cookieConsentButton">Accept Cookies</button> 271 </div> 272 </div> 273 </div> 274 <div class="modal" id="signUpModal" tabindex="-1"> 275 <div class="modal-dialog"> 276 <div class="modal-content"> 277 <div class="modal-header"> 278 <h1 class="modal-title fs-5">Sign up for <span class="brand px-1">Quantify My Bike</span></h1> 279 <button type="button" class="btn-close" data-bs-dismiss="modal"></button> 280 </div> 281 <div class="modal-body"> 282 <p>To sign up or log in to Quantify My Bike you use the orange Connect with Strava button. 283 There is no additional login/password needed.</p> 284 <p>Strava will ask you to authorize Quantify My Bike to view your profile and activities.</p> 285 <p class="text-center"> 286 <input type="image" id="signUpConnectWithStravaButton" src="images/connect_with_strava.svg" alt="Connect with Strava"><br> 287 <input type="checkbox" id="signUpPersistentSessionInput"> 288 <label for="signUpPersistentSessionInput">stay logged in on this device</label> 289 </p> 290 <p>By signing up for Quantify My Bike you agree to the <a href="/terms" target="_blank">Terms</a>. 291 View our <a href="/privacy" target="_blank">Privacy Policy</a>.</p> 292 </div> 293 </div> 294 </div> 295 </div> 296 <div class="modal" id="logInModal" tabindex="-1"> 297 <div class="modal-dialog"> 298 <div class="modal-content"> 299 <div class="modal-header"> 300 <h1 class="modal-title fs-5">Log in to <span class="brand px-1">Quantify My Bike</span></h1> 301 <button type="button" class="btn-close" data-bs-dismiss="modal"></button> 302 </div> 303 <div class="modal-body"> 304 <p>Use the orange Connect with Strava button to log in to Quantify My Bike.</p> 305 <p>Strava will ask you to authorize Quantify My Bike to view your profile and activities 306 every single time you log in.</p> 307 <p class="text-center"> 308 <input type="image" id="logInConnectWithStravaButton" src="images/connect_with_strava.svg" alt="Connect with Strava"><br> 309 <input type="checkbox" id="logInPersistentSessionInput"> 310 <label for="logInPersistentSessionInput">stay logged in on this device</label> 311 </p> 312 <p>By logging in to Quantify My Bike you agree to the <a href="/terms" target="_blank">Terms</a>. 313 View our <a href="/privacy" target="_blank">Privacy Policy</a>.</p> 314 </div> 315 </div> 316 </div> 317 </div> 318</body> 319</html>
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.