<
      • < div class="result__image" data-aspectratio="{{ it.product.image.aspectRatio }}" data-product-image>
      • < a href="{{ it.product.url }}" class="result__image-link" aria-label='{{ it.product.title }}'> {{@if(it.product.badgeText)}} << div class="featured-image__bg bg-pos-left-center" style="background-image: url('//projektride.co.uk/cdn/shop/files/SKEBKDRVSYS_68338_06_1_2048x.jpg?v=1765620422');background-attachment: fixed;">div class="product__tag{{ it.product.badgeClasses }}">
      • span>{{ it.product.badgeText | safe }}
      {{/if}}
    • <
    • <
    • <<
  • /Custom Builds
  • <
  • <

    nfig":null,"js_config":null,"created_at":"2025-07-26T09:16:04.076Z","updated_at":"2025-07-26T09:16:04.076Z"}];window._RestockRocketConfig.obfuscateInventoryQuantity = false;window._RestockRocketConfig.scriptUrlProduct = 'https://cdn.shopify.com/extensions/019b1405-52e0-7e89-a6c1-1ac7fea6dd8f/restock-rocket-shopify-410/assets/restockrocket-product.js' window._RestockRocketConfig.scriptUrlCollection = 'https://cdn.shopify.com/extensions/019b1405-52e0-7e89-a6c1-1ac7fea6dd8f/restock-rocket-shopify-410/assets/restockrocket-collection.js' window._RestockRocketConfig.scriptHost = window._RestockRocketConfig.scriptUrlProduct.substring(0, window._RestockRocketConfig.scriptUrlProduct.lastIndexOf('/') + 1) window._RestockRocketConfig.host = 'https://app.restockrocket.io' const SETTINGS_CACHE_DURATION = 15 * 60 * 1000; // 15 minutes in milliseconds function checkSettingsExpiry(settings) { try { if (!settings || !settings.updated_at) { console.debug('STOQ - Invalid settings data structure'); ys(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.ca
    se was not ok'); } return response.json(); }) .then(function(settings) { initializeScripts(settings); }) .catch(function(error) { // If request failed and we have cached settings (even if expired), use them as fallback if (cachedSettings) { console.debug('STOQ - using expired cached settings as fallback'); initializeScripts(cachedSettings); } else { console.error('STOQ - failed to load settings:', error); } }) .catch(function(e) { console.error(e) }) } function initializeScripts(settings) { settings = applyTranslations(settings); window._RestockRocketConfig.settings = settings; console.debug(`STOQ - settings configured for ${window._RestockRocketConfig.pageType}`); if(settings.enable_app) { const hijackIntegration = window._RestockRocketConfig.integrations.find(function(integration) { return integration.type === 'hijack' && integration.enabled && integration.page_types.includ
    createRestockRocketScript(window._RestockRocketConfig.scriptUrlProduct); } else if(hijackIntegration) { createRestockRocketScript(window._RestockRocketConfig.scriptUrlCollection); } else { console.debug(`STOQ - no scripts enabled for ${window._RestockRocketConfig.pageType}`); } // Check and update cart selling plans after scripts are loaded if (settings.preorder_enabled) { updateCartSellingPlans(); } // Dispatch custom event when app is loaded const appLoadedEvent = new CustomEvent('stoq:loaded', { detail: { pageType: window._RestockRocketConfig.pageType, enabled: settings.enable_app, settings: settings } }); console.debug('STOQ - dispatching app loaded event'); window.dispatchEvent(appLoadedEvent); } } function updateCartSellingPlans() { // Wait for the API to be available with retries const maxRetries = 10; const retryDelay = 500; function atte
    Header Image .restock-rocket-button,.restock-rocket-button-float{opacity:1!important;border:none!important;cursor:pointer!important;background-image:none!important;box-shadow:none!important;padding:15px 20px;font-size:16px;width:100%;font-family:inherit}@font-face{font-family:OpenSans;font-weight:200;src:url(https://d382hokyqag45a.cloudfront.net/assets/OpenSans-Light.woff)}@font-face{font-family:OpenSans;font-weight:300;src:url(https://d382hokyqag45a.cloudfront.net/assets/OpenSans-Regular.woff)}@font-face{font-family:OpenSans;font-weight:600;src: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-b Cartutton-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:all;transition-duration:.3s;display:flex;flex-direction:column;justify-content:center;}.restock-rocket-wrapper-inline{width:100%;height:100%;margin-top:20px}.restock-rocket-preorder-description{padding:10px 15px;margin-top:20px;display:flex;flex-direction:column;gap:10px;}.preorder-description-details{margin-bottom:0;display:flex;flex-direction:column;gap:10px;}.preorder-detail-item{display:flex;flex-direction:row;justify-content:start;gap:8px;align-items:center;}.restock-rocket-payment-widget{border:1px solid #ebebeb;mar
    E-bike Batteries and chargers acknowledgement-checkbox{margin-bottom:12px;display:flex;align-items:flex-start;gap:8px;font-size:14px;line-height: 1.5;}.restock-rocket-acknowledge-checkbox-input{width:18px;height:18px;margin-top:2px;cursor:pointer;flex-shrink:0;accent-color: #0d0d0d;}.restock-rocket-acknowledge-checkbox-label{flex:1;cursor:pointer;}.restock-rocket-preorder-countdown-timer{display:flex;flex-direction:column;align-items:center;padding:16px;margin:8px 0;font-family:inherit;}.restock-rocket-preorder-countdown-timer .countdown-header{font-size:16px;margin-bottom:6px;text-align:center}.restock-rocket-preorder-countdown-timer .countdown-units{display:flex;flex-wrap:wrap;gap:12px;justify-content:center}.restock-rocket-preorder-countdown-timer .countdown-unit{display:flex;flex-direction:column;align-items:center;gap:6px}.restock-rocket-preorder-countdown-timer .countdown-box{min-width:40px;padding:10px 6px;text-align:center;font-size:20px;line-height:1}.restock-rocket-preorder-countdown-timer .countdown-label{font-size:14px;font-we 000}.restock-rocket-toast .dismiss{margin-left:15px;z-index:1;font-size:20px;}.restock-rocket-toast-top{top:60px}.restock-rocket-toast-bottom{bottom:75px}.restock-rocket-toast-left,.restock-rocket-toast-right{-webkit-animation:.5s forwards slide;animation:.5s forwards slide}.restock-rocket-toast-left{left:0;transform:translateX(-100%);-webkit-transform:translateX(-100%);border-radius:0 10px 10px 0}.restock-rocket-toast-left.slide-out{-webkit-animation:.5s forwards slide-out-left;animation:.5s forwards slide-out-left}.restock-rocket-toast-right{right:0;transform:translateX(100%);-webkit-transform:translateX(100%);border-radius:10px 0 0 10px}.restock-rocket-toast-right.slide-out{-webkit-animation:.5s forwards slide-out-right;animation:.5s forwards slide-out-right}@keyframes slide{100%{transform:translateX(0)}}@-webkit-keyframes slide{100%{-webkit-transform:translateX(0)}}@keyframes slide-out-left{0%{transform:translateX(0)}100%{transform:translateX(-100%)}}@-webkit-keyframes slide-out-left{0%{-webkit-transform:Close
    See More

    Introducing Stock Builds! Cockpit

    We are really excited to be offering these stock Brothers Mehteh, Big Bro, and Gloria Complete bikes that have been assembled right here in Edinburgh!CockpitThis site has limited support for your browser. We recommend switching to Edge, Chrome, Safari, or Firefox. Yeti

    Shop Now! Handlebars
    Handlebars
    Ridgeback
    Stems
    StemsClose
    Grips & Bar-TapeHome
    HeadsetsHeadsetsHire Bikes

    Brakes

    Brakes See More

    Complete Brakes Complete Brakes Brake Rotors New BikesKona

    Getting the Right Bike See More

    We don’t do 'bikes for the masses', our key objective is to get you the correct bike for your unique riding profile. Brake Pads

    Brake Pads Surly



    Pedals

    New BikesGears & Drivetrain

    See More

    Shop All New Bikes

    Road / Gravel / Touring Bikes

    Hybrid / City Bikes



    Mountain Bikes
    Electric Bikes

    Kids Bikes

    Frames

    Shop by Brand
    See More

    Gloria

    Trek

    Amflow

    Cockpit
    Handlebars

    Stems

    Grips & Bar-Tape


    ★★★Sell Your BikeInsure Your Bike Tubes

    Took my old bike in for a service and it now feels like new. Great communication and great price. Also took the time to chat about future bike options with me. Cannot recommend Projekt Ride enough! Contact Us

    Calum Thistle Custom Build Inspiration
    Contact Us Tubeless

    ★★★★★ Parts & Components Open search barSaddles

    Servicing of my titanium road bike. Great friendly and knowledgable service from Andy and his team. Thoroughly recommended as my LBS of choice

    Mark DunnOpen search barSee MoreServices
    Seat Posts & Clamps
    See MoreMy Account

    ★★★★★My Account Pedals

    If you are looking for someone helpful and knowledgeable this is the place to go. Brands
    Excellent service got a great bike in great condition even helped out with a few extras and provided the original receipt for lifetime guarantee on the frame. See More

    Iain Orr WorkshopOpen cart
    See More
    Open cart Gears & Drivetrain
    Hope

    ★★★★★ Components

    I dropped my Specialized Vita for new brake pads and a service, the bike was ready for collection the same day and the price was reasonable! Bicycle feels brand new again and works amazing! Many thanks!! Workshop Prices

    Shimano SPD SL Road Cleats – ProjektRide

    Open navigation menu

    Open search bar

    Open cart
    Bags and Transportation
    Submit your search request
    LightsView all
    Loading more.
    .
    div class="result__image" data-aspectratio="{{ it.product.image.aspectRatio }}" data-product-image> a href="{{ it.product.url }}" class="result__image-link" aria-label='{{ it.product.title }}'> Tubes
    > > {{/if}}
    > Saddles
    Gears & Drivetrain
    Components
    Accessories
    Bottles and Cages
    Custom Builds for saleMudguards
    Collections Home Skip to content /
    Sort by Close     Lights
    FeaturedHire Size
    Workshop Prices
    Maintenance Search text field
    BikesSee More Essentials
    £50 to qualify for free shipping