Cyclocosm: Recent Episodes

None

the How The Race Was Won® cycling blog

View Details

IG Reels recapping the 2023 Giro d'Italia from the How The Race Was Won® Instagram account

The post Everything You Need to Know about the 2023 Giro d’Italia in How The Race Was Won® Instagram Reels appeared first on Cyclocosm.

View Details

$28 in hosting overage charges—that’s what the traffic bump from my hastily-assembled Strava piece cost me. (Tip Jar is over on right for desktop, bottom of the page for mobile.)

Strava’s Communication BreakdownMy point was not that the business is imploding (it isn’t) but that their messaging in response to price-hike blowback was whole-cloth bullshit (which it was!). As the comments section would indicate, someone of you got that, some of you didn’t, but everyone seemed to have an opinion.

And by everyone, I do also mean Strava, which posted a half-hinged, passive-aggressive rah-rah on LinkedIn of all places.

via r/StravaLoose on facts and closed to comments, it certainly seems to indicate the company’s still a far sight from squaring its shit away in the comms department. Might be time for another data dive to see what direction, exactly, those numbers are moving in.

How The Race Was Won-ishI have somehow managed to continue daily Instagram content (@howtheracewaswon), reaching over 2 million accounts and accumulating 11.4k followers so far (starting from 3500 or so on Jan 1). So that’s going pretty well, and beginning to include a little content that might seem familiar to long-time readers:

I was so tempted not to do Volta ao Algarve Stage 3 because it’s not even road season yet.That said, honestly no clue what the near future holds for Original Recipe How The Race Was Won® videos. Might get a clearer picture as I ramp things up again on YouTube. Also keep an ~~eye~~ ear open for some other revivals of vintage content…

Newsletters are the New PodcastsI have finally set up a newsletter, mostly because I think it’s a better way to push updates like this than a blog post. Sign-up and have my content delivered directly to your inbox, free from the whimsy of social media algorithm.

By continuing, you accept the privacy policyThe post #ContentUpdate – February 2023 appeared first on Cyclocosm.

View Details

Strava recently decided to raise its prices in the worst possible way—not telling anyone and letting the internet figure things out on its own. Wildly diverging price increase figures began rolling in from different places, leaving angry nerds to do what they do, and letting the meme pages feast on the scraps.

“That’s our full press statement” is Media Professional for “…and also, go fuck yourself”.Nice Of You To Get Back To UsApparently tech publication The Verge is a big enough deal that Strava felt compelled to make an actual reply:

“There are a lot of learnings here, but we chose to do it this way for very specific reasons,” Strava spokesperson Brian Bell tells The Verge. “We thought it was best for our business.” Bell says the company decided to alert members on a rolling basis because they chose to subscribe at different points throughout the years.

The company’s choice to claim the objectively terrible rollout was done on purpose is certainly something. But buried deeper in the article is a very alarming tidbit (emphasis mine).

Some of the confusion, he says, is because customers are seeing different rates of increase based on when they joined. The most impacted group, Bell says, will be the 30,000 users who started subscriptions before 2016. However, everyone affected will end up paying the same new price based on their region.

As someone who’s been digging into Strava’s user numbers on-and-off for the past decade, this 30,000 pre-2016 subscriptions number is alarmingly small.

A History of Paying Pre-2016 Strava UsersJanuary 2013In 2013, Strava told Outside that 20% of its users paid for the service, but declined to specify how many total users they had at that time. But because Strava assigns ids to new users with consecutive numbers, by looking when users in a given set of ids began uploading activities, we can infer total users in Jan 2013 were around 1.5 million, giving us a total of around 300,000 paying subscribers.

March 2015In 2015, Strava user and friend-of-Cyclocosm Mark Slavonia used a similar approach to arrive at a figure of 192,000 paying users from 8.2 million in total. That would seem to be a decline, but his sample size (384) was relatively small, and his “95% confidence” window returned between 65,000 and 311,600 paying users.

October 2017I ran my first automated sample of 5000 Strava users in 2017, and found that of the 2386 created pre-2016, 81 were premium members, or 3.3% The last pre-2016 user in that sample created his account on 31 Dec 2015, and had a user a user ID of 12657818. Multiplying that number by the premium rate gets us 429,707 paying pre-2016 subscribers.

July 2019After an Outside article repeated Mark’s 2015 analysis and found a paying subscriber rate 1.5-2 times what I had seen previously, I ran another automated 5000 user sample (it revealed at 3.16% subscriber rate, still well under Outside’s figures). While changes to Strava’s website removed the user creation date from what I could access, users ids below 12657818 (and thus created before December 31st, 2015) were paying at a rate of 4.91%, inferring 530,362 paying pre-2016 subscribers.

June 2020Shortly after summing up my festering Strava complaints for OneZero in 2020, I ran another random 5000 user sample, my most recent. Of the 927 users with IDs below 12657818, 57 were premium members—a startling 6.15%. Extrapolating against the 12,657,818 users created before 1 Jan 2016, that’s 778,455 paying pre-2016 subscribers.

Literal Order of Magnitude DeclineFirst a caveat that the above numbers are rough. While I’m fairly confident in the technical accuracy of my data gathering, I’m nobody’s StatsBoi and my assumption is I’m probably doing something wrong somewhere.

Plus the share of pre-2016 accounts declined each new time I took a sample (because I pulled randomly from the pool of overall users) making each batch less accurate for pre-2016 accounts than the one prior. And of course, all I can see from the website is what’s on the website. I have no idea whether a premium status is promotional, how long its been held for, how much it cost the user, etc.

But even accounting for all of that, a decline in paid, pre-2016 memberships to just 30,000 would be catastrophic. Compared to every estimate above, it’s an order of magnitude decline—like literally, to the point that I reached out to The Verge to see if it might be a typo for 300,000. (Update: The Verge has confirmed it is not.)

It’s also possible that Strava meant this “most impacted group” was just the 30,000 pre-2016 accounts that had been billed at the new rate(s) so far? Or could it have been only pre-2016 accounts that had never changed their subscriptions? The lack of a direct quotation containing the figure further muddies the water. Certainly some kind of follow-up is in order.

All About That (User) BaseStepping back for a moment, it’s kind of amazing to look at that historical sampling data and see how statistically loyal Strava’s earlier adopters have been to the platform—at least prior to yesterday’s number.

Even through the company’s much-maligned pseudo-pivots, privacy issues that are still exposing sensitive infrastructure, and relatively limited response to consumer feature requests, these users have continued shelling out fees, keeping the lights on as Strava struggles to justify its colossal valuation.

View this post on Instagram A post shared by Vegan Cookie Sasquatch (@strava_legend)

What’s clear from this (latest) kerfuffle that is Strava (still) needs to treat these core users better. The lack of any heads-up, the delayed and ambiguous feedback, the inability to tell the people who are actually paying what they’re actually paying—all reveal a pretty stark disconnect between the core value proposition of the product and the people running the company (sound familiar?).

My fear is that years of dogged user loyalty may have created an impression at Strava that the company can do whatever it wants with little fall-off from the paying membership. If this 30,000 pre-2016 subscriptions number is accurate, that assumption may have proved to be cataclysmically incorrect.

The post Did Strava’s Price Hike Response Reveal its Business is Imploding? appeared first on Cyclocosm.

View Details

I am not the sort of person who makes New Year’s Resolutions. But if I were, one I’d have been consistently breaking every year for the past decade is making a more concerted effort to centralize and market my #content. So I will periodically recap my recent work on this blog—which, as an ancillary benefit, also gives people a reason to read it once in a while.

Do it for the ‘GramAs of Jan 1, I am attempting daily short-form content on Instagram at @howtheracewaswon. If this sounds familiar, you’re not crazy—scroll down far enough on that IG account and you’ll find some mini-How The Race Was Won® content from the late-Teens.

As it turns out, mini-HTRWW is substantially less efficient per unit time than regular HTRWW. So this will definitely not be that.

View this post on Instagram A post shared by How The Race Was Won® (@howtheracewaswon)

The hope initially was to get better at using the native Instagram tools, refine my mobile-first chops, and gather data on what works/what doesn’t. But then Wiggo and Pidcock went and shared a reel and all that’s nuked. I shall take false comfort in this Emperor’s new cloak of Impressive Looking Numbers.

Nobody’s Listeninglook at my slick references (via)A week after savaging the Outside Business Entity for its clown-shoes MBA approach to content, the job postings that triggered the diatribe remain live and as garbage as ever. The response, both public and otherwise, has been a shared sense of frustrated agreement. I have a lot of Very Interesting Ideas for continued work on this topic. The hard part will be deciding which direction to go in, and finding the time to get there…

Charles Pelkey GoFundMe As you might infer from that previous item (or the nearly two-decades of archival material on this blog) my relationship with the broader cycling ecosystem has always been thorny. My grandmother used to say you catch more flies with honey than you do with vinegar. I never saw that as a reason not to own a flyswatter, but as it turns out, certain thin-skinned bro cultures are particularly un-psyched about getting smacked.

Charles Pelkey, then an editor at VeloNews, was one of the first “established” figures in cycling to acknowledge that I made entertaining and insightful points—even if they did frequently come at his publication’s expense. After completing his law degree and being laid off during an earlier round of outdoor media consolidation, Pelkey survived breast cancer and mean Lance Armstrong tweets to become Wyoming House Minority Whip.

If that sounds like an unorthodox career progression, it is. But in a substantially more commonplace turn (in the US, at least) recent health issues have put Pelkey in something of a financial bind. While I’ve already chipped in, and the fundraising goals have been exceeded, I’d still be remiss if I didn’t pass the hat.

The post A Hashtag #ContentUpdate for all my Hashtag #Content appeared first on Cyclocosm.

View Details

This gif might make more sense if you understand the source.A good job listing tells you a lot about the role. A bad one tells you a lot about the company behind it. And these two job listings posted recently by Outside tell you everything that’s gone wrong with the company’s approach to content over the past two years.

  • “Senior Tech Editor: Bicycle Road/Gravel” (archived)
  • “Tech Editor – Bicycle Road/Gravel” (archived)

Past is Prologue Not to be conflated with Outside, the long-running magazine it purchased in 2021, Outside Interactive, Inc., is a venture-funded conglomeration of loosely-related tech and media brands that’s recently devoured broad swathes of the cycling news ecosystem.

Signs the company may have bitten off more than it could chew began arriving last November, when Outside CEO Robin Thurston euphemistically asked middle management to “reimagine” their teams for the second time in six months.

At least four cycling editors were let go as part of those layoffs, three of them from road cycling publication CyclingTips. That, combined with the resignation of CyclingTips founder Wade Wallaceback in August, led to pretty much everyone else leaving that title as well.

pic.twitter.com/NkO2w2IyTQ

— How The Race Was Won® (@Cyclocosm) December 3, 2022

Rumors swirl around additional motivations, but suffice to say, the departures were widely-noted and provided rich fodder for gallows humor. That Outside needs to bring in a few bodies to shore up its cycling coverage should not be surprising.

Is There An Editor In The House?What should be surprising is that these job listings are a shambolic pile of flaming hot garbage. Outside is, lest we forget, funded to the tune of $174MM. Their investors include Sequoia Heritage, a spin-off of VC heavyweight Sequoia, and reasonably successful in its own right. You’d think with such backing, the basic task of laying out job openings in text would be doable. Apparently not.

It’s easy to joke about poorly-edited copy being the result of laying off all your editors. And don’t get me wrong—the sloppiness and typos you’d expect are most definitely there:

And I’m not even good at this, people.Hey Job Candidates—U Up?But this isn’t about quaint nuances of composition or professional fine-tuning. These listings are just fucking bad, and bad in a very obvious way. If you were drunkenly making up jobs for your ex through a series of texts on an iPhone keyboard at 2am, they would come out looking something like this.

They’re bad enough that I don’t think anyone bothered to so much as scan them before they were published. Read the following sentence aloud to someone with even a rudimentary grasp of English and they’ll tell you what I mean:

Within 6 months, you will:

  • In the first six months the Senior Tech Editor will plan, create, and orchestrates all gear coverage for the Outside cycling group including Outside Cycling Group, CyclingTips, VeloNews and Outside, and works to provide consistent, relevant, and exciting gear content on all platforms.

While you might expect an obvious flub like “the Outside cycling group including Outside Cycling Group” to be a one-off, similar errors are everywhere. “Within 12 months you will:” introduces a set of grammatically and logically un-attachable bullet points like “Excellent written and verbal communication” and “Understanding of modern bicycle technology and application”.

Pass The CopypastaWhat’s really interesting is how many of these errors appear in both listings, so I ran them through diff. They aren’t just similar—they are the same. The handful of changes are cosmetic, mostly just swapping out the word “Senior” and attempting to differentiate a “lead” role from an “assist” role. Even then, the work is sloppy—line 19 below leaves “lead and manage” in for both titles.

674 words in one, 676 in the other. Only 20 words different between them. (click through for a full comparison)On some level, I get this. Overlap between these two roles is going to exist. It would be bad practice to not economize the crafting of one listing by reusing parts of the other. But Outside takes that to an extreme, changing only 2% of the words between roles. It begs the question: if these jobs are only 2% different, why is there (potentially) a 90+% divergence in salary?

It also makes me curious why Outside—ostensibly a content-focused company—took such a different approach on these Senior and non-senior Python Engineer positions posted last winter. When fed into a diff tool, their only meaningful overlap is legal boilerplate, while the salary ranges are substantially closer.

A Content Position Where Words Have No MeaningThe archived Python Engineer listings also hammer home the concept of a “Senior” title— “10+ years experience” and a laundry list of development platforms, versus just work “creating scalable API’s using Python”. But in the Bicycle Tech Editor roles, the difference seems limited to the “plus” after “4 years of experience”.

Let’s compare the Outside listing (it is just one, really) to a comparable Senior Editor role at Glamour, under the umbrella of content monolith CondeNast:

Screenshot because Conde’s HR pages don’t like Internet ArchiveNote how much more clear and specific this listing is than Outside’s. Candidates “top edit”, “grow freelancer networks”, and “develop ideas” based on analytics. Outside leans on the the broadly ambiguous “create” and “orchestrate”. The products Glamour’s role delivers— “compelling headlines”, “essays our readers can’t find anywhere else” —are similarly detailed compared to Outside. Note also that the Conde role is specific to the Glamour masthead, with nary a typo in sight.

More informative still are the job requirements: “proven track record of original reporting”, “strong roster of professional contacts”, “able to toggle between first-person voice and objective tone”. By comparison, Outside mentions “working on bicycles” more times than it calls out anything specific to writing. And those of you pointing at “Excellent written and verbal communication”, take a seat at the kids’ table. You’ve just excused yourself from the burden of a valid opinion.

It’s Hard To Ask For What You Don’t Know You NeedTaken as a whole—and disregarding the typos—this listing is bad because its authors don’t have any actual idea what they need. It’s a laundry list of wants people that don’t understand content associate with content creation.

For example, there are asks for still photography skills—with the paradoxically prescriptive yet non-specific condition of a “DSLR or similar-level camera”. There is a call for “Deep understanding of video content creation”, which could be anything from making TikToks to correctly setting finish line camera height. And of course there’s casual mention of social media and WordPress, with (again, unlike the Glamour listing) no clarity in how the role will need to use those tools.

Part of why this feels so confused is that it’s not for any particular publication or platform, but the “Outside Cycling Group”. It’s extremely hard to define what makes content “consistent” or “relevant” without knowing what masthead—or even what format—it’s going to appear in.

Taken with the lack of specific skills, it seems inevitable that whoever gets hired for this role will make generic, likely advertiser-driven content, with whatever brand is convenient slapped on after the fact. Indeed, the cross-posting has already begun.

Still worthless but less so? Memes.As CyclingTips founder Wallace noted in a subscriber newsletter last year, “Our biggest worry with any type of content syndication is that [VeloNews] and [CyclingTips] will end up looking identical and being a watered down version of both. Nobody wants this.” From these job listings, it would appear that Outside management disagrees.

If Content Is King, This Is RegicideIf you’ve read this far and think “Cosmo—you’re looking way too hard at a couple of botched job postings”, I get that. These went live right before the holidays, probably on very short timelines given the accelerated CyclingTips exodus. There is certainly a universe where a sound, competently run, content-aware business might have stumbled into putting these out.

But that universe is not ours. These job listings are the best examples yet of how the current management of Outside Interactive fundamentally does not understand content.

Let’s recap with dots: * These are job listings for content creators * The content in these job listings is full of obvious errors * The method used to create the content in these job listings is transparent, cynical, and substandard * The job listings betray a lack of internal awareness around content creation roles * The qualifications in these listings don’t have much to do with generating content * The type of content these jobs are going to create is extremely unclear * The content these roles will generate has no well-defined platform, audience, or objective * The job listings suggest Outside doesn’t understand the connection between content and brand equity

At the “high-paced content organization” these listings purport Outside to be, basic competence would have stopped the presses on this weeks ago. At the very least, these openings would have warranted fire-drill fixes the moment they went live.

Instead, senior Outside executives broadcasted them to their professional networks. The fact that—at time of writing—they’re still posted in their original, dumpster-fire state is impressive. Factor in the ongoing and active LinkedIn trolling from former Outside employees, and it’s truly astounding.

The Knowledge Is Fifteen Feet Under Their AssesIt’s important to note that my beef here is with leadership. Even after the departures, Outside’s brands are strong in creator talent. As uncomfortable as I might be with the occasional Barstool vibes, PinkBike is always dialed, from Friday Fails to the World Cup.

Outside’s title publication still isn’t afraid to take on potentially sponsor-unfriendly topics. And every person I’ve worked with at CyclingTips has been awesome. That the parent company would blindside the remaining talent with these job listings is simply mind-boggling.

Color me… confused.https://t.co/5uspwDDJ6C

— James Huang (@angryasian) December 20, 2022

Ultimately, Outside leadership needs to realize that good content doesn’t just “happen”. It’s not audience demographics, company objectives, and corporate buzzwords standing on each other’s shoulders inside a trench coat. And it doesn’t sprout spontaneously from fresh piles of business-plan horseshit—not even when the job listings have the perfect set of typo-free bullets.

The best content—the kind that attracts large audiences, that people want to pay for—is made by talented, passionate creators. They have specific, hard skills, and work best with consistent platforms and clear objectives. Things like what they’re making and who they’re making it for.

At the end of the day, Outside’s brands are only worth what their audiences will pay—be that through eyeballs or memberships. Those audiences are engaged primarily through content, and that content is only as good as its creators.

If Outside leadership truly sees content as a “core pillar” of its business moving forward, they need find out how it works from the people who made their brands worth acquiring in the first place—preferably before laying any more of them off.


The post Two Little Job Listings Reveal Outside’s Big Content Failure appeared first on Cyclocosm.

View Details

Use this Trailforks GPX Export bookmarklet tool to export GPX files of routes and rides from Trailforks.com in your personal route planning.

The post The Trailforks GPX Export Feature You Always Wanted Is Here appeared first on Cyclocosm.

View Details

UPSTAGED fits into a standard workday, but moving at that pace tends also result in a lot of screw-ups. Here are the UPSTAGED outtakes.

The post UPSTAGED Outtakes – 2022 Tour de France / TdF Femmes Avec Zwift appeared first on Cyclocosm.

View Details

I was beyond stoked when CyclingTips reached out toward the end of the men’s TdF to see if I could continue making UPSTAGED short recap videos for the brand-spankin’ new Tour de France Femmes Avec Zwift. The history of the Tour’s various women’s incarnations is longer and much more complicated than most people realize. Someday...

The post UPSTAGED Recaps – 2022 Tour de France Femmes Avec Zwift appeared first on Cyclocosm.

View Details

Every-stage How The Race Was Won®-like videos have been on my wishlist since I first gave a CyclingTV screencap the Ginsu treatment back in 2009. But the practical considerations of working for a living, and HTRWW’s relatively monumental effort always stood in the way. But this past Tour de France, I lucked out. CyclingTips had...

The post UPSTAGED Tour de France Recap Videos – 2022 Men’s Tour de France appeared first on Cyclocosm.

View Details

Please enjoy the How The Race Was Won® video for the 2022 Tour de France Femmes Avec Zwift at HowTheRaceWasWon.com. Presented with love by CyclingTips.

The post How The Race Was Won® – Tour de France Femmes Avec Zwift 2022 appeared first on Cyclocosm.

View Details

Please enjoy the How The Race Was Won® video for Stages 16-21 of the 2022 Tour de France at HowTheRaceWasWon.com. Presented with love by CyclingTips.

The post How The Race Was Won® – Tour de France 2022 – Stages 16-21 appeared first on Cyclocosm.

View Details

Please enjoy the How The Race Was Won® video for Stages 10-15 of the 2022 Tour de France at HowTheRaceWasWon.com. Presented with love by CyclingTips.

The post How The Race Was Won® – Tour de France 2022 – Stages 10-15 appeared first on Cyclocosm.

View Details

Please enjoy the How The Race Was Won® video for Stages 4-9 of the 2022 Tour de France at HowTheRaceWasWon.com. Presented with love by CyclingTips.

The post How The Race Was Won® – Tour de France 2022 – Stages 4-9 appeared first on Cyclocosm.

View Details

Please enjoy the How The Race Was Won® video for Stages 1-3 of the 2022 Tour de France at HowTheRaceWasWon.com. Presented with love by CyclingTips.

The post How The Race Was Won® – Tour de France 2022 – Stages 1-3 appeared first on Cyclocosm.

View Details

Please enjoy the How The Race Was Won® video for the 2022 Criterium du Dauphine race at HowTheRaceWasWon.com. Presented with love by CyclingTips.

The post How The Race Was Won® – Criterium du Dauphine 2022 appeared first on Cyclocosm.

View Details

On September 27th, 2001, Filippo Simeoni soloed clear of a breakaway on Stage 18 of the Vuelta a España. Barely a meter from the finish, he took the unusual step of dismounting his bike, holding it aloft, and kissing the top-tube, before walking across for the stage win. He was fined for this—and here we...

The post The Stunning 9/11 Tribute That Maybe Wasn’t appeared first on Cyclocosm.

View Details

On September 11th, 2001, Mercury-Viatel’s Baden Cooke won the 6th Stage of the Tour l’Avenir. To say this wouldn’t be the lasting news of the day is something of an understatement. l’Avenir is known as a showcase for up-and-coming stars, and that year’s edition proved no different. Future Giro and (sorta) Vuelta winner Denis Menchov...

The post The Weird Conspiracies of Former Pro Cyclist Baden Cooke appeared first on Cyclocosm.

View Details

I would never spend that much on a road bike because someone on the Internet told me to. Here’s what I would do with that money instead.

The post How To Buy a Road Bike with $5000 appeared first on Cyclocosm.

View Details

Two days ago, USADA announced that jillion-time US National Cyclocross Champion Katie Compton tested positive for anabolic androgenic steroids. To say this took the US cycling world by surprise is an understatement. Between top-level results, ready availability for fans and media, and just generally being bad-ass, no other US cyclist comes close to matching the...

The post The Comptons’ God-Awful Response to Katie’s Positive is Everything You Need to Know About This Case appeared first on Cyclocosm.

View Details

Last week, a sponsored Strava Instagram post with adaptive athletes caught my eye. It’s a pitch for the company’s new Group Challenges feature, and powerfully highlights how the service can eliminate barriers between athletes, regardless of differences in sport, geographic location, or physical ability. The post’s message is one of inclusivity, something that’s been present...

The post Strava Needs To Start Backing Up Its Inclusive Marketing Claims appeared first on Cyclocosm.

View Details

As part of the Cyclocosm revamp earlier this month, I’ve been working on a small JavaScript project. It scans whatever page it’s on for old, likely-broken VeloNews links, and fixes them on the fly. You can learn more about it here: If this feels at all familiar, you’re right! Back in 2011, I put together...

The post Fixing VeloNews’ Dead Links: 2021 Edition appeared first on Cyclocosm.

View Details

The single best thing I saw at the 2021 Tour de France had nothing to do with the bike race. Nearly half an hour after Sepp Kuss left Alejandro Valverde floundering on the slopes of Col de Beixalis, Max Walscheid (yes, that Max Walscheid) used them to casually lay down this ridiculous 570 foot wheelie:...

The post Why the Tour de France Really Doesn’t Want You to See This YouTube Wheelie appeared first on Cyclocosm.

View Details

By any meaningful digital metric, Cyclocosm is old. It started as a side project of my long-dead “regular” blog in 2005, when there was no Twitter, a cutting edge “cell” phone could play an eight-track ringtone, and a George Hincapie Roubaix win seemed orders of magnitude likelier than a Lance Armstrong confession. (Some of you...

The post New Blog, Who Dis? appeared first on Cyclocosm.

View Details

Please enjoy the How The Race Was Won® video for the 2021 Liege-Bastogne-Liege race at HowTheRaceWasWon.com. Presented with love by CyclingTips.

The post How The Race Was Won® – Liege-Bastogne-Liege 2021 appeared first on Cyclocosm.

View Details

Please enjoy the How The Race Was Won® video for the 2021 Tour of Flanders at HowTheRaceWasWon.com. Presented with love by CyclingTips.

The post How The Race Was Won® – Tour of Flanders 2021 appeared first on Cyclocosm.