“Empire Elevation” Route Details
See zwiftinsider.com/route/empire-elevation/
Yesterday, Zwift enabled an adjustment/fix for drafting which will be particularly noticeable on descents. Here’s what was posted on their forum:
We’ve made an adjustment/fix to the drafting effect that’s now enabled for game version 1.102 and newer. Here’s how you can check what version you’re using.
Up until now our drafting algorithm didn’t properly use road incline/decline percentage in the equations and this change will fix the issue. The steeper the climb or descent, the more the change will be noticeable.
The end result is:
Zwift says, “Up until now our drafting algorithm didn’t properly use road incline/decline percentage in the equations and this change will fix the issue.” So what was actually broken (and fixed)?
It’s an interesting little bug that is easy to understand. In Zwift, as in real life, every rider casts a draft “shadow” behind them as they cut through the wind. If you’re in another rider’s draft shadow, you’re hitting less air resistance, making it easier to move forward. Cycling 101.
But Zwift’s algorithm was calculating perfectly horizontal draft shadows regardless of road pitch. This works fine on flattish roads, but as the gradients get steeper, horizontal draft shadows will impact riders behind less and less! Zwift confirmed with me that the draft shadows now now extend parallel to the slope of the draft-giving rider.
In my tests, the results of Zwift’s draft update are exactly as described above. It’s particularly noticeable on descents, where the draft is simply stronger than it used to be. Riders used to have to put out some power to hold the wheel of a supertucking rider, but you can now sit on that wheel at 0W, because the draft off that supertucking rider is stronger.
So while supertuck is still a fast and easy way to descend steeper hills, its utility as a weapon of attack has been blunted.
One important result of this change is that it’s now easier for lightweight riders to hold a good pack position on descents, as they sit in the stronger draft.
It’s time for me to run fresh tests and update this post, which showed how much power it took to sit on another rider’s wheel while they were descending in the supertuck or at certain wattage, in race events or group rides.
Go do a test ride or two, then report back your thoughts on the updated draft for climbing and descending. Chime in on the Zwift forum topic, or comment below!
If there’s anything my time on Zwift has taught me, it’s that trying to pedal while juggling a keyboard and mouse is awkward. A while back, I picked up a Stream Deck hoping for a better way to interact with Zwift, and I haven’t looked back since.
For the unfamiliar, the Elgato Stream Deck is a customizable set of programmable macro buttons that comes in several sizes. Since adding it to my setup, my keyboard and mouse have been collecting dust. It’s been a game-changer for convenience, immersion, and overall enjoyment.

As a frequent racer, group rider, and occasional ride leader, there’s always a lot happening during a ride. For what the Companion App does, it does well, but it doesn’t do much. Keyboard shortcuts help a bit but are still limited. And using a mouse or trackball? Forget it. Unless you’re willing to stop pedaling, you’re not clicking anything.
That just covers Zwift. If you’re also managing music, voice chat, or other apps, you can quickly find yourself off the back.
For me, the Stream Deck solved all of these problems. It gives me control of Zwift and every other app I need from one interface, all at the push of a button… or several. Between its built-in functionality and the add-ons available through the Elgato Marketplace, the possibilities are practically endless.
Before diving into the cool functionality I’ve uncovered, I want to give a quick shout-out to a few developers whose tools have been key to my setup:
While I’ve done some fun customization with my deck, it’s people like this who have the real skills and are providing genuine benefits to the Zwift community.
With that out of the way, here are the controls I’ve found most useful:
Below are a few screenshots of how I have my primary pages configured. It’s not perfect, a bit of a mess of subfolders, but with time and muscle memory, I’ve made it work. For something that works well right out of the box, the Zwift Stream Deck profile (linked above) is an excellent starting point that will get you 95% of the way there.
My primary Stream Deck pages:


I’m sure there’s still plenty of potential I haven’t unlocked yet. The Sauce API is easy to work with and opens up tons of possibilities. With a few simple scripts, it’s possible to pull in and use ride data creatively, something I’d like to spend more time exploring.
As great as it is, there are still a few things the Stream Deck can’t quite handle. Pressing buttons within the Zwift interface is… well, a bit meh. There aren’t hotkeys for common actions like joining events or ending a ride, which I’ve tried to work around with macros, with limited success. I’ve mostly resigned to navigating the UI manually.
There’s also no steering, shifting, or braking like the Zwift Click or Play controllers offer. While the deck wouldn’t be ideal for those functions, it would definitely be a neat alternative.
After more than a year of using it full-time as my only way to control Zwift, I don’t think there’s any going back. Once I fine-tuned my layout and built the exact functions I needed, the experience just clicked. Now everything feels natural… smooth, consistent, and ready for any kind of ride.
The biggest difference is how it lets me stay focused on the ride instead of fumbling for the right key. It doesn’t necessarily make me faster, but it does make Zwift feel more immersive, like I’ve found a hidden upgrade most people overlook. At this point, it’s as essential to my setup as my trainer or fan.
Even after all this time, I’m still finding new ways the Stream Deck could evolve with Zwift. I haven’t yet tried Pedal Games, an add-on that ties gameplay elements to ride data, but there’s a lot of potential there. Being able to trigger in-game actions or mini-game events directly from the Stream Deck could make for a fun and interactive experience. It’s on my list to explore when I have some tinkering time.
That said, the Stream Deck isn’t exactly cheap. Between the hardware cost, time investment, and a bit of technical know-how, it’s not for everyone. If you’re curious but hesitant to spend the money, there are a few alternatives worth considering:
No matter which route you take, the key is finding something that reduces friction between you and the ride. There are plenty of approaches depending on your setup, budget, and how much you like to experiment.
Looking back, this little project has become one of my favorite tweaks to my Zwift setup. What started as curiosity has turned into something I now use every single ride without even thinking about it. The Stream Deck might not make me faster, but it makes every session smoother, more immersive, and more fun.
It’s not a perfect solution, and it’s definitely not the cheapest, but for anyone who enjoys tinkering, automating, or just personalizing their indoor setup, it’s hard to beat. The best part is that it grows with you: whether you’re just using it to launch Zwift or diving deep into APIs and scripting, there’s always something new to try.
Anything that helps you spend less time fiddling with menus and more time riding is a win. And for me, that’s exactly what this setup delivers.
Do you use Stream Deck with Zwift? What are your favorite features? Got questions? Comment below!
Zwift Camp: Build is now underway. This is a 5-stage route-based workout series, with each stage lasting one week and focusing on developing power over a specific time interval.
My plan is to do each of the five workouts before their weeks begin, so I can write a post unpacking the workout and delivering some tips along the way. This post covers Stage 3’s workout on Watopia’s new Hot Laps route. Let’s roll!

The third stage of Zwift Camp: Build is focused on “Three 5-minute efforts” according to the event description. But it’s probably not laid out how you’d expect!
The stage is built around the new Hot Laps route in Watopia, which takes riders on 4 full laps of the Volcano Circuit, followed by a finish up the Jarvis KOM:
Follow the instructions on screen and you’ll use the first lap as a warmup and a bit of recon, learning where that little kicker is at, where you can recover a bit on descents, etc. The instructions have you begin your effort in earnest at the start of the second lap, and there are really two stated goals here:
So you don’t want to start off with a maximal effort on lap 2, because you won’t be able to beat that effort the next lap!
My legs were tired from a metric century the day before, so I just targeted power numbers I knew I could hold:
I also kept an eye on my previous effort HoloReplay, making sure I beat him each lap.
You might think it would be hard to manage your power well enough to precisely hit power targets, but thanks to the average power number on the Splits HUD, I found it pretty easy. I was bang on my target for laps 2 and 3, then pushed extra hard on lap 4 just because I could, coming in a few watts above my 270W target.
What power targets should you shoot for? You won’t be able to hold true VO2 max power for three continuous laps, but if your legs are fresh, you should be able to push at or just above your FTP for all three laps. Something like this should be doable with fresh legs:
Or you could skip trying to hit a power target, and simply try to stay away from your previous effort HoloReplay every lap. Put in a hard but not maximal effort on lap 2, then just make sure you beat your HoloReplay on laps 3 and 4!
After finishing the fourth lap, the route takes you into Jarvis for a finishing effort up the Jarvis KOM. This short climb will take most riders 3.5-5 minutes to complete, so it’s actually a proper traditional VO2 max interval in terms of its length and the 5 minutes of recovery you get just before it begins. My advice? Just empty the tank. It’s the end of the workout, so put in a maximal effort up that KOM segment and see what you can do!
Overall, I found this the most fun Zwift Camp: Build stage yet. The challenge of pacing myself so I was both working hard but also negative splitting the laps kept me engaged, even if my tired legs didn’t let me ride anywhere near VO2 max targets. And while the HoloReplay bug persists (see below), my previous effort ghosts proved very motivating!
Your previous effort ghost is an exact replay of your avatar from the previous lap, which means if you drafted on the previous lap, that ghost is moving at the speeds you attained while drafting.
This could make things difficult when you try to beat your ghost on the next lap, and you aren’t drafting.
It worked out fine for me in my on-demand workout, even though I was on a road bike, as I never drafted for a meaningful length of time. But basically, you’ll want to be either drafting most of the time, or not drafting most of the time. One simple way to make sure you don’t draft: ride a TT bike! It looks like they’re allowed in the events, and of course you can always use a TT bike in an on-demand ride.
After Stage 1’s short neuromuscular sprint efforts, and Stage 2’s longer anaerobic sprints, you might expect stage 3 to focus on VO2 max power. And it does… sort of. Since the three laps are back-to-back-to-back, you won’t get the rest/recovery needed to execute traditional VO2 max intervals. Instead, you can work at pacing yourself at or just above FTP, finishing with a maximal effort on lap 4, then recovering a bit before doing one more hard VO2 max interval up the Jarvis KOM.
It’s not a traditional VO2 max workout, but it’s engaging and fun work. Plus, pacing the three Volcano Circuit laps for negative splits is good practice for Stage 4’s effort up The Grade. (Turning in your best effort on that climb really comes down to pacing it well, and starting a bit below your power target while finishing a bit above it is the best way to make that happen.)
VO2 max measures the maximal amount of oxygen your body can consume. It is a key measure of aerobic capacity and thus a key determinant of performance potential (read much more in this TrainerRoad post). A few interesting things about VO2 max:

Traditional VO2 max training has you executing repeating intervals that are 2-6 minutes long, each 106-120% of your FTP, with very easy rest intervals in between roughly the same length as the VO2 max interval.
But there are other ways to do VO2 max work. Zwift has a “VO2 Max” folder in its workout directory, with 37 workouts to choose from at the time of this post:

Some of these workouts feature the more traditional, longer VO2 max intervals, while others have you doing high numbers of much shorter intervals (20-30 seconds). The important thing is accumulating time working at VO2 max levels.
You might also try Zwift Insider’s popular Saturday Tiny Races. This is a set of 4 short races completed in under an hour, making it basically a VO2 max workout disguised as a race.
Lastly, hill repeats are a classic outdoor VO2 max workout. Find a climb you can finish in 3-6 minutes, then hit it hard. Turn around at the top, taking your time coming down so you can recover nicely, then do it again. Aim for at least 4 repeats.
The third workout of Zwift Camp: Build was my favorite yet, even if my legs weren’t very fresh. Still, there were some things Zwift could change to improve the experience. Here are my suggestions:
Sign up for stage 3 events in-game, in the Companion app, or go to zwift.com/events/tag/zwiftcampbuild2025wo3.
Have you done this workout yet? Share your thoughts below, or any questions you may have heading into the workout.
As the days get shorter and colder, more and more riders are filling the roads of Zwift. As you ramp up your indoor training, gain tips and tricks from this week’s top videos to make your Zwift experience the best it can be.
We’re also highlighting a fun Zwift racing challenge, a tour of the Brompton bike factory, and a long-term review of the Zwift Ride.
Share the link below and we may feature it in an upcoming post!
Zwift CEO and Co-Founder Eric Min has traditionally led a T-Day ride on Thanksgiving morning, inviting Zwifters to put in some early bike miles before spending time eating turkey and pumpkin pie with family and friends.
This ride is always popular, with thousands showing up. And often, Eric has a big-name guest on the ride as well! (Past guests have included Anna van der Breggen, Justin Williams, and ChloĂ© Dygert.) This year’s special guest: Mathieu van der Poel!
See below for ride details…
Event start time is 4pm UTC/11am ET/8am PT on Thursday, November 27. This is an open-paced ride, so you can ride hard or easy. With lots of riders joining in, you’ll always have someone to ride with!
The ride is 60 minutes long and held on the new Spinfinity route in New York.

Sign up at zwift.com/events/view/5187956
Finish the ride, and you’ll unlock the T-Day kit:
If this ride is too late in the day for you and/or you’re looking for a longer ride, check out BMTR’s traditional Thanksgiving 100, which begins at 1pm UTC/8am ET/5am PT. Riders will be on the Watopia’s Waistband for 100km, and there are three pace groups: D at 1.6-2 W/kg, C at 2.2-2.6 W/kg, and B at 2.8-3.2 W/kg.

Sign up at zwift.com/events/view/5199242
Starting just 5 minutes after BMTR’s ride, my Thursday Pizza Burner 100km kicks off at 1:05pm UTC/8:05am ET/5:05am PT on Tick Tock in Watopia. Ride with me at ~2.5 W/kg, or join the zinners up the road! (My plan is to finish this ride, then head to Mr. Min’s ride to make it a 100-mile morning.)

Sign up at zwift.com/events/tag/blameeric
Several months ago, Zwift Co-Founder Jon Mayfield and I were talking about training for upcoming events, and he mentioned the Death Valley Century. This was a ride Jon had done several times already, and he was signed up to do it in November. Would I be interested in coming along?
After giving it some thought, I decided to pull the trigger. Why not? It was a place I’d never ridden before, plus I needed to plan an event or two to inspire my training.
I signed up, then mentioned it while chatting on Discord during my Thursday Pizza Burner 100km ride. Two ride regulars, Casey Tucker and Justin “Wagz” Wagner, both said the ride sounded interesting. Then texted me within a few days to say they’d signed up!
And just like that, there were four of us heading to Death Valley National Park for an epic century.
At least, that was the plan…
In the weeks leading up to the ride, I’d been messaging Jon to find out what he was planning, while also chatting back and forth in a text group with Wagz and Casey.
Jon was going to bring his telescope and camera, because he dabbles in astrophotography and Death Valley is a Gold Tier designated dark sky area, meaning, “On clear, moonless nights, the Milky Way casts visible shadows, and thousands of stars typically washed out by light pollution become readily apparent.” Epic stargazing? I’m in.
Wagz was driving in from Salt Lake City, Casey from Bend, OR, and I from NorCal, meaning we were all driving 8 or more hours to arrive in Death Valley on Friday, for the ride on Saturday. We decided to stay Saturday night as well, and maybe get a ride in on Sunday before heading out. Casey started researching alternative rides, and found an epic 25-mile climb up to a lookout called Dante’s View. That was Sunday’s ride sorted.
Things began to unravel in September, though. A big storm came through, dumping 1.5″ of rain in a day. (This may not sound like much, but Death Valley averages 2.2″ of rain annually. If a good portion of that arrives in a short time, chaos ensues: flash floods, washed-out roads, etc. This will be important later on…)
Then the government shutdown began on October 1, meaning Planet Ultra could hardly even find anyone to talk to since Death Valley is a national park and those employees were off work until further notice. As the shutdown dragged on (43 days, the longest in history), we were notified that the route had been changed, then notified of further changes. By the time the shutdown ended, just a few days before the ride, Planet Ultra had settled on a metric century route for us to ride, with the option of removing our ride numbers and finishing out the full imperial century however we chose once we crossed the line.
So that was our Saturday ride plan.
But within a few days of the ride, the weather forecast, which had looked good for weeks, began changing. First it was rain on Sunday. Then a bit of rain on Saturday. We realized there would be no stargazing, as clouds would fill the sky all weekend. And by mid-day Friday, as we were all making our way to Death Valley, it showed 1″ of rain on Saturday.
An email arrived from Planet Ultra. Subject line: URGENT!!! Death Valley Ride: CANCELLED.
A flurry of texts and phone calls followed between the four of us, as we all received the notice while driving to Death Valley. The consensus was clear: we weren’t cancelling. The hotel was booked, we’d been granted our “Husband Passes,” and we were going to figure out a way to do something epic.
Even if it killed us.
Which was actually a distinct possibility.
We were all targeting a 4pm Friday arrival, since that was the hotel’s check-in time. But Wagz and Casey arrived before I did, and decided we needed to do a shakeout ride. Knowing we didn’t have a lot of daylight, I kitted up in my car, pulled the bike out of the back, and headed out with Wagz and Casey.
It’s funny: I hadn’t yet met these two in real life. But we’ve spent so many hours riding together virtually while chatting on Discord that when I arrived, no introductions were necessary. We had just ridden 100km in Watopia the day before, so the inside jokes picked up right where we’d left them.
We headed out from Furnace Creek (Death Valley towns have great names) toward Badwater at 4:12pm. Casey and Wagz both had headlights, but I hadn’t brought one. Figuring we had about an hour of daylight, we decided we’d ride out around 15-20km, then turn around and come back.
15km out, Casey suggested we take a left and ride the Artist’s Drive road instead of just flipping a U-turn. “It’s a nice little loop,” he said. (It was closed to automobiles due to recent floods, but his research said there was just a bit of gravel washed across the road here and there.) We rode around the barrier, crossed the first bit of gravel, and decided to give it a go.
And that’s when our shakeout ride turned spicy.
Have you ever climbed with another cyclist, where neither of you talks about how you don’t want to let the other guy beat you? You know: the silent race. (Or better yet, the “Try to speak casually like you’re not on the limit” race.) That’s what this was. And none of us knew the climb well enough to know when it would end.
After 4.5km and 325 vertical meters of hidden heavy breathing, we finished the main portion of the climb. And we realized we had a problem. Or more accurately: I had a problem. It was dark. I had no light. And we were nowhere near home.
We began the main descent of Artist’s Drive, with me trying to stay sandwiched between Casey and Wagz so I could see the road. Our team plan worked well enough, which was good, because this wasn’t just any road: it was an unfamiliar, twisty, and steep descent. Made all the more interesting by random gravel patches deposited from recent flooding!
We were operating just on the edge of crazy, which is a rather fun place to be, when you get there on purpose. We only had to hike the bikes once, thanks to a particular deep gravel section. But apart from that, we made our way down, teasing Casey for his route suggestion and laughing at the irony of my gravel bike sitting at home in the garage, headlight and all.
By the time we returned to the main road it was pitch dark, and we still had 10km to go. We turned off all our lights for just a minute, to take in the total darkness of the place. Wow. Have you ever experienced that? It’s disorienting. Like you’re floating in space.
Turning the lights back on, we made our way to the hotel. When we arrived, we checked the stats: our 1-hour ride had turned into a 100-minute ride covering 40km and 747m of climbing. And although nobody said it, I think we all were thinking the same thing: I went too hard, and I’m going to pay for it tomorrow.
Jon, Casey, Wagz, and I sat around the dinner table Friday night, looking at weather apps and roadmaps to plan our new Saturday route. We decided to start in the morning with an out-and-back to Badwater Basin, since it’s a key tourist attraction, being the lowest point in North America (282′ below sea level). That would give us 55km.
Then we could refill bottles and restock snacks upon our return to the hotel, and decide if we wanted to continue with the second leg of the ride: heading north for a 75km loop that included a nice little 11km climb.
Jon planned to join us for the first leg, but left the second leg up in the air depending on how he was feeling. He has always ridden this event as a solo TT, so he wasn’t sure if he would want to ride part of it solo, or even make it a shorter day so he had the legs to take on Dante’s View the following day.



The four of us rode out from the hotel the next morning. Temps were in the low 60s, with light rain. We watched a handful of riders leave and head north, but we went south, hoping to finish up in low-elevation Badwater before things got too wet.
The road to Badwater Basin is rolling and smooth, and we quickly settled into an easy, albeit muddy, rhythm. Nobody wanted to push hard this early in the day, and it felt to me like the cancellation of the official event had given the whole affair a sort of casual feel. Which was nice.
Alkaline mud was washing across the road’s low spots, and that mud quickly coated our shoes, socks, and backsides. It smelled distinctly like fresh, wet cement and left a slimy layer on bikes and clothes after rain washed most of it away.
Badwater Basin was something to behold: a 200-square-mile salt flat with a sign on the nearby cliff marking sea level, 282′ above us. We looked around a bit, watched people walk out to the salt flats via the broad boardwalk, snapped a few photos, and then headed back to the hotel.
At the hotel, Jon decided to hit the shower, change clothes, then head out on the second leg solo. Wagz, Casey, and I decided to restock provisions and head out together. The rain was still light, the temperature just right, and the northern roads didn’t seem likely to flood even if it rained as forecasted.
We started on HWY 190, churning through almost 30 flat kilometers. The best way to see the world is from a bicycle, especially if you’re not in race mode. The distant craggy mountains, the tumbleweeds, the sand dunes, the multicolored soils, the feel of the wind and rain, the unique smell of the place… everything mixed into a singular feast for the senses.
Eventually we turned left and onto the day’s big climb: Mud Canyon Road. 11km long and averaging 5.5%, this steady grade wasn’t bad apart from two things:
From the top of the climb we bombed the descent of Beatty Cutoff Road, then headed back to the hotel via HWY 190. It began to rain in earnest in these final kilometers, which was actually rather nice, as it washed away some of the mud caked onto our bikes and clothes.
After Casey took a long pull on the front, I went forward and upped the watts, figuring it would be fun to “make it interesting” as we hit the small rise heading into Furnace Creek. But Casey, feeling his monster pull, fell off the back. Then Wagz attacked in the gutter, forcing me to chase his wheel for shelter! I figured he would drop me like he often does near the end of Pizza Burner rides, but quickly saw he had gone too early, with legs that were too tired. I managed to chase back onto his wheel, then sprint to glory across the invisible townline.
131km and 1,321m of elevation on the day. Not bad for a cancelled ride.
Returning to the hotel, it was cleanup time. We hopped into our showers fully kitted up, rinsing the remaining mud from our bodies and clothes. Casey and I even hauled our bikes into the showers, which worked quite nicely. (Although we found the next morning that the water had left some rust spots on our chains and cassettes, probably due to the chemical makeup of the local water and/or soil.)
We reconvened with Jon for dinner at the all-you-can-eat buffet and shared stories of our rides. (Jon had ridden the same route as us, but the second portion was solo, on his Zwifty Pinarello with TT bars.) Soon enough, the conversation turned to the next day: what was our ride plan? Were we climbing to Dante’s View?
Wagz stated definitively what he’d been hinting at all day long: he needed to leave early to get back to his family. Jon felt like his legs were too cooked to take it on (he had been training for a half-marathon in the months leading up to this, and didn’t feel his cycling fitness was up to snuff.) And Casey chimed in with unexpected news: his parents, who had made the trip with him, wanted to head back early. He wouldn’t be riding the next day either.
But I’d had my heart set on attempting that epic climb, and my travel plans allowed me to stick around and do it. I let them know I was still going to go for it, even if they were only joining me in spirit!
As we wound down the conversation, our waiter came over to inform us that it was “Really coming down outside. You might want to head back to your rooms soon.” We left the restaurant to discover both main roads into the hotel were now flowing rivers, which was particularly irksome given we had our hearts set on ice cream.
That ice cream, it turned out, was served at a shop on the other side of the hotel grounds, requiring us to ford two newly-created driveway rivers. After spending some time trying to find a way across while staying dry, we made the decision to sacrifice one shoe/sock, stepping into the water and leaping the remaining distance across the road. It was a small sacrifice for ice cream.
The next morning I bid farewell to Wagz and Casey, and began the 40km ride from Furnace Creek (-190′) up to Dante’s View (5,475′). Blue sky was visible through the clouds for the first time since our arrival, along with fresh snow on the highest peaks. The air was crisp, with a stiff breeze blowing up from the south.
Knowing this was a long climb and that the steepest pitches were at the end, I kept my power squarely in the comfort zone, chugging along in zone 2 at around 210 watts.
70 minutes in, I hit the halfway point (in terms of distance) to the top, and turned right off of HWY 190 onto the road to Dante’s View. I was feeling good, taking in the views while making slow but steady progress. The crosswind I’d been climbing with became a quartering headwind as the road shifted southward, but it was all doable, and I smiled and waved as the first cyclist I’d seen that day zoomed past on his way down from Dante’s View.
Traffic was sparse, and when my Varia radar indicated a car coming up behind, I scooted over to give it room. But this car slowed and pulled up alongside me. It was Jon! I had wondered that morning if I’d see him on the road, since he had said he’d never been up to Dante’s View. He asked if I needed anything – water? Clothes? A donut? I took a donut, then continued on as he zoomed up the road.



Three ominous signs on the way to Dante’s View…
31km in, everything changed. The road made a hard right, the landscape changed from a canyon to a wide-open prairie, and the wind, now a straight headwind, became stronger. And to my left, across the prairie, I saw the mist of rain marching toward me.
I was forced to increase my efforts substantially just to make meaningful progress. Not only was the wind stouter, but the road was steeper. (I didn’t realize this at the time, because Death Valley road pitches are oddly confusing. Sometimes it’s hard to know if you’re going up or down, or how steep the road really is!) Minutes before, I’d been climbing at 18kph while holding 210W, and now I was working at 250-275W to move forward at just 10kph. I shot a quick video to record the ridiculousness of it all:
Near the middle of the prairie, I saw Jon’s Tesla coming down the mountain. We pulled over and stopped, both smiling and shaking our heads as the wind howled around us.
“Do you want some warm clothes? I’ve got a wind jacket, some arm warmers…” Jon offered.
“No, I brought a vest, I think it’ll do the job,” I said, realizing it was probably time to put that vest on, as I’d worn just a jersey and bibs thus far, and the temperature was definitely dropping. I pulled out my vest and put it on, and even that took some doing, given how hard the wind was blowing!
We talked a bit more about conditions at the top: “It’s really windy and cold up there,” Jon said. He refilled my bottles with water, and I grabbed a handful of sour gummy worms. “Are you sure you don’t want more clothes?”
I took the arm warmers. And as I pulled them on, I could feel rain starting to fall. At the last minute, I took the wind/rain jacket he offered, because cyclists know it’s OK to ride in the cold, and also OK to ride in the wet. But wet and cold? Not OK.
Bidding Jon farewell, I continued the push across the prairie. It was getting colder. (Looking at my head unit’s data after the ride, the temperature dropped 15°F from the start to the end of the prairie.) I pulled over again and put on the wind jacket. Much better!
I gritted my teeth, counting down the kilometers.
7 to go… 6 to go… just keep pushing…
I found myself alternatively yelling into the wind, yelling at myself to keep pushing, and laughing whenever a particularly hard gust came up. It felt wild and crazy, but I also felt alive. It was man vs nature, me vs the mountain. I wasn’t giving up.
The interminable prairie section transitioned to a canyon road with 5km to go, and I began to longingly look around each corner, hoping the end would be in sight. The wind was howling down the canyon, my hands were growing numb, but I couldn’t stop now, not when I was so close!
After what felt like an endless number of blind curves with no end in sight, I rounded a corner to see the finish. But I groaned out loud when I saw it: the road pitch was unreal! Cars were driving up and down the final stretch, and it looked like they were climbing straight up into the sky.
“There’s no way I can climb that without stopping or walking the bike,” I thought to myself. But I gritted my teeth and began to hammer as the road pitched up to 15%. I used every trick in the book, swinging wide on the corners to flatten them out, alternating standing and sitting to recruit every muscle possible.
A cyclist came down from the top, the second one I’d seen on the day, and ominously yelled as he came past, “It’s worse coming down!”
I kept pushing, and soon came to a startling realization: I was going to make it. I wouldn’t need to stop and rest.
Despite the temperature now being squarely at 32°F, it was like the clouds parted and the sun came out. Hallelujah! I was at the top!



I stuck around for perhaps 10 minutes, drinking in the view while taking lots of pictures. It was a dizzying sight to look over the steep ledge and see Badwater Basin 5757′ feet below.
But the wind was howling, and my hands weren’t regaining feeling. Neither were my wet toes. I needed to get off that mountain before a deeper chill set in.
So I saddled up and began the tricky descent down the wet, steep switchbacks. The wind was howling in my ears, and I realized that rider was correct: it was worse coming down!
I figured the wind would subside as I made my way down, but it kept blowing hard, a crosswind hitting my front wheel and forcing me to constantly lean left to avoid being blown off the road. It was sketchy, and I was riding my brakes just to stay in control. I stopped twice to shake out my hands, to regain feeling. And as I left the prairie, I could feel the temperature warming.
I thought I’d descend the 40km home in well under an hour, but it actually took me 70 minutes due to constant braking in hard crosswinds. I can honestly say I enjoyed the climb more than the descent… and that’s saying something!
But don’t get me wrong. If I had to do it all over again, I’d do it all over again. This was one of those epic rides that builds confidence and reminds you of what cycling is all about. If you ever get a chance to ride to Dante’s View, do it.
Just bring warm clothes.
This was one of those rare adventure weekends that all true cyclists love. It had the key elements: riding with friends, battling the weather, admiring new landscapes, and even conquering an epic climb. That kind of stuff is good for the soul, making memories while building physical and mental toughness.
While we were forced to change our initial plans, I’m happy we were able to repurpose those lemons into fine lemonade. Now I have to decide: where next? I’m open to suggestions…
Once again, this week’s top events come completely from Zwift’s community organizers! We’ve got two popular race series, a couple of feel-good group rides, and an extra-long ride with three pace options. See our picks below!

✅ Popular  ✅ Race of Truth
Cycling Time Trials (CTT) – the national governing body for time trials in England, Scotland, and Wales – launched their Winter Time Trial Series last week on Zwift. It’s proving hugely popular, with over a thousand finishers last week!
Learn all about the Cycling Time Trials Winter Series >
This week, due to popular demand, they’ve expanded their Saturday offering to two different events to accommodate riders in different time zones. Everyone is racing on Watopia’s Triple Twist (24.5km, 201m).
Two time slots on Saturday, November 22
Sign up at zwift.com/events/tag/cyclingtimetrials

✅ Good Cause  ✅ Endurance  
Regular ride leader Whitney Stidham was in a terrible bike crash back in September, and this Saturday is her first Saturday back, leading the 100km Giant Bagel Rolls Ride she’s led in the past. Join her, support her recovery, give her a Ride On, and get some endurance miles in!
Riders will be on Watopia’s Sugar Cookie route for 100km, at a 2.6-2.8 W/kg pace.
Saturday, November 22 @ 2pm UTC/9am ET/6am PT
Sign up at zwift.com/events/view/5210821

✅ Unique Event  ✅ Popular  ✅ Polish
This event’s description text is entire in Polish, but it’s also got a lot of signups, earning it a spot on this list!
This is the second stage of a 5-week series which features a unique categorization scheme. Riders are categorized based on Zwift Racing Score, but into just two categories: 0-500, and 500-1000, with the higher category racing a longer route!
0-500 racers will be on Spinfinity (19.5km, 155m) while 500-1000 riders will be on Spinfinity Ultra (35km, 291m).
Saturday, November 22 @ 4pm UTC/11am EST/8am PST
Sign up at zwift.com/events/view/5197966

✅ Popular  ✅ Happy Birthday  ✅ Beginner-Friendly
The Galaxy squad is celebrating teammate Gaby’s 80th birthday with a beginner-friendly spin around France’s Three Musketeers route (37.8km, 209m) on Saturday. The ride is not rubberbanded, but will be led at a pace of 1.6-2.2 W/kg.
Lots of riders already signed up for this one, and Galaxy says, “Everyone is welcome! However, we are looking to be especially encouraging to see ladies who are newer to Zwift, those trying to boost their fitness and endurance, or wanting to learn how to get more from their training just like Gaby does!”
Saturday, November 22 @ 3pm UTC/10am EST/7am PST
Sign up at zwift.com/events/view/5151813

✅ Popular Ride ✅ Legacy Leader ✅ Endurance Challenge ✅ Kit Unlock
A regularly featured event here on Zwift Insider, the BMTR Flat 100 consistently gets lots of joiners because it’s well-led and run consistently week after week, year after year.
This week’s ride is on Makuri Islands’ Wandering Flats, with three pace groups to choose from.
Saturday, November 22 @ 1:10pm UTC/8:10am EST/5:10am PST
Sign up at zwift.com/events/view/5210803
We choose each weekend’s Notable Events based on a variety of factors including:
In the end, we want to call attention to events that are extra-special and therefore extra-appealing to Zwifters. If you think your event qualifies, comment below with a link/details and we may just include it in an upcoming post!