{"product_id":"safi-works-g50-1-gravel-frameset-red-ochre","title":"Safi Works G50.1 Gravel Frameset - Red Ochre","description":"\u003cp class=\"font-claude-response-body break-words whitespace-normal\" dir=\"ltr\"\u003e\u003cstrong\u003e\u003cmeta charset=\"utf-8\"\u003ePre-order\u003cbr\u003eETA: Jan 2027\u003cbr\u003e\u003cbr\u003eFORM G50.1 — Steel Gravel Frameset\u003c\/strong\u003e\u003c\/p\u003e\n\u003cp class=\"font-claude-response-body break-words whitespace-normal\" dir=\"ltr\"\u003eBuilt in Copenhagen for riders who want to go further off the beaten path without giving up steel's signature ride feel. The G50.1 pairs a Columbus Spirit and Life tubed front triangle with a Safi-developed rear triangle, then layers on genuinely progressive geometry — a steeper seat tube, longer reach and higher stack — for a capable, all-day gravel position.\u003c\/p\u003e\n\u003cp class=\"font-claude-response-body break-words whitespace-normal\" dir=\"ltr\"\u003eEvery frameset-specific component — fork, head tube, dropouts and seatpost clamp — is designed in-house, yet stays fully compatible with aftermarket parts, so you can build it up exactly how you want without getting locked into proprietary solutions. With clearance for tyres up to 50 mm, it's ready for anything from fast gravel roads to genuinely rough terrain.\u003c\/p\u003e\n\u003cp class=\"font-claude-response-body break-words whitespace-normal\" dir=\"ltr\"\u003e\u003cstrong\u003eDetails\u003c\/strong\u003e\u003c\/p\u003e\n\u003cul dir=\"ltr\" class=\"[li_\u0026amp;]:mb-0 [li_\u0026amp;]:mt-1 [li_\u0026amp;]:gap-1 [\u0026amp;:not(:last-child)_ul]:pb-1 [\u0026amp;:not(:last-child)_ol]:pb-1 list-disc flex flex-col gap-1 pl-8 mb-3 print:block print:space-y-1\"\u003e\n\u003cli class=\"font-claude-response-body whitespace-normal break-words pl-2\"\u003eColumbus Spirit and Life steel tubing (front triangle) with a Sabi-developed rear triangle\u003c\/li\u003e\n\u003cli class=\"font-claude-response-body whitespace-normal break-words pl-2\"\u003eEngineered in Copenhagen, Denmark; manufactured in Taichung, Taiwan\u003c\/li\u003e\n\u003cli class=\"font-claude-response-body whitespace-normal break-words pl-2\"\u003eAvailable as a frameset with an in-house designed carbon fork\u003c\/li\u003e\n\u003cli class=\"font-claude-response-body whitespace-normal break-words pl-2\"\u003eOptional Polymer Workshop components available\u003c\/li\u003e\n\u003cli class=\"font-claude-response-body whitespace-normal break-words pl-2\"\u003eHeadset, top cone and bottom bracket available as add-ons\u003c\/li\u003e\n\u003cli class=\"font-claude-response-body whitespace-normal break-words pl-2\"\u003eED-coated for long-term corrosion protection\u003c\/li\u003e\n\u003cli class=\"font-claude-response-body whitespace-normal break-words pl-2\"\u003eFits tyres up to 50 mm with 6 mm clearance\u003c\/li\u003e\n\u003cli class=\"font-claude-response-body whitespace-normal break-words pl-2\"\u003eFrame and fork tested beyond ISO standards\u003c\/li\u003e\n\u003cli class=\"font-claude-response-body whitespace-normal break-words pl-2\"\u003eFully internal cable routing, T47\/68 bottom bracket\u003c\/li\u003e\n\u003cli class=\"font-claude-response-body whitespace-normal break-words pl-2\"\u003eCompatible with electronic groupsets only\u003cbr\u003e\n\u003c\/li\u003e\n\u003cli class=\"font-claude-response-body whitespace-normal break-words pl-2\"\u003eStock sizes, ready to ship\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003cp\u003e\u003cbr\u003e\u003cstrong\u003eGeometry\u003c\/strong\u003e\u003c\/p\u003e\n\u003ctable class=\"min-w-full border-collapse text-sm leading-[1.7] whitespace-normal\"\u003e\n\u003cthead class=\"text-left\"\u003e\n\u003ctr\u003e\n\u003cth scope=\"col\" class=\"text-text-100 border-b-0.5 border-[hsl(var(--border-300)\/0.6)] py-2 pr-4 align-top font-bold\"\u003eCode\u003c\/th\u003e\n\u003cth scope=\"col\" class=\"text-text-100 border-b-0.5 border-[hsl(var(--border-300)\/0.6)] py-2 pr-4 align-top font-bold\"\u003eMeasurement\u003c\/th\u003e\n\u003cth scope=\"col\" class=\"text-text-100 border-b-0.5 border-[hsl(var(--border-300)\/0.6)] py-2 pr-4 align-top font-bold\"\u003eS\u003c\/th\u003e\n\u003cth scope=\"col\" class=\"text-text-100 border-b-0.5 border-[hsl(var(--border-300)\/0.6)] py-2 pr-4 align-top font-bold\"\u003eM\u003c\/th\u003e\n\u003cth scope=\"col\" class=\"text-text-100 border-b-0.5 border-[hsl(var(--border-300)\/0.6)] py-2 pr-4 align-top font-bold\"\u003eL\u003c\/th\u003e\n\u003cth scope=\"col\" class=\"text-text-100 border-b-0.5 border-[hsl(var(--border-300)\/0.6)] py-2 pr-4 align-top font-bold\"\u003eXL\u003c\/th\u003e\n\u003c\/tr\u003e\n\u003c\/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd class=\"border-b-0.5 border-[hsl(var(--border-300)\/0.3)] py-2 pr-4 align-top\"\u003ea\u003c\/td\u003e\n\u003ctd class=\"border-b-0.5 border-[hsl(var(--border-300)\/0.3)] py-2 pr-4 align-top\"\u003eSeat tube length\u003c\/td\u003e\n\u003ctd class=\"border-b-0.5 border-[hsl(var(--border-300)\/0.3)] py-2 pr-4 align-top\"\u003e515\u003c\/td\u003e\n\u003ctd class=\"border-b-0.5 border-[hsl(var(--border-300)\/0.3)] py-2 pr-4 align-top\"\u003e535\u003c\/td\u003e\n\u003ctd class=\"border-b-0.5 border-[hsl(var(--border-300)\/0.3)] py-2 pr-4 align-top\"\u003e555\u003c\/td\u003e\n\u003ctd class=\"border-b-0.5 border-[hsl(var(--border-300)\/0.3)] py-2 pr-4 align-top\"\u003e585\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd class=\"border-b-0.5 border-[hsl(var(--border-300)\/0.3)] py-2 pr-4 align-top\"\u003eb\u003c\/td\u003e\n\u003ctd class=\"border-b-0.5 border-[hsl(var(--border-300)\/0.3)] py-2 pr-4 align-top\"\u003eTop tube length\u003c\/td\u003e\n\u003ctd class=\"border-b-0.5 border-[hsl(var(--border-300)\/0.3)] py-2 pr-4 align-top\"\u003e512.7\u003c\/td\u003e\n\u003ctd class=\"border-b-0.5 border-[hsl(var(--border-300)\/0.3)] py-2 pr-4 align-top\"\u003e538.7\u003c\/td\u003e\n\u003ctd class=\"border-b-0.5 border-[hsl(var(--border-300)\/0.3)] py-2 pr-4 align-top\"\u003e557.2\u003c\/td\u003e\n\u003ctd class=\"border-b-0.5 border-[hsl(var(--border-300)\/0.3)] py-2 pr-4 align-top\"\u003e577.9\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd class=\"border-b-0.5 border-[hsl(var(--border-300)\/0.3)] py-2 pr-4 align-top\"\u003ec\u003c\/td\u003e\n\u003ctd class=\"border-b-0.5 border-[hsl(var(--border-300)\/0.3)] py-2 pr-4 align-top\"\u003eStack\u003c\/td\u003e\n\u003ctd class=\"border-b-0.5 border-[hsl(var(--border-300)\/0.3)] py-2 pr-4 align-top\"\u003e539.8\u003c\/td\u003e\n\u003ctd class=\"border-b-0.5 border-[hsl(var(--border-300)\/0.3)] py-2 pr-4 align-top\"\u003e555\u003c\/td\u003e\n\u003ctd class=\"border-b-0.5 border-[hsl(var(--border-300)\/0.3)] py-2 pr-4 align-top\"\u003e575\u003c\/td\u003e\n\u003ctd class=\"border-b-0.5 border-[hsl(var(--border-300)\/0.3)] py-2 pr-4 align-top\"\u003e605\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd class=\"border-b-0.5 border-[hsl(var(--border-300)\/0.3)] py-2 pr-4 align-top\"\u003ed\u003c\/td\u003e\n\u003ctd class=\"border-b-0.5 border-[hsl(var(--border-300)\/0.3)] py-2 pr-4 align-top\"\u003eReach\u003c\/td\u003e\n\u003ctd class=\"border-b-0.5 border-[hsl(var(--border-300)\/0.3)] py-2 pr-4 align-top\"\u003e385\u003c\/td\u003e\n\u003ctd class=\"border-b-0.5 border-[hsl(var(--border-300)\/0.3)] py-2 pr-4 align-top\"\u003e395\u003c\/td\u003e\n\u003ctd class=\"border-b-0.5 border-[hsl(var(--border-300)\/0.3)] py-2 pr-4 align-top\"\u003e403\u003c\/td\u003e\n\u003ctd class=\"border-b-0.5 border-[hsl(var(--border-300)\/0.3)] py-2 pr-4 align-top\"\u003e410\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd class=\"border-b-0.5 border-[hsl(var(--border-300)\/0.3)] py-2 pr-4 align-top\"\u003ee\u003c\/td\u003e\n\u003ctd class=\"border-b-0.5 border-[hsl(var(--border-300)\/0.3)] py-2 pr-4 align-top\"\u003eSeat tube angle\u003c\/td\u003e\n\u003ctd class=\"border-b-0.5 border-[hsl(var(--border-300)\/0.3)] py-2 pr-4 align-top\"\u003e76.7°\u003c\/td\u003e\n\u003ctd class=\"border-b-0.5 border-[hsl(var(--border-300)\/0.3)] py-2 pr-4 align-top\"\u003e75.5°\u003c\/td\u003e\n\u003ctd class=\"border-b-0.5 border-[hsl(var(--border-300)\/0.3)] py-2 pr-4 align-top\"\u003e75°\u003c\/td\u003e\n\u003ctd class=\"border-b-0.5 border-[hsl(var(--border-300)\/0.3)] py-2 pr-4 align-top\"\u003e74.5°\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd class=\"border-b-0.5 border-[hsl(var(--border-300)\/0.3)] py-2 pr-4 align-top\"\u003ef\u003c\/td\u003e\n\u003ctd class=\"border-b-0.5 border-[hsl(var(--border-300)\/0.3)] py-2 pr-4 align-top\"\u003eHead tube angle\u003c\/td\u003e\n\u003ctd class=\"border-b-0.5 border-[hsl(var(--border-300)\/0.3)] py-2 pr-4 align-top\"\u003e71.5°\u003c\/td\u003e\n\u003ctd class=\"border-b-0.5 border-[hsl(var(--border-300)\/0.3)] py-2 pr-4 align-top\"\u003e72.3°\u003c\/td\u003e\n\u003ctd class=\"border-b-0.5 border-[hsl(var(--border-300)\/0.3)] py-2 pr-4 align-top\"\u003e72.6°\u003c\/td\u003e\n\u003ctd class=\"border-b-0.5 border-[hsl(var(--border-300)\/0.3)] py-2 pr-4 align-top\"\u003e72.9°\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd class=\"border-b-0.5 border-[hsl(var(--border-300)\/0.3)] py-2 pr-4 align-top\"\u003eg\u003c\/td\u003e\n\u003ctd class=\"border-b-0.5 border-[hsl(var(--border-300)\/0.3)] py-2 pr-4 align-top\"\u003eHead tube length\u003c\/td\u003e\n\u003ctd class=\"border-b-0.5 border-[hsl(var(--border-300)\/0.3)] py-2 pr-4 align-top\"\u003e111.9\u003c\/td\u003e\n\u003ctd class=\"border-b-0.5 border-[hsl(var(--border-300)\/0.3)] py-2 pr-4 align-top\"\u003e127\u003c\/td\u003e\n\u003ctd class=\"border-b-0.5 border-[hsl(var(--border-300)\/0.3)] py-2 pr-4 align-top\"\u003e150\u003c\/td\u003e\n\u003ctd class=\"border-b-0.5 border-[hsl(var(--border-300)\/0.3)] py-2 pr-4 align-top\"\u003e180.2\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd class=\"border-b-0.5 border-[hsl(var(--border-300)\/0.3)] py-2 pr-4 align-top\"\u003eh\u003c\/td\u003e\n\u003ctd class=\"border-b-0.5 border-[hsl(var(--border-300)\/0.3)] py-2 pr-4 align-top\"\u003eWheelbase\u003c\/td\u003e\n\u003ctd class=\"border-b-0.5 border-[hsl(var(--border-300)\/0.3)] py-2 pr-4 align-top\"\u003e1009.7\u003c\/td\u003e\n\u003ctd class=\"border-b-0.5 border-[hsl(var(--border-300)\/0.3)] py-2 pr-4 align-top\"\u003e1020.1\u003c\/td\u003e\n\u003ctd class=\"border-b-0.5 border-[hsl(var(--border-300)\/0.3)] py-2 pr-4 align-top\"\u003e1033\u003c\/td\u003e\n\u003ctd class=\"border-b-0.5 border-[hsl(var(--border-300)\/0.3)] py-2 pr-4 align-top\"\u003e1046.2\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd class=\"border-b-0.5 border-[hsl(var(--border-300)\/0.3)] py-2 pr-4 align-top\"\u003ei\u003c\/td\u003e\n\u003ctd class=\"border-b-0.5 border-[hsl(var(--border-300)\/0.3)] py-2 pr-4 align-top\"\u003eFork rake \/ length\u003c\/td\u003e\n\u003ctd class=\"border-b-0.5 border-[hsl(var(--border-300)\/0.3)] py-2 pr-4 align-top\"\u003e50 \/ 392\u003c\/td\u003e\n\u003ctd class=\"border-b-0.5 border-[hsl(var(--border-300)\/0.3)] py-2 pr-4 align-top\"\u003e50 \/ 392\u003c\/td\u003e\n\u003ctd class=\"border-b-0.5 border-[hsl(var(--border-300)\/0.3)] py-2 pr-4 align-top\"\u003e50 \/ 392\u003c\/td\u003e\n\u003ctd class=\"border-b-0.5 border-[hsl(var(--border-300)\/0.3)] py-2 pr-4 align-top\"\u003e50 \/ 392\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd class=\"border-b-0.5 border-[hsl(var(--border-300)\/0.3)] py-2 pr-4 align-top\"\u003ej\u003c\/td\u003e\n\u003ctd class=\"border-b-0.5 border-[hsl(var(--border-300)\/0.3)] py-2 pr-4 align-top\"\u003eTrail\u003c\/td\u003e\n\u003ctd class=\"border-b-0.5 border-[hsl(var(--border-300)\/0.3)] py-2 pr-4 align-top\"\u003e69\u003c\/td\u003e\n\u003ctd class=\"border-b-0.5 border-[hsl(var(--border-300)\/0.3)] py-2 pr-4 align-top\"\u003e64\u003c\/td\u003e\n\u003ctd class=\"border-b-0.5 border-[hsl(var(--border-300)\/0.3)] py-2 pr-4 align-top\"\u003e62\u003c\/td\u003e\n\u003ctd class=\"border-b-0.5 border-[hsl(var(--border-300)\/0.3)] py-2 pr-4 align-top\"\u003e60\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd class=\"border-b-0.5 border-[hsl(var(--border-300)\/0.3)] py-2 pr-4 align-top\"\u003ek\u003c\/td\u003e\n\u003ctd class=\"border-b-0.5 border-[hsl(var(--border-300)\/0.3)] py-2 pr-4 align-top\"\u003eChainstay length\u003c\/td\u003e\n\u003ctd class=\"border-b-0.5 border-[hsl(var(--border-300)\/0.3)] py-2 pr-4 align-top\"\u003e424\u003c\/td\u003e\n\u003ctd class=\"border-b-0.5 border-[hsl(var(--border-300)\/0.3)] py-2 pr-4 align-top\"\u003e426\u003c\/td\u003e\n\u003ctd class=\"border-b-0.5 border-[hsl(var(--border-300)\/0.3)] py-2 pr-4 align-top\"\u003e426\u003c\/td\u003e\n\u003ctd class=\"border-b-0.5 border-[hsl(var(--border-300)\/0.3)] py-2 pr-4 align-top\"\u003e426\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd class=\"border-b-0.5 border-[hsl(var(--border-300)\/0.3)] py-2 pr-4 align-top\"\u003el\u003c\/td\u003e\n\u003ctd class=\"border-b-0.5 border-[hsl(var(--border-300)\/0.3)] py-2 pr-4 align-top\"\u003eFront center\u003c\/td\u003e\n\u003ctd class=\"border-b-0.5 border-[hsl(var(--border-300)\/0.3)] py-2 pr-4 align-top\"\u003e598.3\u003c\/td\u003e\n\u003ctd class=\"border-b-0.5 border-[hsl(var(--border-300)\/0.3)] py-2 pr-4 align-top\"\u003e605.4\u003c\/td\u003e\n\u003ctd class=\"border-b-0.5 border-[hsl(var(--border-300)\/0.3)] py-2 pr-4 align-top\"\u003e617.3\u003c\/td\u003e\n\u003ctd class=\"border-b-0.5 border-[hsl(var(--border-300)\/0.3)] py-2 pr-4 align-top\"\u003e630.4\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd class=\"border-b-0.5 border-[hsl(var(--border-300)\/0.3)] py-2 pr-4 align-top\"\u003em\u003c\/td\u003e\n\u003ctd class=\"border-b-0.5 border-[hsl(var(--border-300)\/0.3)] py-2 pr-4 align-top\"\u003eBottom bracket drop\u003c\/td\u003e\n\u003ctd class=\"border-b-0.5 border-[hsl(var(--border-300)\/0.3)] py-2 pr-4 align-top\"\u003e77\u003c\/td\u003e\n\u003ctd class=\"border-b-0.5 border-[hsl(var(--border-300)\/0.3)] py-2 pr-4 align-top\"\u003e75\u003c\/td\u003e\n\u003ctd class=\"border-b-0.5 border-[hsl(var(--border-300)\/0.3)] py-2 pr-4 align-top\"\u003e75\u003c\/td\u003e\n\u003ctd class=\"border-b-0.5 border-[hsl(var(--border-300)\/0.3)] py-2 pr-4 align-top\"\u003e72\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003c\/tbody\u003e\n\u003c\/table\u003e\n\u003cp\u003e\u003cbr\u003e\u003cmeta charset=\"utf-8\"\u003e\u003c\/p\u003e\n\u003cp\u003e\u003cstrong\u003eMfr Claimed Weight\u003c\/strong\u003e\u003cbr\u003eFrame: 1.9 kg | Fork: 460 g\u003c\/p\u003e","brand":"Safi Works","offers":[{"title":"S","offer_id":52104258978008,"sku":null,"price":4265.0,"currency_code":"AUD","in_stock":true},{"title":"M","offer_id":52104259010776,"sku":null,"price":4265.0,"currency_code":"AUD","in_stock":true},{"title":"L","offer_id":52104259043544,"sku":null,"price":4265.0,"currency_code":"AUD","in_stock":true},{"title":"XL","offer_id":52104259076312,"sku":null,"price":4265.0,"currency_code":"AUD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/2348\/1571\/files\/G50-1_RedOchre_frame1.webp?v=1785470767","url":"https:\/\/ccache.cc\/products\/safi-works-g50-1-gravel-frameset-red-ochre","provider":"CCACHE","version":"1.0","type":"link"}