Early Rider

Book a Service

Front derailleur
  • -
  • Rear derailleur
  • Front hub
    Bombtrack Tau sealed hub, 6-bolt disc
    Bombtrack Tau sealed hub, 11-speed, 6-bolt disc

    <
    <
    <

    Honey
    a class="product__media product__media--featured" href="/collections/accessories/products/backcountry-frame-pack-1l" title="BACKCOUNTRY FRAME PACK (1L)" aria-label="BACKCOUNTRY FRAME PACK (1L)" style="background-image: url(//projektride.co.uk/cdn/shop/files/Screenshot2023-06-25at11.16.34_600x.png?v=1687688248)"> Colour>
    >
    Black - £24.99 GBP
    Honey - Sold Out 1
    BACKCOUNTRY FRAME PACK (2L) span class="visually-hidden">BACKCOUNTRY FRAME PACK (2L)
    > 2>
    HE_DURATION) { console.debug('STOQ - settings changed recently, skipping cache'); return null; } return settings; } catch (error) { console.debug('STOQ - Error checking settings cache:', error); return null; } } function createRestockRocketContainer() { const restockRocketContainer = document.createElement('div'); restockRocketContainer.id = 'restock-rocket'; document.body.appendChild(restockRocketContainer); } function createRestockRocketScript(scriptUrl) { const restockRocketScriptElement = document.createElement('script'); restockRocketScriptElement.setAttribute('defer', 'defer'); restockRocketScriptElement.src = scriptUrl; document.body.appendChild(restockRocketScriptElement); } createRestockRocketContainer() console.debug('STOQ - extension activated') function applyTranslations(settings) { try { // Skip translation logic entirely if multi-language is not enabled if (!settings || !settings.mulif (value !== null && value !== undefined && value !== '') { settings[key] = value; } }); } else { console.debug('STOQ - No translated fields found for locale:', normalizedLocale); } delete settings.translations; return settings; } catch (e) { console.debug('STOQ - error applying translations:', e); return settings; } } // First try to get settings from metafields with expiry check const cachedSettings = window._RestockRocketConfig.cachedSettings; const validCachedSettings = cachedSettings ? checkSettingsExpiry(cachedSettings) : null; if (validCachedSettings) { console.debug('STOQ - using cached settings'); initializeScripts(validCachedSettings); } else { console.debug('STOQ - fetching fresh settings'); const headers = { 'X-Shopify-Shop-Domain': window._RestockRocketConfig.shop || window.Shopify.shop, 'ngrok-skip-browser-warning': 'skip' }; if (window.Shopify?.theme?.role === '
    url(https://d382hokyqag45a.cloudfront.net/assets/OpenSans-SemiBold.woff)}.restock-rocket-button-container{position:relative;z-index:1;width:100%}.restock-rocket-button-container-float-right{position:fixed;z-index:123123;top:calc(50% - 200px);right:0;transform:rotate(270deg);transform-origin:bottom right}.restock-rocket-button-container-float-left{position:fixed;z-index:123123;top:calc(50% - 200px);left:40px;transform:rotate(90deg);transform-origin:top left}.restock-rocket-button-container-float-left:hover,.restock-rocket-button-container-float-right:hover,.restock-rocket-button-container:hover,.restock-rocket-button-float:hover,.restock-rocket-button:hover{opacity:.8}.restock-rocket-button{min-height:50px;margin-top:10px;margin-bottom:10px}.restock-rocket-button-collection{position:relative;font-size:13px;line-height:1;padding:7px;height:auto;z-index:3}.restock-rocket-wrapper{background-color:rgba(0,0,0,.5);z-index:123123123;width:100%;height:100%;overflow:auto;position:fixed;right:0;top:0;transition-property
    8\"\u003eSram DUB T47 85.5 mm\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr height=\"21\"\u003e\n\u003ctd height=\"21\" class=\"xl66\"\u003ePedals\u003c\/td\u003e\n\u003ctd class=\"xl68\"\u003e-\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr height=\"21\"\u003e\n\u003ctd height=\"21\" class=\"xl66\"\u003eChain\u003c\/td\u003e\n\u003ctd class=\"xl68\"\u003eSram Rival, flattop, 1\/2'' x 11\/128'', 112L\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr height=\"21\"\u003e\n\u003ctd height=\"21\" class=\"xl66\"\u003eChainring\u003c\/td\u003e\n\u003ctd class=\"xl68\"\u003eSram Rival, 12-speed, 38 T\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr height=\"21\"\u003e\n\u003ctd height=\"21\" class=\"xl66\"\u003eCassette\u003c\/td\u003e\n\u003ctd class=\"xl68\"\u003eSram XPLR XG-1251 12-speed, 10 - 44 T\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr height=\"21\"\u003e\n\u003ctd height=\"21\" class=\"xl66\"\u003eFront derailleur\u003c\/td\u003e\n\u003ctd class=\"xl68\"\u003e-\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr height=\"21\"\u0<
    all\",\n \"customSectionHeight\": 65,\n \"horizontalAlignment\": \"horizontal-alignment--center\",\n \"verticalAlignment\": \"vertical-alignment--top\",\n \"contentWidth\": \"content-width--custom\",\n \"customContentWidth\": 100,\n \"sectionTheme\": \"white\",\n \"sectionAnimation\": \"none\",\n \"backgroundMode\": \"video\"\n }' data-current-context='{\n \"video\": {\n \"url\": \"\",\n \"filterStrength\": 0,\n \"zoom\": 0,\n \"videoSourceProvider\": \"none\"\n },\n \"backgroundImageId\": null,\n \"backgroundMediaEffect\": null,\n \"divider\": null,\n td\u003e\n\u003ctd class=\"xl73\"\u003e2\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003c\/tbody\u003e\n\u003c\/table\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/section\u003e\n\u003cdl class=\"AttributeList hToggle clearfix\" id=\"DetailAttributes\"\u003e\u003c\/dl\u003e\n\u003c!----\u003e"}
    • [] { "@context": "http://schema.org/", "@type": "Product", "name": "Bombtrack HOOK EXT RIVAL AXS Complete Bike", "url": "https:\/\/projektride.co.uk\/products\/bombtrack-hook-ext-rival-axs-complete-bike","image": [ "https:\/\/projektride.co.uk\/cdn\/shop\/files\/BT_MY24_Hook_EXT_Rival_AXS_matt_charcoal_black_web_01_800x800_crop_center_2x_3a99258d-f708-4be0-b864-b65c46f780b2_1600x.webp?v=1720086319" ],"description": "\n\n\n\n\n\n\n\n\n\n\nSteel is real. Especially when the Hook EXT Rival AXS comes equipped as standard with Sram’s electronic Rival AXS 1x12 groupset and hydraulic brakes. The drivetrain comes finished with the Sram Rival Wide 38T direct mount chainring for consistent chain control. \nThe Columbus Cromor double-butted frame with tapered head tube and rear light mount will last longer than the test of time. So you can hit the road less travelled, wider rims improve tyre performance. You’ll also have more mounting options than to shake a fist at: top tube direct mounts, triple cage mounts on the down tube and seat tube for cargo positions of your choice, as well as underneath the down tube and rear rack mounts for those adventures that delve deep into unknown territory.\n \n\n\n\n\n\n\n\nFork\nSeido MGV full carbon, TA, 1.1\/2'' - 1.1\/8'', fender \/ triple cage mounts, 180 mm max rotor size, lowrider rack compatible, internal hub dynamo cable routing\n\n\nHandlebar\nBombtrack Beaufort drop bar, 31.8 mm, 16° flare\n\n\nGrips\nBombtrack Escape bar tape\n\n\nStem\nSeido Chase forged aluminium stem, 0°\n\n\nHeadset\nSealed external aheadset, 1.1\/2'' - 1.1\/8''\n\n\nLevers\nSram Rival eTap AXS double tap hydraulic\n\n\nShifter\nSram Rival eTap AXS double tap 1 x 12\n\n\nBrakes\nSram Rival flat mount hydraulic disc brakes\n\n\nRotor\nSram Centerline 180 mm front and 160 mm rear rotor\n\n\nCrankset\nSram Rival Wide, DUB spindle\n\n\nBB\nSram DUB T47 85.5 mm\n\n\nPedals\n-\n\n\nChain\nSram Rival, flattop, 1\/2'' x 11\/128'', 112L\n\n\nChainring\nSram Rival, 12-speed, 38 T\n\n\nCassette\nSram XPLR XG-1251 12-speed, 10 - 44 T\n\n\nFront derailleur\n-\n\n\nRear derailleur\nSram Rival XPLR eTap AXS, clutch, medium cage\n\n\nFront hub\nBombtrack Tau sealed hub, 6-bolt disc\n\n\nRear hub\nBombtrack Tau sealed hub, XD driver, 6-bolt disc\n\n\nThrough axle\n12 x 100 mm \/ 12 x 142 mm\n\n\nFront rim\nWTB ST Light i25 double wall, TCS 2.0, 32h\n\n\nRear rim\nWTB ST Light i23 double wall, TCS 2.0, 32h\n\n\nSaddle\nBombtrack Dart saddle\n\n\nSeat post\nBombtrack Yew aluminium seatpost, 27.2 mm x 300 mm\n\n\nSeat clamp\nBombtrack Prime 29.8 mm\n\n\nFront tire\nWTB Ranger TCS Light \/ Fast Rolling 27.5'' x 2.0'', tubeless ready\n\n\nRear tire\nWTB Ranger TCS Light \/ Fast Rolling 27.5'' x 2.0'', tubeless ready\n\n\nFender\n-\n\n\nRack\n-\n\n\nKickstand\n-\n\n\nLight\n-\n\n\nWeight\n12.1 (size M)\n\n\nWeight frameset\n2710 g frame (size L, incl. TA, hanger) \/ 550 g fork (300 mm steerer, incl. TA)\n\n\nMaximum rider weight\n130 kg incl. Luggage\n\n\nASTM riding condition\n2\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n","brand": { "@type": "Thing", "name": "Bombtrack" },"gtin8": "","offers": [{ "@type" : "Offer","availability" : "http://schema.org/OutOfStock", "price" : 3750.0, "priceCurrency" : "GBP", "url" : "https:\/\/projektride.co.uk\/products\/bombtrack-hook-ext-rival-axs-complete-bike?variant=45661615489250" }, { "@type" : "Offer","availability" : "http://schema.org/OutOfS
    a class="product__media product__media--featured" href="/collections/accessories/products/backcountry-long-top-tube-pack-1-8l" title="BACKCOUNTRY LONG TOP TUBE PACK (1.8L)" aria-label="BACKCOUNTRY LONG TOP TUBE PACK (1.8L)" style="background-image: url(//projektride.co.uk/cdn/shop/files/Screenshot2023-06-25at11.49.37_600x.png?v=1687690182)"> []
    span class="visually-hidden">BACKCOUNTRY LONG TOP TUBE PACK (1.8L)
    >
    > { "@context": "http://schema.org/", "@type": "Product", "name": "Brooks Microfibre bar tape", "url": "https:\/\/projektride.co.uk\/products\/brooks-microfibre-bar-tape-black","image": [ "https:\/\/projektride.co.uk\/cdn\/shop\/products\/Screenshot2022-04-10at11.20.21_1394x.png?v=1652171669" ],"description": "\nLightweight, Durable, Tight-Handling.\nBrooks Microfibre Bar Tape is a handlebar tape manufactured from a synthetic textile for road bikes or any other drop-bar bike. Durable and waterproof.\n\n\n\nFor grip and control\n\n\n\n\nMicrofiber Bar Tape provides excellent grip so that riders can exert maximum control.\n\n\n\n\n\nLightweight\n\n\n\n\nMaterials specially chosen for their remarkable strength-to-weight ratio.\n\n\n\n\n\nMade to last\n\n\n\n\nDurable materials are chosen for long life and excellent wearing properties.\n \nIf any more information is needed, please don't hesitate to get in touch with one of the team:\nProjektRide Bike shop Edinburgh.\nedinburgh@projektride.co.uk\nT- 01313745324\n \n\n","sku": "BT03000A15202","brand": { "@type": "Thing", "name": "ProjektRide" },"gtin8": "","offers": [{ "@type" : "Offer","sku": "BT03000A15202","availability" : "http://schema.org/InStock", "price" : 24.99, "priceCurrency" : "GBP", "url" : "https:\/\/projektride.co.uk\/produ

    £70.00
    a class="product__media product__media--featured" href="/collections/accessories/products/backcountry-rear-top-tube-pack-1l" title="BACKCOUNTRY REAR TOP TUBE PACK (1L)" aria-label="BACKCOUNTRY REAR TOP TUBE PACK (1L)" style="background-image: url(//projektride.co.uk/cdn/shop/files/Screenshot2023-06-25at11.47.50_600x.png?v=1687690143)"> <>
    ight=\"21\"\u003e\n\u003ctd height=\"21\" class=\"xl66\"\u003eStem\u003c\/td\u003e\n\u003ctd class=\"xl68\"\u003eSeido Chase forged aluminium stem, 0°\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr height=\"21\"\u003e\n\u003ctd height=\"21\" class=\"xl66\"\u003eHeadset\u003c\/td\u003e\n\u003ctd class=\"xl68\"\u003eSealed external aheadset, 1.1\/2'' - 1.1\/8''\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr height=\"21\"\u003e\n\u003ctd height=\"21\" class=\"xl66\"\u003eLevers\u003c\/td\u003e\n\u003ctd class=\"xl68\"\u003eSram Rival eTap AXS double tap hydraulic\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr height=\"21\"\u003e\n\u003ctd height=\"21\" class=\"xl66\"\u003eShifter\u003c\/td\u003e\n\u003ctd class=\"xl68\"\u003eSram Rival eTap AXS double tap 1 x 12\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr height=\"21\"\u003e\n\u003ctd height=\"21\" class=\"xl66\"\u003eBrakes\u003c\/td\u003e\n\u003ctd class=\"xl68\"\u003eSram Rival flat mount hydraulic disc brakes\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr height=\"21\"
    g\u003c\/td\u003e\n\u003ctd class=\"xl68\"\u003eSram Rival, 12-speed, 38 T\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr height=\"21\"\u003e\n\u003ctd height=\"21\" class=\"xl66\"\u003eCassette\u003c\/td\u003e\n\u003ctd class=\"xl68\"\u003eSram XPLR XG-1251 12-speed, 10 - 44 T\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr height=\"21\"\u003e\n\u003ctd height=\"21\" class=\"xl66\"\u003eFront derailleur\u003c\/td\u003e\n\u003ctd class=\"xl68\"\u003e-\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr height=\"21\"\u003e\n\u003ctd height=\"21\" class=\"xl66\"\u003eRear derailleur\u003c\/td\u003e\n\u003ctd class=\"xl68\"\u003eSram Rival XPLR eTap AXS, clutch, medium cage\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr height=\"21\"\u003e\n\u003ctd height=\"21\" class=\"xl66\"\u003eFront hub\u003c\/td\u003e\n\u003ctd class=\"xl69\" align=\"left\"\u003eBombtrack Tau sealed hub, 6-bolt disc\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr height=\"23\"\u003e\n\u003ctd height=\"23\" class=\"xl66\"\u003eRear hub\u003c\/td\u003e\n\u003ctd
    Mon - Fri: 09:00 - 18:30
    Sat: 9:00 - 16:00

    Sun: Closed

    Tel
    ttings || !settings.updated_at) { console.debug('STOQ - Invalid settings data structure'); return null; } if (!settings.cache) { console.debug('STOQ - settings caching disabled'); return null; } // Check if translations are enabled but missing from cache // This handles the backfill period where DB has translations but metafield doesn't if (settings.multi_language_enabled) { if (!settings.translations) { // Translations enabled but no translation data in metafield // Metafield hasn't been backfilled yet - force refresh console.debug('STOQ - multi-language enabled but no translation data in cache, fetching fresh'); return null; } // Translations object exists in metafield - cache is valid // If current locale isn't translated, applyTranslations will gracefully use default locale from base fields if (window._RestockRocketConfig.normalizedLocale && !Object.prototype.hasOwnProperty.call(settings.translations, window._RestockRocketConfig.normalizedLocale)) { console.debug('STOQ - locale not explicitly translated, will use default language from cache'); } // Don't return null - continue using cache even for untranslated locales } const updatedAt = new Date(settings.updated_at); if (isNaN(updatedAt.getTime())) { console.debug('STOQ - Invalid updated_at date format in settings'); return null; } const age = Date.now() - updatedAt.getTime(); if (age <
    SETTINGS_CACHE_DURATION) { console.debug('STOQ - settings changed recently, skipping cache'); return null; } return settings; } catch (error) { console.debug('STOQ - Error checking settings cache:', error); return null; } } function createRestockRocketContainer() { const restockRocketContainer = document.createElement('div'); restockRocketContainer.id = 'restock-rocket'; document.body.appendChild(restockRocketContainer); } function createRestockRocketScript(scriptUrl) { const restockRocketScriptElement = document.createElement('script'); restockRocketScriptElement.setAttribute('defer', 'defer'); restockRocketScriptElement.src = scriptUrl; document.body.appendChild(restockRocketScriptElement); } createRestockRocketContainer() console.debug('STOQ - extension activated') function applyTranslations(settings) { try { // Skip translation logic entirely if multi-language is not enabled if (!settings || !settings.multi_language_enabled) { return settings; } if (!settings.translations) { console.debug('STOQ - No translations found, skipping translation'); return settings; } const normalizedLocale = window._RestockRocketConfig.normalizedLocale; const translations = settings.translations; if (!normalizedLocale) { // No matching locale has translations; drop payload to sa
    ve memory console.debug('STOQ - No matching locale for translations. Available:', Object.keys(translations || {})); delete settings.translations; return settings; } console.debug(`STOQ - Applying translations for normalized locale: ${normalizedLocale} (original: ${window._RestockRocketConfig.locale})`); const translatedFields = translations[normalizedLocale]; if (translatedFields && typeof translatedFields === 'object') { Object.keys(translatedFields).forEach(function(key) { const value = translatedFields[key]; if (value !== null && value !== undefined && value !== '') { settings[key] = value; } }); } else { console.debug('STOQ - No translated fields found for locale:', normalizedLocale); } delete settings.translations; return settings; } catch (e) { console.debug('STOQ - error applying translations:', e); return settings; } } // First try to get settings from metafields with expiry check const cachedSettings = window._RestockRocketConfig.cachedSettings; const validCachedSettings = cachedSettings ? checkSettingsExpiry(cachedSettings) : null; if (validCachedSettings) { console.debug('STOQ - using cached settings'); initializeScripts(validCachedSettings); } else { console.debug('STOQ - fetching fresh settings'); const headers = { 'X-Shopify-Shop-Domain': window._RestockRocketConfig.shop || window.Shopify.shop, 'ngrok-skip-browser-warning': 'skip' }; if (window.Shopify?.theme?.role === 'main') { headers['X-Shopify-Theme-Schema-Name'] = window.Shopify.theme.schema_name; headers['X-Shopify-Theme-Schema-Version'] = window.Shopify.theme.schema_version; headers['X-Shopify-Theme-Store-Id'] = window.Shopify.theme.theme_store_id; } fetch( `${window._RestockRocketConfig.host}/api/v1/setting.json?translation_locale=${window._RestockRocketConfig.normalizedLocale}`, { headers }