Gears & Drivetra in
Components

Would you like to add on any equipment?
Hire Lazer Compact Helmet < a class="product__media product__media--featured" href="/collections/accessories-bike-packing/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)"> Hire Lazer Compact Helmet Hire Lazer Compact Helmet Black
<div class="featured-image__bg bg-pos-center-center" style="background-image: url('//projektride.co.uk/cdn/shop/files/2571D9FF-E9AE-4004-9A55-C7FD4DD999D6_2048x.jpg?v=1640941114');"> Header Image

Surly Nice Rack - FrontPrivacy Policy

Cookie Policy

82 Newington Road
Edinburgh
Email
.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"wrap-details read-more\" data-mce-fragment=\"1\"\u003e\n\u003ch3 data-mce-fragment=\"1\"\u003eTECHNICAL\u003ci class=\"tab-arrow\" data-mce-fragment=\"1\"\u003e\u003c\/i\u003e\n\u003c\/h3\u003e\n\u003cdiv data-mce-fragment=\"1\"\u003e\n\u003cp data-mce-fragment=\"1\"\u003e\u003cstrong data-mce-fragment=\"1\"\u003eMaterials\u003c\/strong\u003e\u003c\/p\u003e\n\u003cp data-mce-fragment=\"1\"\u003ePVC free construction and certified safe to EU and FDA standards.\u003c\/p\u003e\n\u003cp data-mce-fragment=\"1\"\u003e\u003cstrong data-mce-fragment=\"1\"\u003eCare\u003c\/strong\u003e\u003c\/p\u003e\n\u003cp data-mce-fragment=\"1\"\u003eTo clean, fill the bladder with warm water. Add lemon juice (one lemon is plenty) and two tablespoons of baking soda and leave the solution in the bladder overnight. Finally, drain the solution and rinse the bladder thoroughly.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e","published_at":"2023-06-25T12:3 4:48+01:00","created_at":"2023-06-25T12:34:48+01:00","vendor":"Apidura","type":"bags","tags":["Apidura","Bags and Transportation","Bike Packing","spo-cs-disabled","spo-default","spo-disabled","spo-notify-me-disabled"],"price":3900,"price_min":3900,"price_max":4900,"available":true,"price_varies":true,"compare_at_price":null,"compare_at_price_min":0,"compare_at_price_max":0,"compare_at_price_varies":false,"variants":[{"id":44140388155618,"title":"1.5L","option1":"1.5L","option2":null,"option3":null,"sku":"FYM","requires_shipping":true,"taxable":true,"featured_image":{"id":39357308895458,"product_id":8108884623586,"position":2,"created_at":"2023-06-25T12:36:06+01:00","updated_at":"2023-06-25T12:36:07+01:00","alt":null,"width":1234,"height":942,"src":"\/\/projektride.co.uk\/cdn\/shop\/files\/Screenshot2023-06-25at12.36.03.png?v=1687692967","variant_ids":[44140388155618]},"available":true,"name":"FRAME PACK HYDRATION BLADDER - 1.5L","public_title":"1.5L","options":["1.5L"],"price":3900,"weight":0,"compare_at_pricified safe to EU and FDA standards.\u003c\/p\u003e\n\u003cp data-mce-fragment=\"1\"\u003e\u003cstrong data-mce-fragment=\"1\"\u003eCare\u003c\/strong\u003e\u003c\/p\u003e\n\u003cp data-mce-fragment=\"1\"\u003eTo clean, fill the bladder with warm water. Add lemon juice (one lemon is plenty) and two tablespoons of baking soda and leave the solution in the bladder overnight. Finally, drain the solution and rinse the bladder thoroughly.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e"}; window._RestockRocketConfig.variantsInventoryPolicy = {44140388155618 : "continue",44140388188386 : "continue",}; window._RestockRocketConfig.variantsInventoryQuantity = {44140388155618 : parseInt("100"),44140388188386 : parseInt("100"),}; window._RestockRocketConfig.variantsPreorderCount = {44140388155618 : parseInt(""),44140388188386 : parseInt(""),}; window._RestockRocketConfig.variantsPreorderCountForMarket = {44140388155618 : null,44140388188386 : null,}; window._RestockRocketConfig.variantsPreorderMa xCount = {44140388155618 : parseInt(""),44140388188386 : parseInt(""),}; window._RestockRocketConfig.variantsPreorderMaxCountForMarket = {44140388155618 : null,44140388188386 : null,}; window._RestockRocketConfig.variantsShippingText = {44140388155618 : "",44140388188386 : "",}; window._RestockRocketConfig.variantsShippingTextForMarket = {44140388155618 : null,44140388188386 : null,}; window._RestockRocketConfig.selected_variant_id = 44140388155618; 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/019c4de0-280f-760f-b566-2e2f8e837eb8/restock-rocket-shopify-454/assets/restockrocket-product.js' window._RestockRocketConfig.scriptUrlCollection = 'https://cdn.shopify.com/extensions/019c4de0-280f-760f-b566-2e2f8e837eb8/restock-rocket-shopify-454/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); // Current time in seconds const liquidCacheAge = now - liquidRenderedAt; // Age in seconds // Handle client clock ahea d of server if (liquidCacheAge // 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 ||

Product Details

 

Surly Racks are well-thought-out, durable, expedition-worthy racks that work with most panniers. While their racks aren’t limited solely to heavy duty touring, that is what they were designed for.

When you’re out on the road, the best option is to never ever have anything ever go wrong ever. Right? That’s never a guarantee though; so having something that you can repair if it does brake can be pretty clutch. Thusly, the main bodies of Surly's front and rear racks are made from tubular CroMoly steel with stainless hardware. This means you can probably find someone out there that can torch it back into one piece in the rare instance things go south.

The front Rack is height adjustable and provides either a low or high pannier mounting position, which can be handy depending on terrain. When the ground gets rough, keep your gear high and dry. When the path is smooth and easy, you can load things low and keep everything balanced and stable, with the platform above the wheel providing yet more space for more stuff. It’s worth mentioning the Front Rack hardware has been redesigned to be simpler to attach and more compatible with things like disc calipers and fenders. Surly have also made attachment plates specifically for our Uni-Crown forks for yet more fork compatibility. This simpler design has fewer moving parts and costs less to manufacture, ergo costs less for you to purchase.

The Surly front rack WILL work with disc brakes on our Troll, Ogre, and Disc Trucker frames. It may take a bit of work to get clearance around the front caliper since the many different calipers out there are many different shapes. The new attachment plates will limit any DIY ingenuity you might need, but if you need to throw a washer or three behind the lower left bolt where the plate attaches to the fork dropout, that’s not a big deal.

Front Rack specifications:

  • Tubing diameter: 10mm
  • Platform dimensions: 230 x 170mm
  • Weight: 1382g

FAQ

Questions and answers