When you buy a Surly from ProjektRide, we give you free running in service.
Sulry bikes are super well built although if you were to have any issues, Surly offer a 3 year warranty on all frames which can be processed from ourselves.
Im looking for a full custom build?
We love custom building these Surlys. Get in touch with the team to find out more about custom building your dream Surly. Please check out some of our custom builds:
https://projektride.co.uk/pages/custom-builds
To find out more about Surly bikes, please visit:
Ribbedhttps://surlybikes.com/ ProjektRidehas 8 distinct ribs that optimize shock absorption and grip! - 34mmBike shop Edinburgh, Scotland
01313745324
[email protected]
80 Grams
I'm looking to find out more information about a product, where can I find this?
Please get in touch with a member of the team either by phone (
Standard Grip Length - 5 1/8"01313745324
) or email (
[email protected]
) where on of the team will be more than happy to help.
ProjektRide Bike Shop Edinburgh
Installed Dia. 34mm
I'm looking to buy this product, when will it arrive and how much does postage cost?
If the item is showing in stock, we aim to post the product within 24 hours. Please allow 5 working days to receive the item.
Weight plus or minus 5%Postage is free on orders over £50. Orders under £50, our postage charge is £3.99.
We also have a physical store, if you are local please pop in -
ProjektRide Bike Shop Edinburgh
82 Newington Road, EH91QN, Edinburgh.
Made for 22mm bars (can fit applications down to 19mm)
,"increment":1}},{"id":44210361303266,"title":"54cm","option1":"54cm","option2":null,"option3":null,"sku":"","requires_shipping":true,"taxable":true,"featured_image":null,"available":false,"name":"Surly Midnight Special - Frameset - 54cm","public_title":"54cm","options":["54cm"],"price":89999,"weight":0,"compare_at_price":null,"inventory_management":"shopify","barcode":"","requires_selling_plan":false,"selling_plan_allocations":[],"quantity_rule":{"min":1,"max":null,"increment":1}},{"id":44210361336034,"title":"56cm","option1":"56cm","option2":null,"option3":null,"sku":"","requires_shipping":true,"taxable":true,"featured_image":null,"available":false,"name":"Surly Midnight Special - Frameset - 56cm","public_title":"56cm","options":["56cm"],"price":89999,"weight":0,"compare_at_price":null,"inventory_management":"shopify","barcode":"","requires_selling_plan":false,"selling_plan_allocations":[],"quantity_rule":{"min":1,"max":null,"increment":1}},{"id":44210361368802,"title":"58cm","option1":"58cm","option2":null,"option3":null,"sku":"","requires_shipping":true,"taxable":true,"featured_image":null,"available":false,"name":"Surly Midnight Special - Frameset - 58cm","public_title":"58cm","options":["58cm"],"price":89999,"weight":0,"compare_at_price":null,"inventory_management":"shopify","barcode":"","requires_selling_plan":false,"selling_plan_allocations":[],"quantity_rule":{"min":1,"max":null,"increment":1}},{"id":44210361401570,"title":"60cm","option1":"60cm","option2":null,"option3":null,"sku":"","requires_shipping":true,"taxable":true,"featured_image":null,"available":false,"name":"Surly Midnight Special - Frameset - 60cm","public_title":"60cm","options":["60cm"],"price":89999,"weight":0,"compare_at_price":null,"inventory_management":"shopify","barcode":"","requires_selling_plan":false,"selling_plan_allocations":[],"quantity_rule":{"min":1,"max":null,"increment":1}},{"id":44210361434338,"title":"64cm","option1":"64cm","option2":null,"option3":null,"sku":"","requires_shipping":true,"taxable":true,"featured_image":nu
ll,"available":false,"name":"Surly Midnight Special - Frameset - 64cm","public_title":"64cm","options":["64cm"],"price":89999,"weight":0,"compare_at_price":null,"inventory_management":"shopify","barcode":"","requires_selling_plan":false,"selling_plan_allocations":[],"quantity_rule":{"min":1,"max":null,"increment":1}}],"images":["\/\/projektride.co.uk\/cdn\/shop\/files\/Screenshot2023-08-09at13.16.15.png?v=1691583383"],"featured_image":"\/\/projektride.co.uk\/cdn\/shop\/files\/Screenshot2023-08-09at13.16.15.png?v=1691583383","options":["Size"],"media":[{"alt":null,"id":32068267049186,"position":1,"preview_image":{"aspect_ratio":1.058,"height":1078,"width":1140,"src":"\/\/projektride.co.uk\/cdn\/shop\/files\/Screenshot2023-08-09at13.16.15.png?v=1691583383"},"aspect_ratio":1.058,"height":1078,"media_type":"image","src":"\/\/projektride.co.uk\/cdn\/shop\/files\/Screenshot2023-08-09at13.16.15.png?v=1691583383","width":1140}],"requires_selling_plan":false,"selling_plan_groups":[],"content":"\u003cmeta charset=\"utf-8\"\u003e\n\u003cdiv class=\"col-md-8\" data-mce-fragment=\"1\"\u003e\n\u003cp data-mce-fragment=\"1\"\u003eThe Midnight Special is a road plus bike designed to provide comfort and speed on those all-day rides that extend well beyond fresh pavement. It excels on pot-holed, deteriorating pavement and the occasional long stretch of gravel. With 650b road plus tyres The Midnight Special eats up road chatter and absorbs all the bumps in the road for a much more comfortable ride.\u003c\/p\u003e\n\u003cul class=\"bullet-points bullet-points-collapsed\" data-mce-fragment=\"1\"\u003e\n\u003cli class=\"model-bullet\" data-mce-fragment=\"1\"\u003e100% Surly Chromoly frame, main triangle is double-butted; 1-1\/8\" threadless Chromoly fork\u003c\/li\u003e\n\u003cli class=\"model-bullet\" data-mce-fragment=\"1\"\u003eRack, fender, and three sets of water bottle mounts\u003c\/li\u003e\n\u003cli class=\"model-bullet\" data-mce-fragment=\"1\"\u003eFlat-Mount disc brakes\u003c\/li\u003e\n\u003cli class=\"model-bullet\" data
-mce-fragment=\"1\"\u003e44mm head tube\u003c\/li\u003e\n\u003cli class=\"model-bullet\" data-mce-fragment=\"1\"\u003eTtre Clearance: 27.5 x 2.35\" (w\/omudguards), 700c x 42mm (w\/omudguards), 650b x 50 (w\/mudguards), 700c x 38mm (w\/mudguards)\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"col-md-4\" data-mce-fragment=\"1\"\u003e\n\u003cdiv class=\"logo-brand\" data-mce-fragment=\"1\"\u003e\u003c\/div\u003e\n\u003c\/div\u003e"};
window._RestockRocketConfig.variantsInventoryPolicy = {44210361204962 : "deny",44210361237730 : "deny",44210361270498 : "deny",44210361303266 : "deny",44210361336034 : "deny",44210361368802 : "deny",44210361401570 : "deny",44210361434338 : "deny",};
window._RestockRocketConfig.variantsInventoryQuantity = {44210361204962 : parseInt("0"),44210361237730 : parseInt("0"),44210361270498 : parseInt("0"),44210361303266 : parseInt("0"),44210361336034 : parseInt("0"),44210361368802 : parseInt("0"),44210361401570 : parseInt("0"),44210361434338 : parseInt("0"),};
window._RestockRocketConfig.variantsPreorderCount = {44210361204962 : parseInt(""),44210361237730 : parseInt(""),44210361270498 : parseInt(""),44210361303266 : parseInt(""),44210361336034 : parseInt(""),44210361368802 : parseInt(""),44210361401570 : parseInt(""),44210361434338 : parseInt(""),};
window._RestockRocketConfig.variantsPreorderCountForMarket = {44210361204962 : null,44210361237730 : null,44210361270498 : null,44210361303266 : null,44210361336034 : null,44210361368802 : null,44210361401570 : null,44210361434338 : null,};
window._RestockRocketConfig.variantsPreorderMaxCount = {44210361204962 : parseInt(""),44210361237730 : parseInt(""),44210361270498 : parseInt(""),44210361303266 : parseInt(""),44210361336034 : parseInt(""),44210361368802 : parseInt(""),44210361401570 : parseInt(""),44210361434338 : parseInt(""),};
window._RestockRocketConfig.variantsPreorderMaxCountForMarket = {44210361204962 : null,44210361237730 : null,44210361270498 : null,44210361303266 : null,44210361336034 :
null,44210361368802 : null,44210361401570 : null,44210361434338 : null,};
window._RestockRocketConfig.variantsShippingText = {44210361204962 : "",44210361237730 : "",44210361270498 : "",44210361303266 : "",44210361336034 : "",44210361368802 : "",44210361401570 : "",44210361434338 : "",};
window._RestockRocketConfig.variantsShippingTextForMarket = {44210361204962 : null,44210361237730 : null,44210361270498 : null,44210361303266 : null,44210361336034 : null,44210361368802 : null,44210361401570 : null,44210361434338 : null,};
window._RestockRocketConfig.selected_variant_id = 44210361204962;
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/019d8c88-5443-7fe6-b195-c434b5d26398/restockrocket-1-477/assets/restockrocket-product.js'
window._RestockRocketConfig.scriptUrlCollection = 'https://cdn.shopify.com/extensions/019d8c88-5443-7fe6-b195-c434b5d26398/restockrocket-1-477/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
const LIQUID_CACHE_MAX_AGE = 2 * 60 * 60; // 2 hours in seconds
// Calculate Liquid cache freshness once at initialization
const liquidRenderedAt = window._RestockRocketConfig.liquidRenderedAt;
// Validate timestamp and calculate cache age
if (!liquidRenderedAt || typeof liquidRenderedAt !== 'number' || isNaN(liquidRenderedAt)) {
console.debug('STOQ - Invalid or missing liquidRenderedAt timestamp, assuming fresh');
window._RestockRocketConfig.isLiquidCacheFresh = true;
} else {
const now = Math.floor(Date.now() / 1000); // C
urrent time in seconds
const liquidCacheAge = now - liquidRenderedAt; // Age in seconds
// Handle client clock ahead of server
if (liquidCacheAge <
0) {
console.debug(`STOQ - Client clock appears ahead of server by ${Math.abs(Math.round(liquidCacheAge / 60))} minutes, assuming cache fresh`);
window._RestockRocketConfig.isLiquidCacheFresh = true;
} else if (liquidCacheAge <
= LIQUID_CACHE_MAX_AGE) {
console.debug(`STOQ - Liquid cache is fresh (${Math.round(liquidCacheAge / 60)} minutes old)`);
window._RestockRocketConfig.isLiquidCacheFresh = true;
} else {
console.debug(`STOQ - Liquid cache is stale (${Math.round(liquidCacheAge / 60)} minutes old, max ${Math.round(LIQUID_CACHE_MAX_AGE / 60)} minutes)`);
window._RestockRocketConfig.isLiquidCacheFresh = false;
}
}
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, 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