See More
Cycle To Work Schemes
Open search bar
Available Bikes at ProjektRide
Here at ProjektRide Bike shop, we have a range of Gravel, Touring, Road, Hybrid and Electric Bikes. We stock a range of brands such as Surly, Brother, Genesis, Benno, Frog and Kona Bikes.
Bikes are available to be purchased in store or online with free postage. Open navigation menuInsure Your Bike
All Cycle to work schemes avaiable.
Parts & Components
TubesPedals
Gears & Drivetrain
#ListCollections--template--15326745166050__collection-list {
--overlay-opacity: 0.2;
}
@media screen and (min-width: 1024px) {
#ListCollections--template--15326745166050__collection-list {
--grid: repeat(4, minmax(0, 1fr));
}
}
@media screen and (min-width: 480px) and (max-width: 1023px) {
#ListCollections--template--15326745166050__collection-list {
--grid: repeat(2, minmax(0, 1fr));
}
}<
<
See More
<Loading more
<
Cycle To Work Schemes
Hope
>
Bikes
Enve
See Morea href="{{ it.product.url }}">{{ it.product.title }}
>
Phone Holders
50mm - 35mm clamp +/- 0 degrees - Sold Out
Spend £50Bells to qualify for free shipping
Congratulations! Your order qualifies for free shipping
Hope
<
Brake Padsa class="product__media product__media--featured"
href="/products/hire-smith-convoy-helmet"
title="Hire Lazer Compact Helmet"
aria-label="Hire Lazer Compact Helmet"
style="background-image: url(//projektride.co.uk/cdn/shop/files/my2023_tempo-kineticore-black_right_1400x1011800x600-removebg-preview_1_600x.png?v=1747484784)">
Shop all
<span class="visually-hidden">Hire Lazer Compact Helmet-Brother Cycles Stroma Frameset
Brakes>
<
BOMBTRACK HOOK EXT C Complete Bike
<
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;">
>
>
Transform your bike into a high-performance e-bike in seconds!
Check them out!
EXPLORE OUR BIKE COLLECTION
Complete Wheels<
Accessories
Gloves
Clothing
Contact Us
div class="product-feature__image-bg product-feature__image-bg--square" style="background-image: url(//projektride.co.uk/cdn/shop/files/EC994330-41C8-48CB-AFC0-105CA9D28838_1_201_a_1024x.jpg?v=1720258032);">
>
Open search bar
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!
div class="product-feature__image-bg product-feature__image-bg--square" style="background-image: url(//projektride.co.uk/cdn/shop/files/8A5BDC82-CAF8-4A46-9FF4-B5E6847EEDB3_1024x.jpg?v=1749892417);">
>
Close search bardiv class="image-column__image image-column__image--desktop no-js-image" style="background-image: url(//projektride.co.uk/cdn/shop/files/shop_2048x.jpg?v=1635888751);">
>
\u003eENVE Incidental Damage Protection\u003c\/h5\u003e\n\u003cp\u003eThis program provides a no-charge replacement for your first three years of ownership and a prorated replacement thereafter for damage inflicted when racing, riding, or transporting your bicycle. Original owners only. Product registration is required within 60 days of purchase to be eligible for this program.\u003c\/p\u003e\n\u003cp\u003e\u003ca href=\"https:\/\/www.enve.com\/support\/incidental-damage-protection-terms\/\"\u003ehttps:\/\/www.enve.com\/support\/incidental-damage-protection-terms\/\u003c\/a\u003e\u003c\/p\u003e\n\u003cp\u003e \u003c\/p\u003e\n\u003ctable\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\n\u003ch5\u003eENVE M7 Mountain Stem\u003c\/h5\u003e\n\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003eMaterial\u003c\/td\u003e\n\u003ctd\u003eCarbon Fibre\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003eLength\u003c\/td\u003e\n\u003ctd\u003e35mm, 50mm, 65mm\u003c\/td\u003e\n\u003c\/trFrom £419.00
\u003e\n\u003ctr\u003e\n\u003ctd\u003eRise\u003c\/td\u003e\n\u003ctd\u003e+\/- 0-degrees\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003eBar Clamp Diameter\u003c\/td\u003e\n\u003ctd\u003e35mm\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003eSteerer Clamp Diameter\u003c\/td\u003e\n\u003ctd\u003e1 1\/8\"\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003eFaceplate Material\u003c\/td\u003e\n\u003ctd\u003eAluminium\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003eHardware Material\u003c\/td\u003e\n\u003ctd\u003eTitanium\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003eWeight\u003c\/td\u003e\n\u003ctd\u003e85g, 92g, 99g\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003eTorque Spec: Faceplate\u003c\/td\u003e\n\u003ctd\u003e5.5Nm\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003eTorque Spec: Steerer Tube\u003c\/td\u003e\n\u003ctd\u003e5.5Nm\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003c\/tbody\u003e\n\u003c\/table
} 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
div class="result__image" data-aspectratio="{{ it.product.image.aspectRatio }}" data-product-image>
-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 }
)
.then(function(response) {
if (!response.ok) {
throw new Error('Network response 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 = \u003e\n\u003c\/div\u003e\n\u003cdiv\u003e\u003cbr\u003e\u003c\/div\u003e\n\u003cdiv class=\"techspecs\"\u003e\u003cbr\u003e\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e"};
window._RestockRocketConfig.variantsInventoryPolicy = {55175337378175 : "deny",55175337410943 : "deny",55175337443711 : "deny",};
window._RestockRocketConfig.variantsInventoryQuantity = {55175337378175 : parseInt("0"),55175337410943 : parseInt("0"),55175337443711 : parseInt("0"),};
window._RestockRocketConfig.variantsPreorderCount = {55175337378175 : parseInt(""),55175337410943 : parseInt(""),55175337443711 : parseInt(""),};
window._RestockRocketConfig.variantsPreorderCountForMarket = {55175337378175 : null,55175337410943 : null,55175337443711 : null,};
window._RestockRocketConfig.variantsPreorderMaxCount = {55175337378175 : parseInt(""),55175337410943 : parseInt(""),55175337443711 : parseInt(""),};
window._RestockRocketConfig.variantsPreorderMaxCountForMarket = {55175337378175 : null,55
★★★★★175337410943 : null,55175337443711 : null,};
window._RestockRocketConfig.variantsShippingText = {55175337378175 : "",55175337410943 : "",55175337443711 : "",};
window._RestockRocketConfig.variantsShippingTextForMarket = {55175337378175 : null,55175337410943 : null,55175337443711 : null,};
window._RestockRocketConfig.selected_variant_id = 55175337378175;
window._RestockRocketConfig.selected_variant_available = window._RestockRocketConfig.product.variants.find(function(variant) { return variant.id == window._RestockRocketConfig.selected_variant_id }).available;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');
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, fetMetallic Mint
We rented two gravel bikes to explore Scotland for nearly three weeks, and I couldn’t have been happier with the experience. The bikes came fully equipped with everything we could possibly need—repair kit, pannier bags, lock, spare tubes, and more. The team was incredibly welcoming and friendly, making the whole process seamless. There’s honestly nothing-ching 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
: 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 attemptCartCheck(attempt = 1) {
if (window._RestockRocket && window._RestockRocket.updateCartSellingPlans) {
window._RestockRocket.updateCartSellingPlans()
.then(hasUpdates => {
if (hasUpdates) {
console.debug('STOQ - cart selling plans updated successfully');
} else {
console.debug('STOQ - no cart selling plan updates needed');
}
})
.catch(error => {
console.error('STOQ - error updating cart selling plans:', error);
});
} else if (attempt
div class="result__image-img product__media lazyload fade-in"
data-bgset="{{ it.product.image.thumb }}"
data-aspectratio="{{ it.product.image.aspectRatio }}"
data-sizes="auto">
{{@if(it.product.badgeText)}}
Matias Hugentobler<
p class="result__title">{{ it.item.text }}★★★★★
>
>
I have taken several bikes here for servicing and repairs and been consistently impressed by their friendly and helpful advice, and the quality of their repair works. They seem to give a very honest opinion on whether work is required or not.
li class="result result--full">
>
These fantastic guys saved our holiday. We were bike trekking around Scotland, and after 3 days, we had serious brake problems. The oil was coming out of the calliper. I called 2 days before our arrival, and they promised to make some time for us. They fixed the problem very fast and they totally didn't take advantage of our situation. I know the prices very well, because I have done all my maintenance myself for many years, and I was surprised by the low cost. Thanks a lot guys.-Brother Cycles Mr Wooden Frameset>
Wim Lintermans
£699.00
{
"@context": "http:/
Amazing service and quick turnaround! Dropped my bike off at 6:30pm (closing time) one day and it had been fully serviced and sorted out by the next morning! Top service and reasonable prices. Will come back here for all bike servicing needs in the future no doubt! Guys are incredibly knowledgeable also.
PurpleChristian Grahamconsole.log("pr-product-page");
Bikes are hard to come by at the moment. Andy and Dougie at ProjektRide were amazing in sourcing a frame and a build kit, then marrying them up to create a fantastic bike. They were really attentive to sizing and fitting, based on my riding style. Extra Large
Matt Wilkes
Workshop Prices