{"product_id":"ctr-x280-ultra-light-carbon-rims","title":"CTR X280 Carbon XC Rims — 280g Ultralight Asymmetric 29\" Set (Hookless, 28H)","description":"\u003cp class=\"font-claude-response-body break-words whitespace-normal\"\u003e\u003cstrong\u003eBuilt to disappear beneath you.\u003c\/strong\u003e\u003c\/p\u003e\n\u003cp class=\"font-claude-response-body break-words whitespace-normal\"\u003eThe CTR X280 is our answer to a simple question: how light can a cross-country rim get before it stops being tough enough to race? At 280g per rim, the X280 sits among the lightest 29\" rims available in South Africa — engineered for riders who feel every gram on the climbs and demand it back on the descents.\u003c\/p\u003e\n\u003cp class=\"font-claude-response-body break-words whitespace-normal\"\u003eSold as a matched set of 2 rims. Backed by a \u003cstrong\u003e2-year manufacturer warranty\u003c\/strong\u003e.\u003c\/p\u003e\n\u003cp class=\"font-claude-response-body break-words whitespace-normal\"\u003e\u003cstrong\u003eWhy racers choose the X280:\u003c\/strong\u003e\u003c\/p\u003e\n\u003cul 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\"\u003e\n\u003cli class=\"font-claude-response-body whitespace-normal break-words pl-2\"\u003e\n\u003cstrong\u003eFeatherweight construction\u003c\/strong\u003e — 280g ±10g per rim, shaving real seconds off every climb without sacrificing stiffness\u003c\/li\u003e\n\u003cli class=\"font-claude-response-body whitespace-normal break-words pl-2\"\u003e\n\u003cstrong\u003eAsymmetric rim design\u003c\/strong\u003e — offset spoke bed evens out spoke tension between drive and non-drive sides, building a stronger, more balanced wheel that stays true longer\u003c\/li\u003e\n\u003cli class=\"font-claude-response-body whitespace-normal break-words pl-2\"\u003e\n\u003cstrong\u003eHookless bead design\u003c\/strong\u003e — cleaner tubeless setup, stronger bead seat, lower failure risk under pressure\u003c\/li\u003e\n\u003cli class=\"font-claude-response-body whitespace-normal break-words pl-2\"\u003e\n\u003cstrong\u003eEmbedded spoke design\u003c\/strong\u003e — reduces stress risers at the spoke bed for a stronger, more durable build\u003c\/li\u003e\n\u003cli class=\"font-claude-response-body whitespace-normal break-words pl-2\"\u003e\n\u003cstrong\u003eWide, modern profile\u003c\/strong\u003e — 30mm inner \/ 35.6mm outer width for better tyre support and cornering confidence at speed\u003c\/li\u003e\n\u003cli class=\"font-claude-response-body whitespace-normal break-words pl-2\"\u003e\n\u003cstrong\u003e22mm rim depth\u003c\/strong\u003e — tuned for lateral stiffness without adding unnecessary weight\u003c\/li\u003e\n\u003cli class=\"font-claude-response-body whitespace-normal break-words pl-2\"\u003e\n\u003cstrong\u003e28H drilling\u003c\/strong\u003e — proven lacing pattern for XC-specific load paths\u003c\/li\u003e\n\u003cli class=\"font-claude-response-body whitespace-normal break-words pl-2\"\u003e\n\u003cstrong\u003e110 Joule impact rating\u003c\/strong\u003e — built to survive the rock gardens and root sections XC racing throws at you\u003c\/li\u003e\n\u003cli class=\"font-claude-response-body whitespace-normal break-words pl-2\"\u003e\n\u003cstrong\u003eTubeless-ready\u003c\/strong\u003e for 2.35\"–2.4\" tyres — the sweet spot for XCO and XCM tyre choice\u003c\/li\u003e\n\u003cli class=\"font-claude-response-body whitespace-normal break-words pl-2\"\u003e\n\u003cstrong\u003e2-year manufacturer warranty\u003c\/strong\u003e — race with confidence, backed by CTR\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003cp class=\"font-claude-response-body break-words whitespace-normal\"\u003e\u003cstrong\u003eSpecs at a glance\u003c\/strong\u003e\u003c\/p\u003e\n\u003cdiv class=\"overflow-x-auto w-full px-2 mb-6\"\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 class=\"text-text-100 border-b-0.5 border-[hsl(var(--border-300)\/0.6)] py-2 pr-4 align-top font-bold\" scope=\"col\"\u003eSpec\u003c\/th\u003e\n\u003cth class=\"text-text-100 border-b-0.5 border-[hsl(var(--border-300)\/0.6)] py-2 pr-4 align-top font-bold\" scope=\"col\"\u003eDetail\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\"\u003eWheel size\u003c\/td\u003e\n\u003ctd class=\"border-b-0.5 border-[hsl(var(--border-300)\/0.3)] py-2 pr-4 align-top\"\u003e29\"\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\"\u003eRim profile\u003c\/td\u003e\n\u003ctd class=\"border-b-0.5 border-[hsl(var(--border-300)\/0.3)] py-2 pr-4 align-top\"\u003eAsymmetric\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\"\u003eInner width\u003c\/td\u003e\n\u003ctd class=\"border-b-0.5 border-[hsl(var(--border-300)\/0.3)] py-2 pr-4 align-top\"\u003e30mm\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\"\u003eOuter width\u003c\/td\u003e\n\u003ctd class=\"border-b-0.5 border-[hsl(var(--border-300)\/0.3)] py-2 pr-4 align-top\"\u003e35.6mm\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\"\u003eRim depth\u003c\/td\u003e\n\u003ctd class=\"border-b-0.5 border-[hsl(var(--border-300)\/0.3)] py-2 pr-4 align-top\"\u003e22mm\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\"\u003eERD\u003c\/td\u003e\n\u003ctd class=\"border-b-0.5 border-[hsl(var(--border-300)\/0.3)] py-2 pr-4 align-top\"\u003e591.6mm\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\"\u003eSpoke holes\u003c\/td\u003e\n\u003ctd class=\"border-b-0.5 border-[hsl(var(--border-300)\/0.3)] py-2 pr-4 align-top\"\u003e28H\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\"\u003eWeight\u003c\/td\u003e\n\u003ctd class=\"border-b-0.5 border-[hsl(var(--border-300)\/0.3)] py-2 pr-4 align-top\"\u003e280g ± 10g\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\"\u003eBead type\u003c\/td\u003e\n\u003ctd class=\"border-b-0.5 border-[hsl(var(--border-300)\/0.3)] py-2 pr-4 align-top\"\u003eHookless\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\"\u003eImpact rating\u003c\/td\u003e\n\u003ctd class=\"border-b-0.5 border-[hsl(var(--border-300)\/0.3)] py-2 pr-4 align-top\"\u003e110 Joules\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\"\u003eTyre compatibility\u003c\/td\u003e\n\u003ctd class=\"border-b-0.5 border-[hsl(var(--border-300)\/0.3)] py-2 pr-4 align-top\"\u003e2.35\"–2.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\"\u003eMax rider weight\u003c\/td\u003e\n\u003ctd class=\"border-b-0.5 border-[hsl(var(--border-300)\/0.3)] py-2 pr-4 align-top\"\u003e130kg\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\"\u003eDiscipline\u003c\/td\u003e\n\u003ctd class=\"border-b-0.5 border-[hsl(var(--border-300)\/0.3)] py-2 pr-4 align-top\"\u003eCross Country, XCO, XCM\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\"\u003eWarranty\u003c\/td\u003e\n\u003ctd class=\"border-b-0.5 border-[hsl(var(--border-300)\/0.3)] py-2 pr-4 align-top\"\u003e2-year manufacturer warranty\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003c\/tbody\u003e\n\u003c\/table\u003e\n\u003c\/div\u003e\n\u003cp class=\"font-claude-response-body break-words whitespace-normal\"\u003e\u003cstrong\u003eBuilt for racers, tested by racers.\u003c\/strong\u003e Every CTR product goes through real race-day miles before it reaches the shop floor — this rim carried our race team through their own XCO and XCM seasons before we put it up for sale.\u003c\/p\u003e","brand":"CrankTech Racing","offers":[{"title":"Default Title","offer_id":50907782316279,"sku":"CTRX280","price":16000.0,"currency_code":"ZAR","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0889\/4719\/6151\/files\/7F5A5551.jpg?v=1782933277","url":"https:\/\/cranktechracing.co.za\/products\/ctr-x280-ultra-light-carbon-rims","provider":"CrankTech Racing","version":"1.0","type":"link"}