<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
  <title>The Tour du Pain blog</title>
  <subtitle>What is new in Tour du Pain, the indoor cycling game in your browser.</subtitle>
  <link rel="self" type="application/atom+xml" href="https://tourdupain.app/blog/feed.xml"/>
  <link rel="alternate" type="text/html" href="https://tourdupain.app/blog"/>
  <id>https://tourdupain.app/blog</id>
  <updated>2026-11-08T12:00:00+01:00</updated>
  <author><name>Tour du Pain</name><uri>https://tourdupain.app/</uri></author>
  <icon>https://tourdupain.app/favicon.svg</icon>
  <entry>
    <title>The Col du Pain next to Alpe d'Huez, Mont Ventoux and the Cauberg</title>
    <link rel="alternate" type="text/html" href="https://tourdupain.app/blog/col-du-pain-vs-famous-climbs"/>
    <id>https://tourdupain.app/blog/col-du-pain-vs-famous-climbs</id>
    <published>2026-11-08T12:00:00+01:00</published>
    <updated>2026-11-08T12:00:00+01:00</updated>
    <summary>Tour du Pain's Col du Pain is 974 m long with 73 m of climbing. We drew it to scale next to Alpe d'Huez, Mont Ventoux and the Cauberg and counted repeats.</summary>
    <content type="html">&lt;p&gt;The Col du Pain is the one climb in Tour du Pain: 974 metres long with 73 metres of climbing, two hairpins and snow near the top. We put it next to three real climbs that every cyclist knows, Alpe d'Huez, Mont Ventoux and the Cauberg, on the same scale. It's small. It's also steeper than you'd think, and it climbs more than the Cauberg.&lt;/p&gt;
&lt;h2 id=&quot;the-numbers-side-by-side&quot;&gt;The numbers, side by side&lt;/h2&gt;
&lt;p&gt;The Col's numbers come straight from the game's code: the climb is timed from the &amp;quot;Début du Col&amp;quot; banner to the summit line, 974 m with 73 m of height gained. The real climbs come from their Wikipedia pages (links at the bottom).&lt;/p&gt;
&lt;div class=&quot;table&quot; role=&quot;region&quot; aria-label=&quot;Climb, Length, Height gained, Average gradient, Hairpins&quot; tabindex=&quot;0&quot;&gt;&lt;table&gt;
&lt;thead&gt;&lt;tr&gt;&lt;th scope=&quot;col&quot;&gt;Climb&lt;/th&gt;&lt;th scope=&quot;col&quot;&gt;Length&lt;/th&gt;&lt;th scope=&quot;col&quot;&gt;Height gained&lt;/th&gt;&lt;th scope=&quot;col&quot;&gt;Average gradient&lt;/th&gt;&lt;th scope=&quot;col&quot;&gt;Hairpins&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;&lt;th scope=&quot;row&quot;&gt;Col du Pain (Tour du Pain)&lt;/th&gt;&lt;td&gt;974 m&lt;/td&gt;&lt;td&gt;73 m&lt;/td&gt;&lt;td&gt;7.5 %&lt;/td&gt;&lt;td&gt;2&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th scope=&quot;row&quot;&gt;Cauberg (Valkenburg)&lt;/th&gt;&lt;td&gt;1.2 km&lt;/td&gt;&lt;td&gt;69 m&lt;/td&gt;&lt;td&gt;5.8 %&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th scope=&quot;row&quot;&gt;Alpe d'Huez (from Le Bourg-d'Oisans)&lt;/th&gt;&lt;td&gt;13.8 km&lt;/td&gt;&lt;td&gt;1,120 m&lt;/td&gt;&lt;td&gt;8.1 %&lt;/td&gt;&lt;td&gt;21&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th scope=&quot;row&quot;&gt;Mont Ventoux (from Bédoin)&lt;/th&gt;&lt;td&gt;21.8 km&lt;/td&gt;&lt;td&gt;1,617 m&lt;/td&gt;&lt;td&gt;7.4 %&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;
&lt;div class=&quot;solo&quot;&gt;&lt;figure&gt;&lt;img src=&quot;https://tourdupain.app/media/w5-climb-profiles-1600.webp&quot; srcset=&quot;https://tourdupain.app/media/w5-climb-profiles-800.webp 800w, https://tourdupain.app/media/w5-climb-profiles-1600.webp 1600w&quot; sizes=&quot;(min-width: 62rem) 58rem, calc(100vw - 32px)&quot; width=&quot;1600&quot; height=&quot;1000&quot; alt=&quot;Elevation profiles of Mont Ventoux, Alpe d'Huez, the Cauberg and the Col du Pain drawn to one scale, with the Col and the Cauberg zoomed in&quot; decoding=&quot;async&quot; loading=&quot;lazy&quot;&gt;&lt;figcaption&gt;All four climbs on one scale. The Col du Pain and the Cauberg fit in the bottom-left corner, so the box zooms in on them.&lt;/figcaption&gt;&lt;/figure&gt;&lt;/div&gt;
&lt;p&gt;At the same scale the Col du Pain is a small gold triangle in the corner. Ventoux is 22 times longer and climbs 22 times higher. That's the honest picture, and we drew it that way on purpose.&lt;/p&gt;
&lt;h2 id=&quot;where-the-col-wins&quot;&gt;Where the Col wins&lt;/h2&gt;
&lt;p&gt;Look at the average gradient column again. The Col's 7.5 % is a touch steeper than Ventoux from Bédoin (7.43 % on Wikipedia) and only 0.6 points softer than Alpe d'Huez. It's a lot steeper than the Cauberg's 5.8 %, and it gains 4 m more height in 226 m less road.&lt;/p&gt;
&lt;p&gt;The game builds it from straight legs at 7.8 %, two hairpins that ease to 4.5 % so you can breathe, and a last ramp of 9.5 % to the line. The Cauberg's steepest bit is 12 %, so the Dutch climb keeps that record.&lt;/p&gt;
&lt;div class=&quot;solo&quot;&gt;&lt;figure&gt;&lt;img src=&quot;https://tourdupain.app/media/w5-col-foot-1600.webp&quot; srcset=&quot;https://tourdupain.app/media/w5-col-foot-800.webp 800w, https://tourdupain.app/media/w5-col-foot-1600.webp 1600w&quot; sizes=&quot;(min-width: 62rem) 58rem, calc(100vw - 32px)&quot; width=&quot;1600&quot; height=&quot;900&quot; alt=&quot;Two riders climb past waving fans, with the Col du Pain card showing 960 m and 73 m up still to go&quot; decoding=&quot;async&quot; loading=&quot;lazy&quot;&gt;&lt;figcaption&gt;The foot of the climb. The card counts down the metres and the height still to come.&lt;/figcaption&gt;&lt;/figure&gt;&lt;/div&gt;
&lt;h2 id=&quot;how-many-col-climbs-make-an-alpe-d-huez&quot;&gt;How many Col climbs make an Alpe d'Huez?&lt;/h2&gt;
&lt;p&gt;You can't ride the Col twice in a row; it's a branch off the 8.3 km lake loop. It turns off at 4.9 km, climbs to the top, drops down the back on its own road and joins the loop again at 5.3 km. A lap that takes the Col is 9.93 km and climbs about 102 m: 73 m on the timed climb, a little on the way to its foot, and about 26 m on the loop itself, mostly the viaduct over the lake.&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;&lt;strong&gt;Alpe d'Huez:&lt;/strong&gt; 1,120 m ÷ 102 m is 11 laps with the Col, about 109 km. The real thing is 13.8 km.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Mont Ventoux from Bédoin:&lt;/strong&gt; 1,617 m ÷ 102 m is 16 laps, about 159 km. That's nearly a 100-mile ride to match one mountain.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;The 21 hairpins of Alpe d'Huez:&lt;/strong&gt; at two per climb you'd need 10.5 climbs, so 11 laps again. The numbers agree, which pleased us more than it should.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;The Cauberg:&lt;/strong&gt; one Col climb covers it, with 4 m to spare.&lt;/li&gt;
&lt;/ul&gt;
&lt;div class=&quot;solo&quot;&gt;&lt;figure&gt;&lt;img src=&quot;https://tourdupain.app/media/w5-bread-a-1600.webp&quot; srcset=&quot;https://tourdupain.app/media/w5-bread-a-800.webp 800w, https://tourdupain.app/media/w5-bread-a-1600.webp 1600w&quot; sizes=&quot;(min-width: 62rem) 58rem, calc(100vw - 32px)&quot; width=&quot;1600&quot; height=&quot;900&quot; alt=&quot;From the saddle: a roadside sign for the Col du Pain, 1.0 km at 7.5 %, with a plate showing one extra baguette, and the Take the Col card on screen&quot; decoding=&quot;async&quot; loading=&quot;lazy&quot;&gt;&lt;figcaption&gt;The turn-off at 4.9 km. The sign promises 1.0 km at 7.5 % and one extra baguette.&lt;/figcaption&gt;&lt;/figure&gt;&lt;/div&gt;
&lt;h2 id=&quot;how-long-does-it-take&quot;&gt;How long does it take?&lt;/h2&gt;
&lt;p&gt;We ran the game's own physics for a 75 kg rider on an 8 kg bike, riding steady from the foot to the line. At 200 W the climb takes about 5 minutes 20 seconds. At 250 W it's about 4 minutes 19, and at 300 W about 3 minutes 39. Your own time depends on your weight and your watts, and the &lt;a href=&quot;https://tourdupain.app/col-du-pain&quot;&gt;weekly leaderboard&lt;/a&gt; shows who went fastest; the week's best wears the polka-dot jersey.&lt;/p&gt;
&lt;p&gt;One honest note: the gradient changes your speed in the game, but your smart trainer still feels flat on the Col. In ERG mode you hold your target power, as you would in an &lt;a href=&quot;https://tourdupain.app/erg-workouts&quot;&gt;ERG workout&lt;/a&gt;. If you don't know what you can hold for five minutes, a &lt;a href=&quot;https://tourdupain.app/ftp-ramp-test&quot;&gt;ramp test&lt;/a&gt; gives you an FTP to start from.&lt;/p&gt;
&lt;div class=&quot;solo&quot;&gt;&lt;figure&gt;&lt;img src=&quot;https://tourdupain.app/media/w5-col-top-1600.webp&quot; srcset=&quot;https://tourdupain.app/media/w5-col-top-800.webp 800w, https://tourdupain.app/media/w5-col-top-1600.webp 1600w&quot; sizes=&quot;(min-width: 62rem) 58rem, calc(100vw - 32px)&quot; width=&quot;1600&quot; height=&quot;900&quot; alt=&quot;A rider climbs the last metres of the Col du Pain between barriers packed with fans, snow on the slopes and the Eiffel Tower on the horizon&quot; decoding=&quot;async&quot; loading=&quot;lazy&quot;&gt;&lt;figcaption&gt;The last 150 m, between packed barriers. The final ramp is the steepest part, up to 9.5 %.&lt;/figcaption&gt;&lt;/figure&gt;&lt;/div&gt;
&lt;h2 id=&quot;so-is-it-a-real-climb&quot;&gt;So, is it a real climb?&lt;/h2&gt;
&lt;p&gt;It's a short one. Think of it as a hard four to six minutes with a crowd, a snowline and a timer, about the size of a climb in an Ardennes classic. It won't make you an Alpe d'Huez rider in one go, but eleven laps with the Col would, at least on paper. Each climb also earns one extra baguette in the game, on top of the one every 5 km.&lt;/p&gt;
&lt;p&gt;You can try the turn-off in the &lt;a href=&quot;https://tourdupain.app/demo&quot;&gt;demo&lt;/a&gt; without a trainer, or open the game and take it on your next lap.&lt;/p&gt;
&lt;div class=&quot;cta&quot;&gt;&lt;a class=&quot;btn btn-go&quot; href=&quot;https://tourdupain.app/&quot;&gt;Open Tour du Pain&lt;/a&gt;&lt;a class=&quot;btn&quot; href=&quot;https://tourdupain.app/demo&quot;&gt;Try the demo, no trainer needed&lt;/a&gt;&lt;/div&gt;
&lt;h2 id=&quot;sources&quot;&gt;Sources&lt;/h2&gt;
&lt;p&gt;Real-world numbers checked on 8 November 2026: &lt;a href=&quot;https://en.wikipedia.org/wiki/Alpe_d%27Huez&quot; rel=&quot;noopener&quot;&gt;Alpe d'Huez on Wikipedia&lt;/a&gt; (13.8 km, 1,120 m, 8.1 %, 21 hairpins), &lt;a href=&quot;https://en.wikipedia.org/wiki/Mont_Ventoux&quot; rel=&quot;noopener&quot;&gt;Mont Ventoux on Wikipedia&lt;/a&gt; (from Bédoin 21.8 km, 1,617 m, 7.43 %) and &lt;a href=&quot;https://en.wikipedia.org/wiki/Cauberg&quot; rel=&quot;noopener&quot;&gt;the Cauberg on Wikipedia&lt;/a&gt; (1.2 km, 69 m, 5.8 %, steepest 12 %). Col du Pain numbers and climb times are from Tour du Pain's course and physics code. The profiles of the real climbs are drawn at their average gradient.&lt;/p&gt;</content>
  </entry>
  <entry>
    <title>How many croissants is your indoor ride?</title>
    <link rel="alternate" type="text/html" href="https://tourdupain.app/blog/croissants-per-ride"/>
    <id>https://tourdupain.app/blog/croissants-per-ride</id>
    <published>2026-11-08T12:00:00+01:00</published>
    <updated>2026-11-08T12:00:00+01:00</updated>
    <summary>Your indoor ride in kJ, croissants and baguettes: a table from 100 to 300 W, a lap of the lake and a Col du Pain climb, with the sources behind it.</summary>
    <content type="html">&lt;p&gt;Your indoor ride in croissants is easy to work out once you know one trick: on a bike, the work you do in kilojoules (kJ) is close to the food energy you burn in kilocalories (kcal). An hour at 200 W is 720 kJ, so roughly 720 kcal, or about three croissants. Below is the table for rides from 100 to 300 W, with a lap of Tour du Pain's lake and a climb of the Col du Pain added for fun.&lt;/p&gt;
&lt;h2 id=&quot;why-kj-is-roughly-kcal-on-a-bike&quot;&gt;Why kJ is roughly kcal on a bike&lt;/h2&gt;
&lt;p&gt;A power meter or smart trainer measures the work you put into the pedals. Watts times seconds gives joules, so 200 W for 3,600 s is 720,000 J, or 720 kJ.&lt;/p&gt;
&lt;p&gt;Your body isn't that efficient. Most of the energy you burn turns into heat; only about a fifth to a quarter reaches the pedals. That share is called gross efficiency. A kilocalorie is 4.184 kJ, and 1 ÷ 4.184 is 0.24, so at 24 % efficiency one kJ of work costs exactly one kcal of food. That's where the rule of thumb comes from.&lt;/p&gt;
&lt;p&gt;It's a rough rule. A 2013 study in &lt;em&gt;Medicine &amp;amp; Science in Sports &amp;amp; Exercise&lt;/em&gt; measured national-team cyclists at about 18.5 % efficiency and suggested multiplying work by 5.3 to get energy burned, which works out at about 1.27 kcal per kJ. So if anything, the croissant counts below are on the low side: add a quarter if you want the study's number.&lt;/p&gt;
&lt;h2 id=&quot;the-food-we-re-counting&quot;&gt;The food we're counting&lt;/h2&gt;
&lt;p&gt;We used the USDA's FoodData Central, the US national food database. A butter croissant has 406 kcal per 100 g, and the database lists a medium croissant at 57 g: &lt;strong&gt;231 kcal&lt;/strong&gt;. French bread has 272 kcal per 100 g. A baguette in France typically weighs about 250 g (Wikipedia notes no law fixes it), so one baguette is about &lt;strong&gt;680 kcal&lt;/strong&gt;.&lt;/p&gt;
&lt;h2 id=&quot;the-table&quot;&gt;The table&lt;/h2&gt;
&lt;p&gt;Work in kJ is plain arithmetic: watts × minutes × 60 ÷ 1,000. Croissants and baguettes use the 1 kJ ≈ 1 kcal rule.&lt;/p&gt;
&lt;div class=&quot;table&quot; role=&quot;region&quot; aria-label=&quot;Ride, Work, Croissants, Baguettes&quot; tabindex=&quot;0&quot;&gt;&lt;table&gt;
&lt;thead&gt;&lt;tr&gt;&lt;th scope=&quot;col&quot;&gt;Ride&lt;/th&gt;&lt;th scope=&quot;col&quot;&gt;Work&lt;/th&gt;&lt;th scope=&quot;col&quot;&gt;Croissants&lt;/th&gt;&lt;th scope=&quot;col&quot;&gt;Baguettes&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;&lt;th scope=&quot;row&quot;&gt;100 W for 30 min&lt;/th&gt;&lt;td&gt;180 kJ&lt;/td&gt;&lt;td&gt;0.8&lt;/td&gt;&lt;td&gt;0.3&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th scope=&quot;row&quot;&gt;100 W for 60 min&lt;/th&gt;&lt;td&gt;360 kJ&lt;/td&gt;&lt;td&gt;1.6&lt;/td&gt;&lt;td&gt;0.5&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th scope=&quot;row&quot;&gt;150 W for 60 min&lt;/th&gt;&lt;td&gt;540 kJ&lt;/td&gt;&lt;td&gt;2.3&lt;/td&gt;&lt;td&gt;0.8&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th scope=&quot;row&quot;&gt;200 W for 30 min&lt;/th&gt;&lt;td&gt;360 kJ&lt;/td&gt;&lt;td&gt;1.6&lt;/td&gt;&lt;td&gt;0.5&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th scope=&quot;row&quot;&gt;200 W for 60 min&lt;/th&gt;&lt;td&gt;720 kJ&lt;/td&gt;&lt;td&gt;3.1&lt;/td&gt;&lt;td&gt;1.1&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th scope=&quot;row&quot;&gt;200 W for 90 min&lt;/th&gt;&lt;td&gt;1,080 kJ&lt;/td&gt;&lt;td&gt;4.7&lt;/td&gt;&lt;td&gt;1.6&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th scope=&quot;row&quot;&gt;250 W for 60 min&lt;/th&gt;&lt;td&gt;900 kJ&lt;/td&gt;&lt;td&gt;3.9&lt;/td&gt;&lt;td&gt;1.3&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th scope=&quot;row&quot;&gt;300 W for 30 min&lt;/th&gt;&lt;td&gt;540 kJ&lt;/td&gt;&lt;td&gt;2.3&lt;/td&gt;&lt;td&gt;0.8&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th scope=&quot;row&quot;&gt;300 W for 60 min&lt;/th&gt;&lt;td&gt;1,080 kJ&lt;/td&gt;&lt;td&gt;4.7&lt;/td&gt;&lt;td&gt;1.6&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th scope=&quot;row&quot;&gt;300 W for 120 min&lt;/th&gt;&lt;td&gt;2,160 kJ&lt;/td&gt;&lt;td&gt;9.3&lt;/td&gt;&lt;td&gt;3.2&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th scope=&quot;row&quot;&gt;One lap of the lake at 200 W (about 15 min)&lt;/th&gt;&lt;td&gt;181 kJ&lt;/td&gt;&lt;td&gt;0.8&lt;/td&gt;&lt;td&gt;0.3&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th scope=&quot;row&quot;&gt;One Col du Pain climb at 250 W (about 4 min 19 s)&lt;/th&gt;&lt;td&gt;65 kJ&lt;/td&gt;&lt;td&gt;0.3&lt;/td&gt;&lt;td&gt;0.1&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;
&lt;p&gt;The lap and the climb times come from the game's own physics for a 75 kg rider on an 8 kg bike, riding alone at steady power. The &lt;a href=&quot;https://tourdupain.app/col-du-pain&quot;&gt;Col du Pain&lt;/a&gt; is short: a hard climb at 250 W is worth less than a third of a croissant. We're sorry.&lt;/p&gt;
&lt;div class=&quot;solo&quot;&gt;&lt;figure&gt;&lt;img src=&quot;https://tourdupain.app/media/w5-bread-b-1600.webp&quot; srcset=&quot;https://tourdupain.app/media/w5-bread-b-800.webp 800w, https://tourdupain.app/media/w5-bread-b-1600.webp 1600w&quot; sizes=&quot;(min-width: 62rem) 58rem, calc(100vw - 32px)&quot; width=&quot;1600&quot; height=&quot;900&quot; alt=&quot;Two riders on the road at 4.8 km with the HUD reading bread ahead, and a card offering the Col du Pain turn-off&quot; decoding=&quot;async&quot; loading=&quot;lazy&quot;&gt;&lt;figcaption&gt;Just before 5 km the HUD says bread ahead. That baguette doesn't count as food.&lt;/figcaption&gt;&lt;/figure&gt;&lt;/div&gt;
&lt;h2 id=&quot;game-bread-is-a-different-thing&quot;&gt;Game bread is a different thing&lt;/h2&gt;
&lt;p&gt;Tour du Pain has its own bread, and it isn't food. The game hands out a baguette for every 5 km you ride on your own legs, and since 4 November one extra baguette for each climb of the Col du Pain. In free ride a Frenchman holds it out at the roadside; in workouts the bakery van pulls up beside you at the 5 km marks.&lt;/p&gt;
&lt;p&gt;The game is more generous than your stomach. An hour at 200 W covers about 33 km on the loop in the game, so that's six game baguettes. In real food the same hour burned about one baguette's worth. Please don't eat six.&lt;/p&gt;
&lt;div class=&quot;solo&quot;&gt;&lt;figure&gt;&lt;img src=&quot;https://tourdupain.app/media/w5-report-z2-1600.webp&quot; srcset=&quot;https://tourdupain.app/media/w5-report-z2-800.webp 800w, https://tourdupain.app/media/w5-report-z2-1600.webp 1600w&quot; sizes=&quot;(min-width: 62rem) 58rem, calc(100vw - 32px)&quot; width=&quot;1600&quot; height=&quot;900&quot; alt=&quot;The ride report after a session, with the distance, time and the baguettes earned&quot; decoding=&quot;async&quot; loading=&quot;lazy&quot;&gt;&lt;figcaption&gt;The report after an hour of zone 2: the game bread you earned. Your watts go into the .fit file.&lt;/figcaption&gt;&lt;/figure&gt;&lt;/div&gt;
&lt;h2 id=&quot;where-to-find-your-own-kj&quot;&gt;Where to find your own kJ&lt;/h2&gt;
&lt;p&gt;Tour du Pain records your power second by second, and every ride gives you a .fit file. Upload it to &lt;a href=&quot;https://tourdupain.app/strava-garmin-fit&quot;&gt;Strava, Garmin Connect or intervals.icu&lt;/a&gt; and you'll see the total work in kJ, often labelled as energy output or calories. If an app shows &amp;quot;calories&amp;quot; equal to your kJ, it's using the same rule of thumb.&lt;/p&gt;
&lt;p&gt;Structured &lt;a href=&quot;https://tourdupain.app/erg-workouts&quot;&gt;ERG workouts&lt;/a&gt; are the easiest way to hit a number in the table: the trainer holds the watts, so an hour of 200 W is really an hour of 200 W.&lt;/p&gt;
&lt;h2 id=&quot;a-few-honest-caveats&quot;&gt;A few honest caveats&lt;/h2&gt;
&lt;ul&gt;
  &lt;li&gt;This counts the energy your legs used, not your whole day. Your body burns energy sitting still too.&lt;/li&gt;
  &lt;li&gt;Efficiency differs from rider to rider, roughly 18 to 25 %, so treat every number here as a good estimate, not a measurement.&lt;/li&gt;
  &lt;li&gt;Croissants vary a lot. A big bakery croissant can be 80 g or more.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;If you want to earn the game bread without a trainer, the &lt;a href=&quot;https://tourdupain.app/demo&quot;&gt;demo&lt;/a&gt; lets you ride a few minutes on the keyboard.&lt;/p&gt;
&lt;div class=&quot;cta&quot;&gt;&lt;a class=&quot;btn btn-go&quot; href=&quot;https://tourdupain.app/&quot;&gt;Open Tour du Pain&lt;/a&gt;&lt;a class=&quot;btn&quot; href=&quot;https://tourdupain.app/demo&quot;&gt;Try the demo, no trainer needed&lt;/a&gt;&lt;/div&gt;
&lt;h2 id=&quot;sources&quot;&gt;Sources&lt;/h2&gt;
&lt;p&gt;Checked on 8 November 2026: &lt;a href=&quot;https://fdc.nal.usda.gov/food-details/174987/nutrients&quot; rel=&quot;noopener&quot;&gt;USDA FoodData Central, croissants, butter&lt;/a&gt; (406 kcal per 100 g, medium croissant 57 g), &lt;a href=&quot;https://fdc.nal.usda.gov/food-details/172675/nutrients&quot; rel=&quot;noopener&quot;&gt;USDA FoodData Central, French or Vienna bread&lt;/a&gt; (272 kcal per 100 g), &lt;a href=&quot;https://en.wikipedia.org/wiki/Baguette&quot; rel=&quot;noopener&quot;&gt;Wikipedia on the baguette&lt;/a&gt; (about 250 g in France), and the gross efficiency study &lt;a href=&quot;https://pubmed.ncbi.nlm.nih.gov/23470312/&quot; rel=&quot;noopener&quot;&gt;Energy expenditure of constant- and variable-intensity cycling: power meter estimates&lt;/a&gt; (about 18.5 %, work × 5.3). The game's bread rules are in the &lt;a href=&quot;https://tourdupain.app/updates#v1-30-0&quot;&gt;update log&lt;/a&gt;.&lt;/p&gt;</content>
  </entry>
  <entry>
    <title>Paris-Roubaix in laps of the lake: famous rides measured in Tour du Pain</title>
    <link rel="alternate" type="text/html" href="https://tourdupain.app/blog/famous-rides-in-laps"/>
    <id>https://tourdupain.app/blog/famous-rides-in-laps</id>
    <published>2026-11-08T12:00:00+01:00</published>
    <updated>2026-11-08T12:00:00+01:00</updated>
    <summary>Paris-Roubaix is 31 laps of Tour du Pain's 8.3 km lake loop. Milan-San Remo, an Ironman bike leg and the Elfstedentocht, measured the same way.</summary>
    <content type="html">&lt;p&gt;Paris-Roubaix is 31 laps of the lake in Tour du Pain. The game has one road, an 8.3 km loop around a French lake, so every distance becomes a number of laps. We took nine famous rides, from an Ironman 70.3 bike leg to Milan-San Remo, and worked out how many laps each one is, how long it would take at a steady pace and how much game bread it would earn.&lt;/p&gt;
&lt;h2 id=&quot;the-rules-of-the-game&quot;&gt;The rules of the game&lt;/h2&gt;
&lt;p&gt;One lap is 8.3 km, straight from the game's course data. Laps are the distance divided by 8.3, nothing more. For time we picked a steady 30 km/h, which is about what 150 W gives you on the loop in the game: a lap takes about 17 minutes at that power for a 75 kg rider riding alone. Faster riders can halve the hours in their head; the laps stay the same.&lt;/p&gt;
&lt;p&gt;Tour du Pain also hands out a game baguette every 5 km, so we counted those too. They're game bread, not food.&lt;/p&gt;
&lt;div class=&quot;solo&quot;&gt;&lt;figure&gt;&lt;img src=&quot;https://tourdupain.app/media/w5-rides-in-laps-1600.webp&quot; srcset=&quot;https://tourdupain.app/media/w5-rides-in-laps-800.webp 800w, https://tourdupain.app/media/w5-rides-in-laps-1600.webp 1600w&quot; sizes=&quot;(min-width: 62rem) 58rem, calc(100vw - 32px)&quot; width=&quot;1600&quot; height=&quot;1008&quot; alt=&quot;Bars showing nine famous rides as notched bars, one notch per lap of the lake, from 10.8 laps for an Ironman 70.3 bike leg to 35.9 laps for Milan-San Remo&quot; decoding=&quot;async&quot; loading=&quot;lazy&quot;&gt;&lt;figcaption&gt;Every notch is one lap of the lake. Milan-San Remo almost fills the scale.&lt;/figcaption&gt;&lt;/figure&gt;&lt;/div&gt;
&lt;h2 id=&quot;nine-famous-rides-in-laps&quot;&gt;Nine famous rides, in laps&lt;/h2&gt;
&lt;div class=&quot;table&quot; role=&quot;region&quot; aria-label=&quot;Ride, Distance, Laps of the lake, Hours at 30 km/h, Game baguettes&quot; tabindex=&quot;0&quot;&gt;&lt;table&gt;
&lt;thead&gt;&lt;tr&gt;&lt;th scope=&quot;col&quot;&gt;Ride&lt;/th&gt;&lt;th scope=&quot;col&quot;&gt;Distance&lt;/th&gt;&lt;th scope=&quot;col&quot;&gt;Laps of the lake&lt;/th&gt;&lt;th scope=&quot;col&quot;&gt;Hours at 30 km/h&lt;/th&gt;&lt;th scope=&quot;col&quot;&gt;Game baguettes&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;&lt;th scope=&quot;row&quot;&gt;Ironman 70.3 bike leg&lt;/th&gt;&lt;td&gt;90 km&lt;/td&gt;&lt;td&gt;10.8&lt;/td&gt;&lt;td&gt;3 h 00&lt;/td&gt;&lt;td&gt;18&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th scope=&quot;row&quot;&gt;Maratona dles Dolomites, long route&lt;/th&gt;&lt;td&gt;138 km&lt;/td&gt;&lt;td&gt;16.6&lt;/td&gt;&lt;td&gt;4 h 36&lt;/td&gt;&lt;td&gt;27&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th scope=&quot;row&quot;&gt;A century, 100 miles&lt;/th&gt;&lt;td&gt;160.9 km&lt;/td&gt;&lt;td&gt;19.4&lt;/td&gt;&lt;td&gt;5 h 22&lt;/td&gt;&lt;td&gt;32&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th scope=&quot;row&quot;&gt;Tour de France 2026, stage 20&lt;/th&gt;&lt;td&gt;170.9 km&lt;/td&gt;&lt;td&gt;20.6&lt;/td&gt;&lt;td&gt;5 h 42&lt;/td&gt;&lt;td&gt;34&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th scope=&quot;row&quot;&gt;Ironman bike leg&lt;/th&gt;&lt;td&gt;180.2 km&lt;/td&gt;&lt;td&gt;21.7&lt;/td&gt;&lt;td&gt;6 h 00&lt;/td&gt;&lt;td&gt;36&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th scope=&quot;row&quot;&gt;Elfstedentocht, the skating route&lt;/th&gt;&lt;td&gt;199 km&lt;/td&gt;&lt;td&gt;24.0&lt;/td&gt;&lt;td&gt;6 h 38&lt;/td&gt;&lt;td&gt;39&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th scope=&quot;row&quot;&gt;Fietselfstedentocht, the cycling tour&lt;/th&gt;&lt;td&gt;235 km&lt;/td&gt;&lt;td&gt;28.3&lt;/td&gt;&lt;td&gt;7 h 50&lt;/td&gt;&lt;td&gt;47&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th scope=&quot;row&quot;&gt;Paris-Roubaix 2026&lt;/th&gt;&lt;td&gt;258.3 km&lt;/td&gt;&lt;td&gt;31.1&lt;/td&gt;&lt;td&gt;8 h 37&lt;/td&gt;&lt;td&gt;51&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th scope=&quot;row&quot;&gt;Milan-San Remo 2026&lt;/th&gt;&lt;td&gt;298 km&lt;/td&gt;&lt;td&gt;35.9&lt;/td&gt;&lt;td&gt;9 h 56&lt;/td&gt;&lt;td&gt;59&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;
&lt;h3&gt;A few that made us smile&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;Tour de France 2026, stage 20&lt;/strong&gt; ran 170.9 km from Le Bourg-d'Oisans to Alpe d'Huez on 25 July. That's 20.6 laps, and it ends on a climb, so you'd take the &lt;a href=&quot;https://tourdupain.app/col-du-pain&quot;&gt;Col du Pain&lt;/a&gt; turn-off on the last one. The Col is 974 m long; Alpe d'Huez is 13.8 km. We won't pretend they're the same.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Paris-Roubaix 2026&lt;/strong&gt; was 258.3 km on 12 April, with 54.8 km of cobbles in 30 sectors. The cobbles alone are 6.6 laps. Tour du Pain's road is smooth tarmac all the way round, which is either a relief or a cheat, depending on who you ask.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Milan-San Remo 2026&lt;/strong&gt; was 298 km on 21 March, the longest race here: 35.9 laps and close to ten hours at our pace.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;The whole Tour de France 2026&lt;/strong&gt;, all 21 stages, was 3,245 km. Divide by 8.3 and you get 390.96. Call it 391 laps of the lake, or 108 hours at 30 km/h.&lt;/p&gt;
&lt;div class=&quot;solo&quot;&gt;&lt;figure&gt;&lt;img src=&quot;https://tourdupain.app/media/w5-rides-peloton-1600.webp&quot; srcset=&quot;https://tourdupain.app/media/w5-rides-peloton-800.webp 800w, https://tourdupain.app/media/w5-rides-peloton-1600.webp 1600w&quot; sizes=&quot;(min-width: 62rem) 58rem, calc(100vw - 32px)&quot; width=&quot;1600&quot; height=&quot;900&quot; alt=&quot;A bunch of riders rolls into the village of Montbaguette, a few hundred metres before the line&quot; decoding=&quot;async&quot; loading=&quot;lazy&quot;&gt;&lt;figcaption&gt;Montbaguette, 0.3 km before the line. You pass it once per lap: 31 times for a Paris-Roubaix.&lt;/figcaption&gt;&lt;/figure&gt;&lt;/div&gt;
&lt;h2 id=&quot;the-ironman-ones-are-real-training-rides&quot;&gt;The Ironman ones are real training rides&lt;/h2&gt;
&lt;p&gt;The Ironman bike leg is 180.2 km and the 70.3 bike leg is 90 km, so these two are more than trivia. Triathletes do ride these distances indoors. Tour du Pain has workouts built for it, such as &amp;quot;IM Long Ride 4 h&amp;quot;, &amp;quot;IM Simulation 3 h&amp;quot; and &amp;quot;70.3 Simulation 2 h&amp;quot;, and zone 2 rides up to five hours. In ERG mode the trainer holds the power, so your laps go by at whatever watts the workout asks. See &lt;a href=&quot;https://tourdupain.app/triathlon-indoor-training&quot;&gt;indoor training for triathlon&lt;/a&gt; and &lt;a href=&quot;https://tourdupain.app/erg-workouts&quot;&gt;ERG workouts in your browser&lt;/a&gt; for how that works.&lt;/p&gt;
&lt;p&gt;An Ironman bike leg at 30 km/h is exactly 6 hours and 21.7 laps. Our honest advice: put on a podcast.&lt;/p&gt;
&lt;h2 id=&quot;the-elfstedentocht-twice&quot;&gt;The Elfstedentocht, twice&lt;/h2&gt;
&lt;p&gt;The Elfstedentocht is the famous Dutch skating race through the eleven cities of Friesland, about 199 km from Leeuwarden and back. It needs a hard winter and hasn't run since 1997. There's also a cycling version, the Fietselfstedentocht, over 235 km. You can ride either one in laps of a French lake in November, which is about as far from Friesland as it gets.&lt;/p&gt;
&lt;div class=&quot;solo&quot;&gt;&lt;figure&gt;&lt;img src=&quot;https://tourdupain.app/media/w5-rides-pov-1600.webp&quot; srcset=&quot;https://tourdupain.app/media/w5-rides-pov-800.webp 800w, https://tourdupain.app/media/w5-rides-pov-1600.webp 1600w&quot; sizes=&quot;(min-width: 62rem) 58rem, calc(100vw - 32px)&quot; width=&quot;1600&quot; height=&quot;900&quot; alt=&quot;First-person view from the saddle between vineyards in the evening light, with riders ahead&quot; decoding=&quot;async&quot; loading=&quot;lazy&quot;&gt;&lt;figcaption&gt;The vines at 6.2 km, from the saddle. On an Elfstedentocht you'd ride past them 24 times.&lt;/figcaption&gt;&lt;/figure&gt;&lt;/div&gt;
&lt;h2 id=&quot;how-long-does-a-lap-take-for-you&quot;&gt;How long does a lap take for you?&lt;/h2&gt;
&lt;p&gt;At 200 W the game's physics gives about 15 minutes a lap; at 250 W about 14. A lap with the Col du Pain is 9.93 km instead of 8.3, so the laps go up but the count doesn't change much. Riding in a group is more fun for the long ones: on a planned &lt;a href=&quot;https://tourdupain.app/group-rides&quot;&gt;coffee ride&lt;/a&gt; everyone rides beside the host whatever their watts, and voice and chat are part of the game.&lt;/p&gt;
&lt;p&gt;To see a lap before you commit to 31 of them, ride the &lt;a href=&quot;https://tourdupain.app/demo&quot;&gt;demo&lt;/a&gt;, no trainer needed.&lt;/p&gt;
&lt;div class=&quot;cta&quot;&gt;&lt;a class=&quot;btn btn-go&quot; href=&quot;https://tourdupain.app/&quot;&gt;Open Tour du Pain&lt;/a&gt;&lt;a class=&quot;btn&quot; href=&quot;https://tourdupain.app/demo&quot;&gt;Try the demo, no trainer needed&lt;/a&gt;&lt;/div&gt;
&lt;h2 id=&quot;sources&quot;&gt;Sources&lt;/h2&gt;
&lt;p&gt;Checked on 8 November 2026: &lt;a href=&quot;https://en.wikipedia.org/wiki/2026_Paris%E2%80%93Roubaix&quot; rel=&quot;noopener&quot;&gt;2026 Paris-Roubaix&lt;/a&gt; (258.3 km, 54.8 km of cobbles), &lt;a href=&quot;https://en.wikipedia.org/wiki/2026_Milan%E2%80%93San_Remo&quot; rel=&quot;noopener&quot;&gt;2026 Milan-San Remo&lt;/a&gt; (298 km), &lt;a href=&quot;https://en.wikipedia.org/wiki/2026_Tour_de_France&quot; rel=&quot;noopener&quot;&gt;2026 Tour de France&lt;/a&gt; (stage 20, 170.9 km; total 3,245 km), &lt;a href=&quot;https://en.wikipedia.org/wiki/Ironman_Triathlon&quot; rel=&quot;noopener&quot;&gt;Ironman Triathlon&lt;/a&gt; (180.2 km and 90 km bike legs), &lt;a href=&quot;https://en.wikipedia.org/wiki/Elfstedentocht&quot; rel=&quot;noopener&quot;&gt;Elfstedentocht&lt;/a&gt; (about 199 km; the cycling tour 235 km) and &lt;a href=&quot;https://en.wikipedia.org/wiki/Maratona_dles_Dolomites&quot; rel=&quot;noopener&quot;&gt;Maratona dles Dolomites&lt;/a&gt; (138 km long route). A century is 100 miles, 160.9 km. Lap length and lap times are from Tour du Pain's course and physics code.&lt;/p&gt;</content>
  </entry>
  <entry>
    <title>Which indoor cycling app runs on your device?</title>
    <link rel="alternate" type="text/html" href="https://tourdupain.app/blog/indoor-cycling-apps-by-device"/>
    <id>https://tourdupain.app/blog/indoor-cycling-apps-by-device</id>
    <published>2026-11-08T12:00:00+01:00</published>
    <updated>2026-11-08T12:00:00+01:00</updated>
    <summary>Nine indoor cycling apps checked on seven devices: Windows, Mac, Chromebook, Android, iPhone, iPad, Apple TV and the browser. Sourced, gaps marked.</summary>
    <content type="html">&lt;p&gt;Before you pick an indoor cycling app, it's worth checking it runs on the screen you'll actually put by the bike. We went through the support pages of nine apps in November 2026 and filled in one grid: seven devices, nine apps, and an honest mark where we couldn't find out.&lt;/p&gt;
&lt;h2 id=&quot;the-grid&quot;&gt;The grid&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Yes&lt;/strong&gt; means the app's own pages, or its app store listing, say it runs there. &lt;strong&gt;No&lt;/strong&gt; means the app says it doesn't. &lt;strong&gt;Not listed&lt;/strong&gt; means the app's own device list leaves that device out. &lt;strong&gt;Unconfirmed&lt;/strong&gt; means we couldn't find a clear answer either way. We make Tour du Pain, so it goes first.&lt;/p&gt;
&lt;div class=&quot;table&quot; role=&quot;region&quot; aria-label=&quot;App, Windows, Mac, Chromebook, Android tablet, iPhone, iPad, Apple TV, Browser&quot; tabindex=&quot;0&quot;&gt;&lt;table&gt;
&lt;thead&gt;&lt;tr&gt;&lt;th scope=&quot;col&quot;&gt;App&lt;/th&gt;&lt;th scope=&quot;col&quot;&gt;Windows&lt;/th&gt;&lt;th scope=&quot;col&quot;&gt;Mac&lt;/th&gt;&lt;th scope=&quot;col&quot;&gt;Chromebook&lt;/th&gt;&lt;th scope=&quot;col&quot;&gt;Android tablet&lt;/th&gt;&lt;th scope=&quot;col&quot;&gt;iPhone, iPad&lt;/th&gt;&lt;th scope=&quot;col&quot;&gt;Apple TV&lt;/th&gt;&lt;th scope=&quot;col&quot;&gt;Browser&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;&lt;th scope=&quot;row&quot;&gt;Tour du Pain&lt;/th&gt;&lt;td&gt;Yes, Chrome or Edge&lt;/td&gt;&lt;td&gt;Yes, Chrome or Edge&lt;/td&gt;&lt;td&gt;Yes&lt;/td&gt;&lt;td&gt;Yes&lt;/td&gt;&lt;td&gt;No (demo only)&lt;/td&gt;&lt;td&gt;No&lt;/td&gt;&lt;td&gt;Yes&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th scope=&quot;row&quot;&gt;Zwift&lt;/th&gt;&lt;td&gt;Yes&lt;/td&gt;&lt;td&gt;Yes&lt;/td&gt;&lt;td&gt;Not listed&lt;/td&gt;&lt;td&gt;Yes&lt;/td&gt;&lt;td&gt;Yes&lt;/td&gt;&lt;td&gt;Yes&lt;/td&gt;&lt;td&gt;No&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th scope=&quot;row&quot;&gt;MyWhoosh&lt;/th&gt;&lt;td&gt;Yes&lt;/td&gt;&lt;td&gt;Yes&lt;/td&gt;&lt;td&gt;Not listed&lt;/td&gt;&lt;td&gt;Yes&lt;/td&gt;&lt;td&gt;Yes&lt;/td&gt;&lt;td&gt;Yes&lt;/td&gt;&lt;td&gt;No&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th scope=&quot;row&quot;&gt;Rouvy&lt;/th&gt;&lt;td&gt;Yes&lt;/td&gt;&lt;td&gt;Yes&lt;/td&gt;&lt;td&gt;No&lt;/td&gt;&lt;td&gt;Yes&lt;/td&gt;&lt;td&gt;Yes&lt;/td&gt;&lt;td&gt;Yes&lt;/td&gt;&lt;td&gt;No&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th scope=&quot;row&quot;&gt;TrainerRoad&lt;/th&gt;&lt;td&gt;Yes&lt;/td&gt;&lt;td&gt;Yes&lt;/td&gt;&lt;td&gt;No&lt;/td&gt;&lt;td&gt;Yes&lt;/td&gt;&lt;td&gt;Yes&lt;/td&gt;&lt;td&gt;Unconfirmed&lt;/td&gt;&lt;td&gt;No&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th scope=&quot;row&quot;&gt;Wahoo SYSTM&lt;/th&gt;&lt;td&gt;Yes&lt;/td&gt;&lt;td&gt;Yes&lt;/td&gt;&lt;td&gt;Unconfirmed&lt;/td&gt;&lt;td&gt;Yes&lt;/td&gt;&lt;td&gt;Yes&lt;/td&gt;&lt;td&gt;No&lt;/td&gt;&lt;td&gt;No&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th scope=&quot;row&quot;&gt;TrainingPeaks Virtual&lt;/th&gt;&lt;td&gt;Yes&lt;/td&gt;&lt;td&gt;Yes&lt;/td&gt;&lt;td&gt;Not listed&lt;/td&gt;&lt;td&gt;Unconfirmed&lt;/td&gt;&lt;td&gt;Yes&lt;/td&gt;&lt;td&gt;Yes&lt;/td&gt;&lt;td&gt;No&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th scope=&quot;row&quot;&gt;Kinomap&lt;/th&gt;&lt;td&gt;Unconfirmed&lt;/td&gt;&lt;td&gt;Unconfirmed&lt;/td&gt;&lt;td&gt;Unconfirmed&lt;/td&gt;&lt;td&gt;Yes&lt;/td&gt;&lt;td&gt;Yes&lt;/td&gt;&lt;td&gt;Yes&lt;/td&gt;&lt;td&gt;No&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th scope=&quot;row&quot;&gt;Biketerra&lt;/th&gt;&lt;td&gt;Yes&lt;/td&gt;&lt;td&gt;Yes&lt;/td&gt;&lt;td&gt;Unconfirmed&lt;/td&gt;&lt;td&gt;Unconfirmed&lt;/td&gt;&lt;td&gt;Yes, an app&lt;/td&gt;&lt;td&gt;Unconfirmed&lt;/td&gt;&lt;td&gt;Yes, Chrome or Edge&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;
&lt;p&gt;Two patterns stand out. The Apple column is full for most installed apps, and Tour du Pain can't fill it: Safari has no Web Bluetooth, and Chrome on an iPhone or iPad runs on Apple's WebKit engine, which has none either. The Chromebook column is the opposite. Of the nine, only Tour du Pain says plainly that it runs there. Rouvy and TrainerRoad say plainly that they don't.&lt;/p&gt;
&lt;p&gt;The browser column has two names: Tour du Pain and Biketerra. Both need Chrome or Edge, because those browsers have Web Bluetooth. More on that in &lt;a href=&quot;https://tourdupain.app/blog/web-bluetooth-browsers&quot;&gt;which browsers can talk to your smart trainer&lt;/a&gt;.&lt;/p&gt;
&lt;div class=&quot;solo&quot;&gt;&lt;figure&gt;&lt;img src=&quot;https://tourdupain.app/media/tablet-landscape-1600.webp&quot; srcset=&quot;https://tourdupain.app/media/tablet-landscape-800.webp 800w, https://tourdupain.app/media/tablet-landscape-1600.webp 1600w&quot; sizes=&quot;(min-width: 62rem) 58rem, calc(100vw - 32px)&quot; width=&quot;1600&quot; height=&quot;1112&quot; alt=&quot;The game on a tablet held sideways with a bunch on the lake causeway beside the viaduct at sunset&quot; decoding=&quot;async&quot; loading=&quot;lazy&quot;&gt;&lt;figcaption&gt;Tour du Pain on an Android tablet held sideways.&lt;/figcaption&gt;&lt;/figure&gt;&lt;/div&gt;
&lt;h2 id=&quot;windows-laptop-or-mac&quot;&gt;Windows laptop or Mac&lt;/h2&gt;
&lt;p&gt;Eight of the nine say they run on Windows and on a Mac; for Kinomap we couldn't confirm either. Tour du Pain runs in Chrome or Edge, so there's nothing to install, but the computer needs Bluetooth Low Energy. Some older MacBooks don't have it. For graphics settings on an older laptop and putting the ride on a TV, see &lt;a href=&quot;https://tourdupain.app/windows-mac-laptop&quot;&gt;indoor cycling on a Windows laptop or Mac&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id=&quot;chromebook&quot;&gt;Chromebook&lt;/h2&gt;
&lt;p&gt;This is where most riders get stuck. A Chromebook runs neither Windows nor Mac apps, and the support pages we read don't offer a ChromeOS version. The Play Store route is a gamble: Android apps run on many Chromebooks, but Bluetooth to a trainer depends on the app and the model, and Rouvy and TrainerRoad rule it out.&lt;/p&gt;
&lt;p&gt;Chrome on ChromeOS ships Web Bluetooth, so Tour du Pain runs in a normal tab. See &lt;a href=&quot;https://tourdupain.app/chromebook&quot;&gt;indoor cycling on a Chromebook&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id=&quot;android-tablet-or-phone&quot;&gt;Android tablet or phone&lt;/h2&gt;
&lt;p&gt;Android is well covered: seven of the nine apps say they run on it, and the other two are unconfirmed rather than ruled out. Tour du Pain runs in Chrome on Android with the full HUD on a tablet held upright from 768 pixels wide, and a compact HUD on a phone held sideways. See &lt;a href=&quot;https://tourdupain.app/android-tablet&quot;&gt;indoor cycling on an Android tablet or phone&lt;/a&gt;.&lt;/p&gt;
&lt;div class=&quot;solo&quot;&gt;&lt;figure&gt;&lt;img src=&quot;https://tourdupain.app/media/phone-landscape-1600.webp&quot; srcset=&quot;https://tourdupain.app/media/phone-landscape-800.webp 800w, https://tourdupain.app/media/phone-landscape-1600.webp 1600w&quot; sizes=&quot;(min-width: 62rem) 58rem, calc(100vw - 32px)&quot; width=&quot;1600&quot; height=&quot;739&quot; alt=&quot;The game on a phone held sideways with a compact HUD and rider labels&quot; decoding=&quot;async&quot; loading=&quot;lazy&quot;&gt;&lt;figcaption&gt;On a phone held sideways the HUD shrinks a size so more road shows.&lt;/figcaption&gt;&lt;/figure&gt;&lt;/div&gt;
&lt;h2 id=&quot;iphone-ipad-and-apple-tv&quot;&gt;iPhone, iPad and Apple TV&lt;/h2&gt;
&lt;p&gt;If your only screen is an iPad or an Apple TV, pick an installed app: Zwift, MyWhoosh, Rouvy, TrainingPeaks Virtual and Kinomap all run on Apple TV. Tour du Pain can't connect a trainer there. Bluetooth browsers like Bluefy are the one exception on iPhone and iPad, and we haven't tested them.&lt;/p&gt;
&lt;p&gt;What does work on an iPhone or iPad is the &lt;a href=&quot;https://tourdupain.app/demo&quot;&gt;demo&lt;/a&gt;. It uses a simulated trainer and no Bluetooth, so you can see the game before you move the bike next to a laptop.&lt;/p&gt;
&lt;div class=&quot;solo&quot;&gt;&lt;figure&gt;&lt;img src=&quot;https://tourdupain.app/media/demo-ride-1600.webp&quot; srcset=&quot;https://tourdupain.app/media/demo-ride-800.webp 800w, https://tourdupain.app/media/demo-ride-1600.webp 1600w&quot; sizes=&quot;(min-width: 62rem) 58rem, calc(100vw - 32px)&quot; width=&quot;1600&quot; height=&quot;900&quot; alt=&quot;A demo ride starting in a village lined with fans and bunting, with the demo bar at the top&quot; decoding=&quot;async&quot; loading=&quot;lazy&quot;&gt;&lt;figcaption&gt;The demo needs no Bluetooth, so it runs on any phone or tablet.&lt;/figcaption&gt;&lt;/figure&gt;&lt;/div&gt;
&lt;h2 id=&quot;the-browser&quot;&gt;The browser&lt;/h2&gt;
&lt;p&gt;A browser app has nothing to install, updates itself and runs on any computer with Chrome or Edge. The cost is that it depends on the browser: no Safari, no Firefox, no iOS. Tour du Pain can also be installed as an app from Chrome or Edge, which gives it its own window and opens it without a connection once it has run online. See &lt;a href=&quot;https://tourdupain.app/browser-cycling-game&quot;&gt;a cycling game that runs in your browser&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id=&quot;how-we-checked&quot;&gt;How we checked&lt;/h2&gt;
&lt;p&gt;We read each app's own support or download pages and app store listings on 7 November 2026: &lt;a href=&quot;https://support.zwift.com/es/supported-devices-to-run-zwift-H1Cj9QbeB&quot; rel=&quot;noopener&quot;&gt;Zwift's supported devices&lt;/a&gt;, &lt;a href=&quot;https://mywhoosh.com/docs/which-devices-work-with-mywhoosh/&quot; rel=&quot;noopener&quot;&gt;MyWhoosh's device list&lt;/a&gt;, &lt;a href=&quot;https://support.rouvy.com/hc/en-us/articles/360018756118-ROUVY-System-Requirements&quot; rel=&quot;noopener&quot;&gt;Rouvy's system requirements&lt;/a&gt;, &lt;a href=&quot;https://support.trainerroad.com/hc/en-us/articles/17134327444123-How-to-Install-the-TrainerRoad-App&quot; rel=&quot;noopener&quot;&gt;TrainerRoad's install guide&lt;/a&gt; and &lt;a href=&quot;https://support.trainerroad.com/hc/en-us/articles/360018397951-Can-I-Use-TrainerRoad-on-a-Chromebook&quot; rel=&quot;noopener&quot;&gt;its Chromebook answer&lt;/a&gt;, &lt;a href=&quot;https://www.trainingpeaks.com/virtual/&quot; rel=&quot;noopener&quot;&gt;TrainingPeaks Virtual&lt;/a&gt; and &lt;a href=&quot;https://apps.apple.com/us/app/id6480213250&quot; rel=&quot;noopener&quot;&gt;its App Store listing&lt;/a&gt;, &lt;a href=&quot;https://biketerra.com/&quot; rel=&quot;noopener&quot;&gt;Biketerra&lt;/a&gt;, and &lt;a href=&quot;https://www.bikeradar.com/best-indoor-cycling-apps&quot; rel=&quot;noopener&quot;&gt;BikeRadar's app round-up&lt;/a&gt; for Wahoo SYSTM and Kinomap. For browsers we used the &lt;a href=&quot;https://github.com/WebBluetoothCG/web-bluetooth/blob/main/implementation-status.md&quot; rel=&quot;noopener&quot;&gt;Web Bluetooth implementation status&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Apps add devices often. If a cell is wrong, the app's own page wins. Tour du Pain is free through 2027, everything included. It runs on donations.&lt;/p&gt;
&lt;aside class=&quot;aside&quot;&gt;&lt;p&gt;Zwift, MyWhoosh, Rouvy, TrainerRoad, Wahoo SYSTM, TrainingPeaks Virtual, Kinomap, Biketerra, Chromebook, Android, iPhone, iPad, Apple TV and Mac are trademarks of their owners. Tour du Pain isn't affiliated with or endorsed by any of them.&lt;/p&gt;&lt;/aside&gt;</content>
  </entry>
  <entry>
    <title>What's new in Tour du Pain 1.36</title>
    <link rel="alternate" type="text/html" href="https://tourdupain.app/blog/tour-du-pain-1-36"/>
    <id>https://tourdupain.app/blog/tour-du-pain-1-36</id>
    <published>2026-11-08T12:00:00+01:00</published>
    <updated>2026-11-08T12:00:00+01:00</updated>
    <summary>What's new in Tour du Pain 1.36: A Zwift Click or heart rate strap that stops sending while it still shows as connected now reconnects by itself. Before, the </summary>
    <content type="html">&lt;p&gt;Tour du Pain 1.36 went live on 8 Nov 2026. This is what changed for riders.&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;A Zwift Click or heart rate strap that stops sending while it still shows as connected now reconnects by itself. Before, the Click could stay silent until you picked it again.&lt;/li&gt;
  &lt;li&gt;In Chrome with saved Bluetooth permissions, your devices from last time connect again on their own when they're switched on, without the device list.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Every change, small ones included, is on the &lt;a href=&quot;https://tourdupain.app/updates#v1-36-0&quot;&gt;update log&lt;/a&gt;.&lt;/p&gt;
&lt;div class=&quot;cta&quot;&gt;&lt;a class=&quot;btn btn-go&quot; href=&quot;https://tourdupain.app/&quot;&gt;Open Tour du Pain&lt;/a&gt;&lt;a class=&quot;btn&quot; href=&quot;https://tourdupain.app/demo&quot;&gt;Try the demo, no trainer needed&lt;/a&gt;&lt;/div&gt;</content>
  </entry>
  <entry>
    <title>Which browsers can talk to your smart trainer?</title>
    <link rel="alternate" type="text/html" href="https://tourdupain.app/blog/web-bluetooth-browsers"/>
    <id>https://tourdupain.app/blog/web-bluetooth-browsers</id>
    <published>2026-11-08T12:00:00+01:00</published>
    <updated>2026-11-08T12:00:00+01:00</updated>
    <summary>Web Bluetooth lets a web page connect to your smart trainer. Which browsers have it on Windows, Mac, ChromeOS, Android, Linux and iOS, and what to do.</summary>
    <content type="html">&lt;p&gt;A browser cycling game lives or dies by one browser feature: Web Bluetooth. It's what lets a web page connect to your smart trainer, read your watts and set the resistance. Some browsers have it, some never will, and one platform blocks it for every browser. Here's the state of it in November 2026, with sources, and what to try when your trainer won't show up.&lt;/p&gt;
&lt;h2 id=&quot;the-table&quot;&gt;The table&lt;/h2&gt;
&lt;div class=&quot;table&quot; role=&quot;region&quot; aria-label=&quot;Browser, Windows, Mac, ChromeOS, Android, Linux, iPhone, iPad&quot; tabindex=&quot;0&quot;&gt;&lt;table&gt;
&lt;thead&gt;&lt;tr&gt;&lt;th scope=&quot;col&quot;&gt;Browser&lt;/th&gt;&lt;th scope=&quot;col&quot;&gt;Windows&lt;/th&gt;&lt;th scope=&quot;col&quot;&gt;Mac&lt;/th&gt;&lt;th scope=&quot;col&quot;&gt;ChromeOS&lt;/th&gt;&lt;th scope=&quot;col&quot;&gt;Android&lt;/th&gt;&lt;th scope=&quot;col&quot;&gt;Linux&lt;/th&gt;&lt;th scope=&quot;col&quot;&gt;iPhone, iPad&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;&lt;th scope=&quot;row&quot;&gt;Chrome&lt;/th&gt;&lt;td&gt;Yes&lt;/td&gt;&lt;td&gt;Yes&lt;/td&gt;&lt;td&gt;Yes&lt;/td&gt;&lt;td&gt;Yes&lt;/td&gt;&lt;td&gt;Behind a flag&lt;/td&gt;&lt;td&gt;No&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th scope=&quot;row&quot;&gt;Edge&lt;/th&gt;&lt;td&gt;Yes&lt;/td&gt;&lt;td&gt;Yes&lt;/td&gt;&lt;td&gt;n/a&lt;/td&gt;&lt;td&gt;Yes&lt;/td&gt;&lt;td&gt;Unconfirmed&lt;/td&gt;&lt;td&gt;No&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th scope=&quot;row&quot;&gt;Opera&lt;/th&gt;&lt;td&gt;Listed, but see below&lt;/td&gt;&lt;td&gt;Listed, but see below&lt;/td&gt;&lt;td&gt;n/a&lt;/td&gt;&lt;td&gt;Yes&lt;/td&gt;&lt;td&gt;Unconfirmed&lt;/td&gt;&lt;td&gt;No&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th scope=&quot;row&quot;&gt;Samsung Internet&lt;/th&gt;&lt;td&gt;n/a&lt;/td&gt;&lt;td&gt;n/a&lt;/td&gt;&lt;td&gt;n/a&lt;/td&gt;&lt;td&gt;Yes&lt;/td&gt;&lt;td&gt;n/a&lt;/td&gt;&lt;td&gt;n/a&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th scope=&quot;row&quot;&gt;Firefox&lt;/th&gt;&lt;td&gt;No&lt;/td&gt;&lt;td&gt;No&lt;/td&gt;&lt;td&gt;n/a&lt;/td&gt;&lt;td&gt;No&lt;/td&gt;&lt;td&gt;No&lt;/td&gt;&lt;td&gt;No&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th scope=&quot;row&quot;&gt;Safari&lt;/th&gt;&lt;td&gt;n/a&lt;/td&gt;&lt;td&gt;No&lt;/td&gt;&lt;td&gt;n/a&lt;/td&gt;&lt;td&gt;n/a&lt;/td&gt;&lt;td&gt;n/a&lt;/td&gt;&lt;td&gt;No&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th scope=&quot;row&quot;&gt;Bluefy (iOS app)&lt;/th&gt;&lt;td&gt;n/a&lt;/td&gt;&lt;td&gt;n/a&lt;/td&gt;&lt;td&gt;n/a&lt;/td&gt;&lt;td&gt;n/a&lt;/td&gt;&lt;td&gt;n/a&lt;/td&gt;&lt;td&gt;Yes&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;
&lt;p&gt;Where this comes from: &lt;a href=&quot;https://caniuse.com/web-bluetooth&quot; rel=&quot;noopener&quot;&gt;caniuse&lt;/a&gt; lists Web Bluetooth in Chrome since version 56, Edge since 79, Opera since 43 and Samsung Internet since 6.2, and none in Firefox or Safari. The Web Bluetooth group's &lt;a href=&quot;https://github.com/WebBluetoothCG/web-bluetooth/blob/main/implementation-status.md&quot; rel=&quot;noopener&quot;&gt;implementation status&lt;/a&gt; adds the per-platform detail: Chrome ships it on Android 6.0 and later, ChromeOS, macOS from Yosemite and Windows 10 from version 1703, while on Linux it's partial and needs the experimental web platform features flag.&lt;/p&gt;
&lt;p&gt;Opera needs a footnote. Caniuse lists it as supported, and Tour du Pain supports it, but the implementation status page says it doesn't work in recent desktop versions; on Android it has worked since version 46. If Opera on your laptop doesn't find your trainer, use Chrome or Edge.&lt;/p&gt;
&lt;h2 id=&quot;why-firefox-and-safari-say-no&quot;&gt;Why Firefox and Safari say no&lt;/h2&gt;
&lt;p&gt;Both have decided against it. Caniuse notes that Mozilla's standards position lists Web Bluetooth as harmful, and the implementation status page says neither Firefox nor Safari plans to add it in the near future. Their worry is privacy and security: a web page reaching radios in your home.&lt;/p&gt;
&lt;p&gt;The browsers that do have it answer that worry with rules. &lt;a href=&quot;https://developer.mozilla.org/en-US/docs/Web/API/Web_Bluetooth_API&quot; rel=&quot;noopener&quot;&gt;MDN&lt;/a&gt; explains that Web Bluetooth only works on a secure page (https), only after you tap something, and only for the device you pick in the browser's own list. A page can't scan your room in the background.&lt;/p&gt;
&lt;h2 id=&quot;why-iphone-and-ipad-are-different&quot;&gt;Why iPhone and iPad are different&lt;/h2&gt;
&lt;p&gt;On an iPhone or iPad, Chrome and Edge run on Apple's engine. The implementation status page says Chromium on iOS runs on Apple's WebKit view, with no Web Bluetooth implementation planned. So no browser from the App Store's big names can reach your trainer.&lt;/p&gt;
&lt;p&gt;The exception is a small group of Bluetooth browsers. Bluefy is a free iOS browser that adds Web Bluetooth, and WebBLE is an older one. There's also a Safari extension, iOSWebBLE, that adds it. We haven't tested any of them with Tour du Pain, so treat them as an experiment.&lt;/p&gt;
&lt;div class=&quot;solo&quot;&gt;&lt;figure&gt;&lt;img src=&quot;https://tourdupain.app/media/devices-screen-1600.webp&quot; srcset=&quot;https://tourdupain.app/media/devices-screen-800.webp 800w, https://tourdupain.app/media/devices-screen-1600.webp 1600w&quot; sizes=&quot;(min-width: 62rem) 58rem, calc(100vw - 32px)&quot; width=&quot;1600&quot; height=&quot;900&quot; alt=&quot;Settings, Devices with a KICKR CORE smart trainer and a heart-rate strap connected over Bluetooth&quot; decoding=&quot;async&quot; loading=&quot;lazy&quot;&gt;&lt;figcaption&gt;What it looks like when Web Bluetooth works: a KICKR CORE and a heart-rate strap, connected from Chrome.&lt;/figcaption&gt;&lt;/figure&gt;&lt;/div&gt;
&lt;h2 id=&quot;what-it-means-for-indoor-cycling&quot;&gt;What it means for indoor cycling&lt;/h2&gt;
&lt;p&gt;Most indoor cycling apps are installed programs, so they don't care which browser you use. Two of the bigger names run in a browser: Tour du Pain and Biketerra, both in Chrome or Edge. For riders, the practical map is short:&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;&lt;strong&gt;Windows laptop or PC:&lt;/strong&gt; Chrome or Edge, with Bluetooth Low Energy. See &lt;a href=&quot;https://tourdupain.app/windows-mac-laptop&quot;&gt;indoor cycling on a Windows laptop or Mac&lt;/a&gt;.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Mac:&lt;/strong&gt; Chrome or Edge, not Safari.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Chromebook:&lt;/strong&gt; Chrome, which is already there. See &lt;a href=&quot;https://tourdupain.app/chromebook&quot;&gt;indoor cycling on a Chromebook&lt;/a&gt;.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Android tablet or phone:&lt;/strong&gt; Chrome. See &lt;a href=&quot;https://tourdupain.app/android-tablet&quot;&gt;indoor cycling on an Android tablet or phone&lt;/a&gt;.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;iPhone, iPad, Apple TV:&lt;/strong&gt; an installed app, or a Bluetooth browser at your own risk.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;One more limit applies to every browser: there's no ANT+. Browsers have no ANT+ radio, so an ANT+-only trainer can't connect, whichever browser you use.&lt;/p&gt;
&lt;div class=&quot;solo&quot;&gt;&lt;figure&gt;&lt;img src=&quot;https://tourdupain.app/media/trainers-list-1600.webp&quot; srcset=&quot;https://tourdupain.app/media/trainers-list-800.webp 800w, https://tourdupain.app/media/trainers-list-1600.webp 1600w&quot; sizes=&quot;(min-width: 62rem) 58rem, calc(100vw - 32px)&quot; width=&quot;1600&quot; height=&quot;900&quot; alt=&quot;The full supported trainers list with status filters, grouped by brand&quot; decoding=&quot;async&quot; loading=&quot;lazy&quot;&gt;&lt;figcaption&gt;Tour du Pain's list of 74 trainer models, each marked with what works from a browser.&lt;/figcaption&gt;&lt;/figure&gt;&lt;/div&gt;
&lt;h2 id=&quot;when-your-trainer-won-t-show-up&quot;&gt;When your trainer won't show up&lt;/h2&gt;
&lt;p&gt;Most problems have nothing to do with the browser. Try these in order.&lt;/p&gt;
&lt;ol&gt;
  &lt;li&gt;&lt;strong&gt;Check the browser.&lt;/strong&gt; Tour du Pain tells you when a browser can't reach Bluetooth. Switch to Chrome or Edge.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Turn Bluetooth on&lt;/strong&gt; on the computer, Chromebook or tablet. On a Mac, Chrome may also need permission under Privacy &amp;amp; Security, Bluetooth, in System Settings. On Android, Chrome needs the Nearby devices permission (Location on older versions).&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Wake the trainer.&lt;/strong&gt; Turn the pedals so it starts advertising.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Free it from other apps.&lt;/strong&gt; Most trainers take one Bluetooth connection at a time. Close Zwift, the Decathlon app or any other training app, and turn off Bluetooth on the phone or watch it's paired with.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Show all devices.&lt;/strong&gt; If the trainer still isn't in the list, turn on Show all devices in Devices. It lists everything nearby.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Check for Bluetooth Low Energy.&lt;/strong&gt; Some older MacBooks and many desktop PCs lack it. A USB Bluetooth 4.0 or newer adapter adds it on a PC.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;If another app grabbed the trainer after you connected, Tour du Pain keeps you riding on power, cadence and speed, and ERG and simulation take over by themselves once the other app lets go.&lt;/p&gt;
&lt;h2 id=&quot;try-it-without-bluetooth&quot;&gt;Try it without Bluetooth&lt;/h2&gt;
&lt;p&gt;The &lt;a href=&quot;https://tourdupain.app/demo&quot;&gt;demo&lt;/a&gt; needs no Web Bluetooth at all. It rides 15 minutes with a simulated trainer, so it also runs in browsers without Web Bluetooth, on an iPhone or iPad too. It's a quick way to see the game before you sort out the Bluetooth. For how a browser game works under the hood, see &lt;a href=&quot;https://tourdupain.app/browser-cycling-game&quot;&gt;a cycling game that runs in your browser&lt;/a&gt;.&lt;/p&gt;
&lt;div class=&quot;solo&quot;&gt;&lt;figure&gt;&lt;img src=&quot;https://tourdupain.app/media/demo-start-1600.webp&quot; srcset=&quot;https://tourdupain.app/media/demo-start-800.webp 800w, https://tourdupain.app/media/demo-start-1600.webp 1600w&quot; sizes=&quot;(min-width: 62rem) 58rem, calc(100vw - 32px)&quot; width=&quot;1600&quot; height=&quot;900&quot; alt=&quot;The demo start card: ride in the bunch, try a workout or climb the Col du Pain&quot; decoding=&quot;async&quot; loading=&quot;lazy&quot;&gt;&lt;figcaption&gt;The demo runs in any browser, with a simulated trainer and no Bluetooth.&lt;/figcaption&gt;&lt;/figure&gt;&lt;/div&gt;
&lt;p&gt;Tour du Pain is free through 2027, everything included. It runs on donations.&lt;/p&gt;
&lt;aside class=&quot;aside&quot;&gt;&lt;p&gt;Chrome and ChromeOS are trademarks of Google, Edge of Microsoft, Safari, iPhone and iPad of Apple, Firefox of Mozilla, Opera of Opera, Samsung Internet of Samsung. Tour du Pain isn't affiliated with or endorsed by any of them.&lt;/p&gt;&lt;/aside&gt;</content>
  </entry>
  <entry>
    <title>New on tourdupain.app: 23 guides, a blog and the update log</title>
    <link rel="alternate" type="text/html" href="https://tourdupain.app/blog/guides-blog-and-update-log"/>
    <id>https://tourdupain.app/blog/guides-blog-and-update-log</id>
    <published>2026-11-07T12:00:00+01:00</published>
    <updated>2026-11-08T12:00:00+01:00</updated>
    <summary>Tour du Pain now has an update log, 23 straight-talking guides, a blog with a story for every big change and an Atom feed. Here's what's where.</summary>
    <content type="html">&lt;p&gt;Between 7 and 8 November Tour du Pain grew a set of pages you can read without starting a ride: an update log, 23 guides and this blog. They're for riders who want to know what changed, and for people who've never heard of the game and want straight answers before they connect a trainer.&lt;/p&gt;
&lt;h2 id=&quot;the-update-log&quot;&gt;The update log&lt;/h2&gt;
&lt;p&gt;On 7 November, in version 1.33.0, the game got &lt;a href=&quot;https://tourdupain.app/updates&quot;&gt;its own update log&lt;/a&gt;. Every release since 1.5.0 on 28 October is on it, newest first, in plain words: what you notice on the bike, not what changed in the code. Each version has its own anchor, so a link like &lt;a href=&quot;https://tourdupain.app/updates#v1-19-0&quot;&gt;/updates#v1-19-0&lt;/a&gt; jumps straight to the day the Col du Pain opened. You'll also find the log in the game under Settings, About.&lt;/p&gt;
&lt;div class=&quot;solo&quot;&gt;&lt;figure&gt;&lt;img src=&quot;https://tourdupain.app/media/site-updates-1600.webp&quot; srcset=&quot;https://tourdupain.app/media/site-updates-800.webp 800w, https://tourdupain.app/media/site-updates-1600.webp 1600w&quot; sizes=&quot;(min-width: 62rem) 58rem, calc(100vw - 32px)&quot; width=&quot;1440&quot; height=&quot;810&quot; alt=&quot;The Updates page with versions 1.34.0, 1.33.0 and 1.32.0, each with its date and a list of changes&quot; decoding=&quot;async&quot; loading=&quot;lazy&quot;&gt;&lt;figcaption&gt;The update log, newest first. Small fixes stay small so the real changes stand out.&lt;/figcaption&gt;&lt;/figure&gt;&lt;/div&gt;
&lt;p&gt;Since 1.35.0 a release with a story behind it links to that story on the blog, so you can go from a one-line change to the full picture.&lt;/p&gt;
&lt;h2 id=&quot;23-guides-with-straight-answers&quot;&gt;23 guides with straight answers&lt;/h2&gt;
&lt;p&gt;Later that day, in 1.34.0, the first five guides went up. With 1.35.0 there are 23. They answer the questions people type into a search bar before they try an indoor cycling game, and they say what doesn't work as plainly as what does: no iPhone or iPad, no ANT+, one loop and one climb, and only one trainer ridden on real hardware so far, a Wahoo KICKR CORE.&lt;/p&gt;
&lt;div class=&quot;solo&quot;&gt;&lt;figure&gt;&lt;img src=&quot;https://tourdupain.app/media/site-guides-1600.webp&quot; srcset=&quot;https://tourdupain.app/media/site-guides-800.webp 800w, https://tourdupain.app/media/site-guides-1600.webp 1600w&quot; sizes=&quot;(min-width: 62rem) 58rem, calc(100vw - 32px)&quot; width=&quot;1440&quot; height=&quot;810&quot; alt=&quot;The Guides page with cards for each guide, grouped under Compare and Trainers and sensors&quot; decoding=&quot;async&quot; loading=&quot;lazy&quot;&gt;&lt;figcaption&gt;All guides on one page, grouped by what you came for.&lt;/figcaption&gt;&lt;/figure&gt;&lt;/div&gt;
&lt;ul&gt;
  &lt;li&gt;&lt;strong&gt;Compare:&lt;/strong&gt; the big one is &lt;a href=&quot;https://tourdupain.app/zwift-alternative&quot;&gt;Zwift alternatives: 10 indoor cycling apps compared&lt;/a&gt;, with what changed in 2026 (Zwift bought Rouvy, BKOOL closed). There are separate pages for &lt;a href=&quot;https://tourdupain.app/rouvy-alternative&quot;&gt;Rouvy&lt;/a&gt;, &lt;a href=&quot;https://tourdupain.app/mywhoosh-alternative&quot;&gt;MyWhoosh&lt;/a&gt; and &lt;a href=&quot;https://tourdupain.app/trainerroad-alternative&quot;&gt;TrainerRoad&lt;/a&gt; alternatives, and one on &lt;a href=&quot;https://tourdupain.app/browser-cycling-game&quot;&gt;cycling games in the browser&lt;/a&gt;.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Trainers and sensors:&lt;/strong&gt; a hub for &lt;a href=&quot;https://tourdupain.app/smart-trainer-app&quot;&gt;smart trainers&lt;/a&gt; and a page per brand: &lt;a href=&quot;https://tourdupain.app/wahoo-kickr&quot;&gt;Wahoo KICKR&lt;/a&gt;, &lt;a href=&quot;https://tourdupain.app/tacx-trainer&quot;&gt;Tacx&lt;/a&gt;, &lt;a href=&quot;https://tourdupain.app/elite-trainer&quot;&gt;Elite&lt;/a&gt;, &lt;a href=&quot;https://tourdupain.app/van-rysel-trainer&quot;&gt;Van Rysel&lt;/a&gt; and &lt;a href=&quot;https://tourdupain.app/zwift-hub-zwift-ride&quot;&gt;Zwift Hub and Zwift Ride&lt;/a&gt;. Plus &lt;a href=&quot;https://tourdupain.app/power-meter-only&quot;&gt;riding with only a power meter&lt;/a&gt; and &lt;a href=&quot;https://tourdupain.app/strava-garmin-fit&quot;&gt;getting rides to Strava, Garmin Connect and intervals.icu&lt;/a&gt;.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Computers and tablets:&lt;/strong&gt; &lt;a href=&quot;https://tourdupain.app/chromebook&quot;&gt;Chromebook&lt;/a&gt;, &lt;a href=&quot;https://tourdupain.app/android-tablet&quot;&gt;Android tablet or phone&lt;/a&gt; and &lt;a href=&quot;https://tourdupain.app/windows-mac-laptop&quot;&gt;Windows laptop or Mac&lt;/a&gt;.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Training and riding together:&lt;/strong&gt; &lt;a href=&quot;https://tourdupain.app/erg-workouts&quot;&gt;ERG workouts&lt;/a&gt;, the &lt;a href=&quot;https://tourdupain.app/ftp-ramp-test&quot;&gt;ramp test&lt;/a&gt;, &lt;a href=&quot;https://tourdupain.app/triathlon-indoor-training&quot;&gt;triathlon and Ironman training&lt;/a&gt;, the &lt;a href=&quot;https://tourdupain.app/col-du-pain&quot;&gt;Col du Pain&lt;/a&gt;, &lt;a href=&quot;https://tourdupain.app/group-rides&quot;&gt;riding with friends&lt;/a&gt; and &lt;a href=&quot;https://tourdupain.app/cycling-club-indoor-rides&quot;&gt;running your club's indoor rides&lt;/a&gt;.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;In het Nederlands:&lt;/strong&gt; &lt;a href=&quot;https://tourdupain.app/fietsgame&quot;&gt;een fietsgame voor je fietstrainer&lt;/a&gt;, for Dutch riders.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Each guide is updated when the game changes, and says at the top which version it was written for.&lt;/p&gt;
&lt;h2 id=&quot;the-comparison-honestly&quot;&gt;The comparison, honestly&lt;/h2&gt;
&lt;p&gt;We make Tour du Pain, so a comparison page from us is never neutral. What we can do is get the facts right. The &lt;a href=&quot;https://tourdupain.app/zwift-alternative&quot;&gt;Zwift alternatives&lt;/a&gt; page names each rival's real strengths (MyWhoosh's racing, Rouvy's real roads, TrainerRoad's plans), links its sources, leaves out prices because they change too often, and says plainly who should still pick Tour du Pain: riders who want to talk to their group while they ride, without installing anything.&lt;/p&gt;
&lt;div class=&quot;solo&quot;&gt;&lt;figure&gt;&lt;img src=&quot;https://tourdupain.app/media/site-guide-1600.webp&quot; srcset=&quot;https://tourdupain.app/media/site-guide-800.webp 800w, https://tourdupain.app/media/site-guide-1600.webp 1600w&quot; sizes=&quot;(min-width: 62rem) 58rem, calc(100vw - 32px)&quot; width=&quot;1440&quot; height=&quot;810&quot; alt=&quot;The top of the Zwift alternatives guide, with the title, the intro and an aerial picture of the lake loop&quot; decoding=&quot;async&quot; loading=&quot;lazy&quot;&gt;&lt;figcaption&gt;The comparison of ten apps. Tour du Pain comes first, the facts about the others come with sources.&lt;/figcaption&gt;&lt;/figure&gt;&lt;/div&gt;
&lt;h2 id=&quot;this-blog&quot;&gt;This blog&lt;/h2&gt;
&lt;p&gt;The blog tells the big changes as stories, one per theme, each dated on the day its first release went live. So the &lt;a href=&quot;https://tourdupain.app/blog/col-du-pain-climb&quot;&gt;Col du Pain post&lt;/a&gt; is dated 29 October, the day the climb opened, and the &lt;a href=&quot;https://tourdupain.app/blog/clubs&quot;&gt;clubs post&lt;/a&gt; 30 October. Smaller fixes stay on the update log.&lt;/p&gt;
&lt;p&gt;Next to those there are pieces that are just fun to read and true to the number: &lt;a href=&quot;https://tourdupain.app/blog/col-du-pain-vs-famous-climbs&quot;&gt;the Col du Pain next to Alpe d'Huez, Mont Ventoux and the Cauberg&lt;/a&gt;, &lt;a href=&quot;https://tourdupain.app/blog/croissants-per-ride&quot;&gt;how many croissants your ride is&lt;/a&gt; and &lt;a href=&quot;https://tourdupain.app/blog/famous-rides-in-laps&quot;&gt;famous rides measured in laps of the lake&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;From now on every larger release gets a post. If you use a feed reader, the &lt;a href=&quot;https://tourdupain.app/blog/feed.xml&quot;&gt;Atom feed&lt;/a&gt; has every post.&lt;/p&gt;
&lt;p&gt;Tour du Pain is free through 2027, everything included. It runs on donations. If you haven't ridden yet, the &lt;a href=&quot;https://tourdupain.app/demo&quot;&gt;demo&lt;/a&gt; runs for 15 minutes without a trainer.&lt;/p&gt;
&lt;div class=&quot;cta&quot;&gt;&lt;a class=&quot;btn btn-go&quot; href=&quot;https://tourdupain.app/&quot;&gt;Open Tour du Pain&lt;/a&gt;&lt;a class=&quot;btn&quot; href=&quot;https://tourdupain.app/demo&quot;&gt;Try the demo, no trainer needed&lt;/a&gt;&lt;/div&gt;</content>
  </entry>
  <entry>
    <title>Try Tour du Pain without a trainer: the demo is open</title>
    <link rel="alternate" type="text/html" href="https://tourdupain.app/blog/demo-without-a-trainer"/>
    <id>https://tourdupain.app/blog/demo-without-a-trainer</id>
    <published>2026-11-07T12:00:00+01:00</published>
    <updated>2026-11-07T12:00:00+01:00</updated>
    <summary>On 7 November Tour du Pain opened a demo at tourdupain.app/demo: a free ride, a workout or the Col du Pain with no trainer, even on a phone.</summary>
    <content type="html">&lt;p&gt;On 7 November Tour du Pain opened a demo at &lt;a href=&quot;https://tourdupain.app/demo&quot;&gt;tourdupain.app/demo&lt;/a&gt;. You ride without a trainer, without Bluetooth and without an account, on a computer, a phone or a tablet. A simulated trainer pedals for you, you set the watts, and the bunch rides along around the lake.&lt;/p&gt;
&lt;h2 id=&quot;what-shipped-in-1-31-0&quot;&gt;What shipped in 1.31.0&lt;/h2&gt;
&lt;p&gt;The demo came in &lt;a href=&quot;https://tourdupain.app/updates#v1-31-0&quot;&gt;1.31.0&lt;/a&gt;. Open it and you pick one of three rides: a lap in the bunch, a workout, or the Col du Pain. The arrow keys, or minus and plus on screen, set the watts. After 15 minutes an end card shows what you rode.&lt;/p&gt;
&lt;p&gt;The demo saves and sends nothing. There's no account, no saved ride and no Col time, and it leaves your own settings and account on the device untouched. If you already ride Tour du Pain on that computer, your profile is exactly as you left it.&lt;/p&gt;
&lt;div class=&quot;solo&quot;&gt;&lt;figure&gt;&lt;img src=&quot;https://tourdupain.app/media/demo-start-1600.webp&quot; srcset=&quot;https://tourdupain.app/media/demo-start-800.webp 800w, https://tourdupain.app/media/demo-start-1600.webp 1600w&quot; sizes=&quot;(min-width: 62rem) 58rem, calc(100vw - 32px)&quot; width=&quot;1600&quot; height=&quot;900&quot; alt=&quot;The demo start card: Ride along, no trainer needed, with choices to ride in the bunch, try a workout or climb the Col du Pain&quot; decoding=&quot;async&quot; loading=&quot;lazy&quot;&gt;&lt;figcaption&gt;The demo's start card: a lap in the bunch, a workout or the Col du Pain.&lt;/figcaption&gt;&lt;/figure&gt;&lt;/div&gt;
&lt;p&gt;The same release made the turn card smaller on a small phone held sideways, down to the numbers and the buttons, so more of the road shows.&lt;/p&gt;
&lt;h2 id=&quot;the-three-rides&quot;&gt;The three rides&lt;/h2&gt;
&lt;p&gt;Ride in the bunch is a lap with the group, with bread along the road. Try a workout gives you One-Minute Eights, a warm-up and then efforts of a minute, with the simulated trainer holding the watts the way ERG would. Climb the Col du Pain starts you just before the turn-off, with 974 m up at 7.5 % on average ahead of you. Nobody online sees you in any of them.&lt;/p&gt;
&lt;h2 id=&quot;who-it-s-for&quot;&gt;Who it's for&lt;/h2&gt;
&lt;p&gt;Most indoor cycling apps want an install, an account and a connected trainer before you see a road. That's a lot to ask of someone who only wants to know whether their laptop or Chromebook runs it smoothly, or of a club captain deciding whether to suggest it to the club. The demo answers those questions in a few minutes, from a link. If the device struggles, the end card says how many frames a second it managed, and on a very small screen it suggests a laptop, tablet or TV.&lt;/p&gt;
&lt;h2 id=&quot;what-1-32-0-added&quot;&gt;What 1.32.0 added&lt;/h2&gt;
&lt;p&gt;Later that day &lt;a href=&quot;https://tourdupain.app/updates#v1-32-0&quot;&gt;1.32.0&lt;/a&gt; made the demo show more of the real game. The Chat and voice bar now sits where it does in a real ride. Tap it and you see how talking and chatting in the bunch works; in the demo it's switched off, with no connection and no microphone.&lt;/p&gt;
&lt;p&gt;The start card names voice with your club, club rides, the Col leaderboard and Strava. The end card lists seven features of the full game. After the demo you can open the report of your demo ride, marked Demo, with saving, Strava and sharing switched off. Full screen also moved to the top of the ride settings, next to Close.&lt;/p&gt;
&lt;div class=&quot;solo&quot;&gt;&lt;figure&gt;&lt;img src=&quot;https://tourdupain.app/media/w4-demo-voice-1600.webp&quot; srcset=&quot;https://tourdupain.app/media/w4-demo-voice-800.webp 800w, https://tourdupain.app/media/w4-demo-voice-1600.webp 1600w&quot; sizes=&quot;(min-width: 62rem) 58rem, calc(100vw - 32px)&quot; width=&quot;1600&quot; height=&quot;900&quot; alt=&quot;A demo ride through a village with bunting and the Chat in the bunch card open, saying chat is off in the demo&quot; decoding=&quot;async&quot; loading=&quot;lazy&quot;&gt;&lt;figcaption&gt;Tap Chat in the demo and a card explains chat in the bunch. With a free account you can use it.&lt;/figcaption&gt;&lt;/figure&gt;&lt;/div&gt;
&lt;div class=&quot;solo&quot;&gt;&lt;figure&gt;&lt;img src=&quot;https://tourdupain.app/media/demo-end-1600.webp&quot; srcset=&quot;https://tourdupain.app/media/demo-end-800.webp 800w, https://tourdupain.app/media/demo-end-1600.webp 1600w&quot; sizes=&quot;(min-width: 62rem) 58rem, calc(100vw - 32px)&quot; width=&quot;1600&quot; height=&quot;900&quot; alt=&quot;The end-of-demo card with time, distance and baguettes, a button to connect a trainer, and a list of what the full game does&quot; decoding=&quot;async&quot; loading=&quot;lazy&quot;&gt;&lt;figcaption&gt;After 15 minutes: what you rode, and what the full game adds.&lt;/figcaption&gt;&lt;/figure&gt;&lt;/div&gt;
&lt;h2 id=&quot;from-the-demo-to-a-real-ride&quot;&gt;From the demo to a real ride&lt;/h2&gt;
&lt;p&gt;To ride for real you need Chrome or Edge on a computer or a Chromebook, or Chrome, Edge or Opera on an Android tablet, and a smart trainer or power meter with Bluetooth. Safari and Firefox can't reach Bluetooth, so the full game doesn't run on an iPhone or iPad. There's no &lt;a href=&quot;https://en.wikipedia.org/wiki/ANT_%28network%29&quot; rel=&quot;noopener&quot;&gt;ANT+&lt;/a&gt; in a browser either.&lt;/p&gt;
&lt;p&gt;Check your trainer in &lt;a href=&quot;https://tourdupain.app/smart-trainer-app&quot;&gt;smart trainers that work in the browser&lt;/a&gt;, read how a &lt;a href=&quot;https://tourdupain.app/browser-cycling-game&quot;&gt;cycling game runs in your browser&lt;/a&gt;, or set up an &lt;a href=&quot;https://tourdupain.app/android-tablet&quot;&gt;Android tablet&lt;/a&gt; for the pain cave. If you're coming from another app, &lt;a href=&quot;https://tourdupain.app/zwift-alternative&quot;&gt;Zwift alternatives&lt;/a&gt; compares ten of them, us included.&lt;/p&gt;
&lt;div class=&quot;cta&quot;&gt;&lt;a class=&quot;btn btn-go&quot; href=&quot;https://tourdupain.app/&quot;&gt;Open Tour du Pain&lt;/a&gt;&lt;a class=&quot;btn&quot; href=&quot;https://tourdupain.app/demo&quot;&gt;Try the demo, no trainer needed&lt;/a&gt;&lt;/div&gt;</content>
  </entry>
  <entry>
    <title>From 34 to 105 workouts, with favourites and one workout for a whole club</title>
    <link rel="alternate" type="text/html" href="https://tourdupain.app/blog/workouts-105"/>
    <id>https://tourdupain.app/blog/workouts-105</id>
    <published>2026-10-31T12:00:00+01:00</published>
    <updated>2026-11-07T12:00:00+01:00</updated>
    <summary>Between 31 October and 7 November Tour du Pain's workouts grew from 34 to 105, got search and stars, and a whole club could ride one together.</summary>
    <content type="html">&lt;p&gt;At the end of October Tour du Pain had 34 workouts. On 1 November it had 105. Around that jump came a way for a whole club to ride one workout on one clock, favourites that follow your account, the bakery van in workouts and, on 7 November, a softer start for ERG.&lt;/p&gt;
&lt;h2 id=&quot;one-workout-for-a-whole-club&quot;&gt;One workout for a whole club&lt;/h2&gt;
&lt;p&gt;It began on 31 October with &lt;a href=&quot;https://tourdupain.app/updates#v1-28-19&quot;&gt;1.28.19&lt;/a&gt;. When you plan a club ride you can now make it one workout together. Everyone rides the same block on their own FTP, on one clock, so a rider with an FTP of 200 W and one with 320 W start every interval at the same moment, each at their own watts.&lt;/p&gt;
&lt;p&gt;Join late and you start where the group is. A stop doesn't put you behind, so a bottle refill doesn't leave you a minute out of step for the rest of the session.&lt;/p&gt;
&lt;h2 id=&quot;105-workouts&quot;&gt;105 workouts&lt;/h2&gt;
&lt;p&gt;&lt;a href=&quot;https://tourdupain.app/updates#v1-29-0&quot;&gt;1.29.0&lt;/a&gt; went live on 1 November with 71 more workouts. The library now has short weekday sessions from 20 minutes, like Easy Twenty and First Spin 20, and entry versions such as First Sweet Spot, First Threshold and First VO2max. Climbers get Switchbacks and Col Simulation, racers get Criterium 45, Time Trial 20 and Breakaway 60, and there are skills sessions like One-Leg Focus and Smooth Circles.&lt;/p&gt;
&lt;p&gt;Sprints on feel, where ERG lets go and you set the effort yourself, now count in the TSS.&lt;/p&gt;
&lt;div class=&quot;solo&quot;&gt;&lt;figure&gt;&lt;img src=&quot;https://tourdupain.app/media/workouts-list-1600.webp&quot; srcset=&quot;https://tourdupain.app/media/workouts-list-800.webp 800w, https://tourdupain.app/media/workouts-list-1600.webp 1600w&quot; sizes=&quot;(min-width: 62rem) 58rem, calc(100vw - 32px)&quot; width=&quot;1600&quot; height=&quot;900&quot; alt=&quot;The Workouts screen with goal and length filters, a list of endurance workouts and the Zone 2 workout's power chart&quot; decoding=&quot;async&quot; loading=&quot;lazy&quot;&gt;&lt;figcaption&gt;The Workouts screen with 105 workouts, filters for goal and length, and a chart of the one you pick.&lt;/figcaption&gt;&lt;/figure&gt;&lt;/div&gt;
&lt;h2 id=&quot;finding-the-right-one&quot;&gt;Finding the right one&lt;/h2&gt;
&lt;p&gt;With 105 to pick from, the Workouts screen changed too. You can search on name, goal or effort, filter by goal, and sort by length, intensity or TSS. Without a filter it shows the ones you rode last, your favourites and a few per goal. It also opens faster than the old screen did with 34.&lt;/p&gt;
&lt;p&gt;Star a workout from its row or its details and it becomes a favourite. Favourites follow your account to any device. When you plan a club ride as one workout together, the picker shows your favourites first, then every workout per goal with its length.&lt;/p&gt;
&lt;div class=&quot;solo&quot;&gt;&lt;figure&gt;&lt;img src=&quot;https://tourdupain.app/media/workouts-filter-1600.webp&quot; srcset=&quot;https://tourdupain.app/media/workouts-filter-800.webp 800w, https://tourdupain.app/media/workouts-filter-1600.webp 1600w&quot; sizes=&quot;(min-width: 62rem) 58rem, calc(100vw - 32px)&quot; width=&quot;1600&quot; height=&quot;900&quot; alt=&quot;The Workouts screen searched for threshold, listing sweet spot and threshold workouts with Sweet Spot 3x10 selected&quot; decoding=&quot;async&quot; loading=&quot;lazy&quot;&gt;&lt;figcaption&gt;Search on a word like threshold and the list narrows to what fits. The star on each row makes it a favourite.&lt;/figcaption&gt;&lt;/figure&gt;&lt;/div&gt;
&lt;h2 id=&quot;the-bakery-van-and-skip&quot;&gt;The bakery van and Skip&lt;/h2&gt;
&lt;p&gt;On 4 November &lt;a href=&quot;https://tourdupain.app/updates#v1-30-0&quot;&gt;1.30.0&lt;/a&gt; brought the bakery van into workouts, long zone 2 rides included, at the 5 km marks where you earn a baguette. A mark that falls inside short hard work waits for the next calm stretch, so the van doesn't arrive in the middle of a VO2max effort.&lt;/p&gt;
&lt;p&gt;Skip changed too. It now skips the whole block as the workout lists it, and when more than 2 minutes of that block are left it asks first, so a stray tap doesn't throw away a threshold interval.&lt;/p&gt;
&lt;div class=&quot;solo&quot;&gt;&lt;figure&gt;&lt;img src=&quot;https://tourdupain.app/media/ride-zone2-1600.webp&quot; srcset=&quot;https://tourdupain.app/media/ride-zone2-800.webp 800w, https://tourdupain.app/media/ride-zone2-1600.webp 1600w&quot; sizes=&quot;(min-width: 62rem) 58rem, calc(100vw - 32px)&quot; width=&quot;1600&quot; height=&quot;900&quot; alt=&quot;A rider in the Zone 2, 2 hours workout with a group ahead and more than an hour left in the block&quot; decoding=&quot;async&quot; loading=&quot;lazy&quot;&gt;&lt;figcaption&gt;Long zone 2 rides get the bakery van too, at every 5 km mark.&lt;/figcaption&gt;&lt;/figure&gt;&lt;/div&gt;
&lt;h2 id=&quot;a-softer-start&quot;&gt;A softer start&lt;/h2&gt;
&lt;p&gt;&lt;a href=&quot;https://tourdupain.app/updates#v1-31-1&quot;&gt;1.31.1&lt;/a&gt; on 7 November fixed the first seconds of every workout. A workout now starts with your first pedal strokes; until then the clock, the distance and the bunch wait, and the screen says &amp;quot;Start pedalling to begin&amp;quot;.&lt;/p&gt;
&lt;p&gt;ERG from a standstill starts soft as well. The trainer stays light until your legs turn, then ramps up to the target over 6 seconds, instead of asking for the full target at 0 rpm. In ERG the trainer adds resistance as your cadence drops, so a hard start can lock the pedals; &lt;a href=&quot;https://support.wahoofitness.com/hc/en-us/articles/4402565516946-A-Guide-to-using-ERG-mode&quot; rel=&quot;noopener&quot;&gt;Wahoo's guide to ERG mode&lt;/a&gt; calls it the ERG death spiral.&lt;/p&gt;
&lt;h2 id=&quot;your-own-workouts-too&quot;&gt;Your own workouts too&lt;/h2&gt;
&lt;p&gt;The built-in 105 aren't the limit. Your own .zwo (&lt;a href=&quot;https://support.zwift.com/en_us/custom-workouts-ryGOTVEPs&quot; rel=&quot;noopener&quot;&gt;Zwift's custom workout format&lt;/a&gt;), .erg, .mrc and .fit workout files load as well; the guide to &lt;a href=&quot;https://tourdupain.app/erg-workouts&quot;&gt;ERG workouts in your browser&lt;/a&gt; shows how. Every workout runs on your FTP, so set it first with the &lt;a href=&quot;https://tourdupain.app/ftp-ramp-test&quot;&gt;FTP ramp test&lt;/a&gt;. Triathletes will find the long IM sessions, such as IM Long Ride 4 h, covered in &lt;a href=&quot;https://tourdupain.app/triathlon-indoor-training&quot;&gt;indoor training for triathlon&lt;/a&gt;, and club captains can read &lt;a href=&quot;https://tourdupain.app/cycling-club-indoor-rides&quot;&gt;indoor rides for cycling clubs&lt;/a&gt; for the club workout.&lt;/p&gt;
&lt;div class=&quot;cta&quot;&gt;&lt;a class=&quot;btn btn-go&quot; href=&quot;https://tourdupain.app/&quot;&gt;Open Tour du Pain&lt;/a&gt;&lt;a class=&quot;btn&quot; href=&quot;https://tourdupain.app/demo&quot;&gt;Try the demo, no trainer needed&lt;/a&gt;&lt;/div&gt;</content>
  </entry>
  <entry>
    <title>Clubs came to Tour du Pain: own kit, coffee rides, radio and a weekly paper</title>
    <link rel="alternate" type="text/html" href="https://tourdupain.app/blog/clubs"/>
    <id>https://tourdupain.app/blog/clubs</id>
    <published>2026-10-30T12:00:00+01:00</published>
    <updated>2026-10-31T12:00:00+01:00</updated>
    <summary>On 30 and 31 October Tour du Pain got clubs: a drawn club kit, coffee rides every member sees, club radio, a ready check and a weekly paper.</summary>
    <content type="html">&lt;p&gt;Tour du Pain got clubs on 30 and 31 October, in seven releases over two days. A club has its own kit and plans coffee rides that every member sees. During those rides members talk over club radio, a ready check makes sure trainers and microphones work beforehand, and every week a small paper sums up what the club rode. On 31 October anyone could start one.&lt;/p&gt;
&lt;h2 id=&quot;it-started-with-a-link&quot;&gt;It started with a link&lt;/h2&gt;
&lt;p&gt;&lt;a href=&quot;https://tourdupain.app/updates#v1-22-0&quot;&gt;1.22.0&lt;/a&gt; went live on 30 October. A club link showed a card with the club kit already on your own rider and two buttons, Join or No thanks. Members saw who was riding now and the member list, with switches for the kit, the club tag behind your name and showing in the list.&lt;/p&gt;
&lt;p&gt;Other riders saw your club colours and tag on the road. Members who started at the same time landed in the same room, so a club didn't have to plan anything to ride together.&lt;/p&gt;
&lt;h2 id=&quot;a-club-screen-and-a-row-on-home&quot;&gt;A club screen and a row on Home&lt;/h2&gt;
&lt;p&gt;The same day &lt;a href=&quot;https://tourdupain.app/updates#v1-23-0&quot;&gt;1.23.0&lt;/a&gt; gave members a row on Home with the crest, the name, who's riding and the member count. Press C and the club opens. The club screen lists online members first, then this week's km, rides and riders, your own week and place, and the next coffee ride.&lt;/p&gt;
&lt;p&gt;Coffee rides could now be planned for the whole club, so members saw them on that screen without anyone sharing a link. Captains got the share link to manage and could remove members.&lt;/p&gt;
&lt;div class=&quot;solo&quot;&gt;&lt;figure&gt;&lt;img src=&quot;https://tourdupain.app/media/club-screen-1600.webp&quot; srcset=&quot;https://tourdupain.app/media/club-screen-800.webp 800w, https://tourdupain.app/media/club-screen-1600.webp 1600w&quot; sizes=&quot;(min-width: 62rem) 58rem, calc(100vw - 32px)&quot; width=&quot;1600&quot; height=&quot;900&quot; alt=&quot;The club screen with the members list, a ready check, this week's km and rides, and the next coffee ride&quot; decoding=&quot;async&quot; loading=&quot;lazy&quot;&gt;&lt;figcaption&gt;An example club's screen: who's online, the week in numbers and the next coffee ride.&lt;/figcaption&gt;&lt;/figure&gt;&lt;/div&gt;
&lt;h2 id=&quot;de-bakkerskrant&quot;&gt;De Bakkerskrant&lt;/h2&gt;
&lt;p&gt;&lt;a href=&quot;https://tourdupain.app/updates#v1-24-0&quot;&gt;1.24.0&lt;/a&gt; added the paper. De Bakkerskrant (The Bakers' Paper in English) sits on the club screen with last week's km, rides, riders and new members under a dry headline such as &amp;quot;Oven stays warm&amp;quot; or &amp;quot;Not a crumb lost&amp;quot;. One tap shares it in the club's own chat group.&lt;/p&gt;
&lt;p&gt;It only counts from 3 riders up and shows no names. Once a week is printed its totals don't change, so the number you shared on Monday is still the number on Friday.&lt;/p&gt;
&lt;div class=&quot;solo&quot;&gt;&lt;figure&gt;&lt;img src=&quot;https://tourdupain.app/media/club-paper-1600.webp&quot; srcset=&quot;https://tourdupain.app/media/club-paper-800.webp 800w, https://tourdupain.app/media/club-paper-1600.webp 1600w&quot; sizes=&quot;(min-width: 62rem) 58rem, calc(100vw - 32px)&quot; width=&quot;720&quot; height=&quot;450&quot; alt=&quot;The Bakers' Paper card for week 44 with the headline Crust under control, the club's km, rides, riders and new members&quot; decoding=&quot;async&quot; loading=&quot;lazy&quot;&gt;&lt;figcaption&gt;De Bakkerskrant for an example club: one week in four numbers and a headline.&lt;/figcaption&gt;&lt;/figure&gt;&lt;/div&gt;
&lt;h2 id=&quot;club-radio&quot;&gt;Club radio&lt;/h2&gt;
&lt;p&gt;&lt;a href=&quot;https://tourdupain.app/updates#v1-25-0&quot;&gt;1.25.0&lt;/a&gt; made club rides sound like a team radio. During a planned club ride, members hear each other wherever they ride, up to ten voices at a time. Members land in the club ride's room whether they tapped Join or not.&lt;/p&gt;
&lt;p&gt;Hiding from the club list also keeps you off the radio, and leaving the club ends it at once. How voice in the bunch grew before that is in the post on &lt;a href=&quot;https://tourdupain.app/blog/voice-in-the-bunch&quot;&gt;voice in the bunch&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id=&quot;the-club-s-own-kit&quot;&gt;The club's own kit&lt;/h2&gt;
&lt;p&gt;&lt;a href=&quot;https://tourdupain.app/updates#v1-26-0&quot;&gt;1.26.0&lt;/a&gt; let a club wear its own drawn kit, with a logo on the chest, back and thigh and leg cuffs. The first club kit was ready to switch on that day. Club kits read from the chase camera, and riders in the distance show them as colour blocks, so you spot your clubmates up the road.&lt;/p&gt;
&lt;h2 id=&quot;ready&quot;&gt;Ready?&lt;/h2&gt;
&lt;p&gt;The last piece on 30 October was the ready check in &lt;a href=&quot;https://tourdupain.app/updates#v1-27-0&quot;&gt;1.27.0&lt;/a&gt;. A card on the club screen tests your trainer and your microphone before the ride: connect, pedal 10 seconds and say something. The card goes away when both work.&lt;/p&gt;
&lt;p&gt;The coffee ride card then shows how many riders are ready as one number, like &amp;quot;7 of 24 ready&amp;quot;, with no names next to it. The microphone test stays on your device.&lt;/p&gt;
&lt;div class=&quot;solo&quot;&gt;&lt;figure&gt;&lt;img src=&quot;https://tourdupain.app/media/club-ready-check-1600.webp&quot; srcset=&quot;https://tourdupain.app/media/club-ready-check-800.webp 800w, https://tourdupain.app/media/club-ready-check-1600.webp 1600w&quot; sizes=&quot;(min-width: 62rem) 58rem, calc(100vw - 32px)&quot; width=&quot;720&quot; height=&quot;314&quot; alt=&quot;The club's Ready card with two checks: Trainer, pedal 7 seconds, and Microphone with a Test button&quot; decoding=&quot;async&quot; loading=&quot;lazy&quot;&gt;&lt;figcaption&gt;The ready check: pedal for 10 seconds and say something before the ride starts.&lt;/figcaption&gt;&lt;/figure&gt;&lt;/div&gt;
&lt;h2 id=&quot;open-to-everyone&quot;&gt;Open to everyone&lt;/h2&gt;
&lt;p&gt;On 31 October &lt;a href=&quot;https://tourdupain.app/updates#v1-28-0&quot;&gt;1.28.0&lt;/a&gt; opened clubs to all riders. You can browse and search clubs, ask to join, or start your own, and the Leaderboard got a Clubs tab. Invites show on Home and in the rider menu.&lt;/p&gt;
&lt;p&gt;Captains can change the club's name and colours, hand the role to someone else, invite riders, and plan or cancel club rides. From 30 minutes before a club ride your wheel follows the host, so the group stays together whatever the watts, and a group ride and a club meet share one room.&lt;/p&gt;
&lt;div class=&quot;solo&quot;&gt;&lt;figure&gt;&lt;img src=&quot;https://tourdupain.app/media/club-home-1600.webp&quot; srcset=&quot;https://tourdupain.app/media/club-home-800.webp 800w, https://tourdupain.app/media/club-home-1600.webp 1600w&quot; sizes=&quot;(min-width: 62rem) 58rem, calc(100vw - 32px)&quot; width=&quot;1600&quot; height=&quot;900&quot; alt=&quot;Home for a club member with the next Saturday coffee ride, the club row and a rider in a red and yellow club kit&quot; decoding=&quot;async&quot; loading=&quot;lazy&quot;&gt;&lt;figcaption&gt;Home for a member of an example club: the next coffee ride, an invite and the club's own row.&lt;/figcaption&gt;&lt;/figure&gt;&lt;/div&gt;
&lt;p&gt;Later on 31 October club rides could also be one workout together on one clock; that's in the post on &lt;a href=&quot;https://tourdupain.app/blog/workouts-105&quot;&gt;105 workouts&lt;/a&gt;, and clubmates racing each other's Col times is in the &lt;a href=&quot;https://tourdupain.app/blog/col-du-pain-climb&quot;&gt;Col du Pain post&lt;/a&gt;. For running a weekly club night step by step, read &lt;a href=&quot;https://tourdupain.app/cycling-club-indoor-rides&quot;&gt;indoor rides for cycling clubs&lt;/a&gt;. For a one-off ride with friends, see &lt;a href=&quot;https://tourdupain.app/group-rides&quot;&gt;group rides&lt;/a&gt;.&lt;/p&gt;
&lt;div class=&quot;cta&quot;&gt;&lt;a class=&quot;btn btn-go&quot; href=&quot;https://tourdupain.app/&quot;&gt;Open Tour du Pain&lt;/a&gt;&lt;a class=&quot;btn&quot; href=&quot;https://tourdupain.app/demo&quot;&gt;Try the demo, no trainer needed&lt;/a&gt;&lt;/div&gt;</content>
  </entry>
  <entry>
    <title>The Col du Pain opened: a timed climb with a weekly polka-dot jersey</title>
    <link rel="alternate" type="text/html" href="https://tourdupain.app/blog/col-du-pain-climb"/>
    <id>https://tourdupain.app/blog/col-du-pain-climb</id>
    <published>2026-10-29T12:00:00+01:00</published>
    <updated>2026-11-08T12:00:00+01:00</updated>
    <summary>On 29 October Tour du Pain got its first mountain: 974 m long with 73 m of climbing, a weekly leaderboard, a polka-dot jersey and clubmates to race.</summary>
    <content type="html">&lt;p&gt;On 29 October Tour du Pain got its first mountain. The Col du Pain rises on the north side of the lake: 974 metres long with 73 metres of climbing and two hairpins, a leaderboard that resets every Monday, and a polka-dot jersey for the week's fastest rider. Over the following week it got snow, a crowd, ghosts of your clubmates and a baguette at the top.&lt;/p&gt;
&lt;h2 id=&quot;a-side-road-off-the-lap&quot;&gt;A side road off the lap&lt;/h2&gt;
&lt;p&gt;The climb opened in &lt;a href=&quot;https://tourdupain.app/updates#v1-19-0&quot;&gt;version 1.19.0&lt;/a&gt;. At 4.9 km on the 8.3 km lake loop a sign offers the turn-off; press C or tap the button to take it. Ride on and your lap stays exactly as it was, so nobody is sent up a mountain they didn't ask for.&lt;/p&gt;
&lt;p&gt;Take it and you pass under the &amp;quot;Début du Col&amp;quot; arch, climb about 1 km at 7.5 % on average with a 9.5 % kick, and cross the KOM line under the &amp;quot;Sommet&amp;quot; arch. A fast descent down the back puts you on the loop again at 5.3 km. For a 75 kg rider the climb takes about three minutes at 380 W, and just under four at 4 W/kg.&lt;/p&gt;
&lt;div class=&quot;solo&quot;&gt;&lt;figure&gt;&lt;img src=&quot;https://tourdupain.app/media/col-turnoff-sign-1600.webp&quot; srcset=&quot;https://tourdupain.app/media/col-turnoff-sign-800.webp 800w, https://tourdupain.app/media/col-turnoff-sign-1600.webp 1600w&quot; sizes=&quot;(min-width: 62rem) 58rem, calc(100vw - 32px)&quot; width=&quot;1600&quot; height=&quot;900&quot; alt=&quot;First-person view of the road with the Col du Pain sign and an on-screen card offering the turn-off&quot; decoding=&quot;async&quot; loading=&quot;lazy&quot;&gt;&lt;figcaption&gt;The turn-off at 4.9 km: press C to take it, or ride on and your lap stays the same. The +1 plate came on 4 November.&lt;/figcaption&gt;&lt;/figure&gt;&lt;/div&gt;
&lt;p&gt;The HUD counts down to the top and shows your time there. The gradient changes your speed in the game, but the trainer still feels flat. The Col's metres and climbing count toward your ride's distance, your bread, the .fit file and Strava.&lt;/p&gt;
&lt;h2 id=&quot;the-leaderboard-and-the-polka-dot-jersey&quot;&gt;The Leaderboard and the polka-dot jersey&lt;/h2&gt;
&lt;p&gt;The boards went live earlier that day, in 1.15.0. Signed-in riders' climbs are kept on an all-time board and a weekly board that starts on Monday at 00:00 Amsterdam time. A tie goes to the earlier effort. A time only counts when you ride with a trainer or a power meter.&lt;/p&gt;
&lt;p&gt;1.16.0 added the Leaderboard screen: open it from Home or press K. It has This week and All time, the top 100 with flag, time and gap, and your own row marked even when you're further down. The week's fastest rider wears the polka-dot jersey, and everyone on the road sees it.&lt;/p&gt;
&lt;div class=&quot;solo&quot;&gt;&lt;figure&gt;&lt;img src=&quot;https://tourdupain.app/media/col-leaderboard-1600.webp&quot; srcset=&quot;https://tourdupain.app/media/col-leaderboard-800.webp 800w, https://tourdupain.app/media/col-leaderboard-1600.webp 1600w&quot; sizes=&quot;(min-width: 62rem) 58rem, calc(100vw - 32px)&quot; width=&quot;1600&quot; height=&quot;900&quot; alt=&quot;The Col du Pain leaderboard with this week's polka-dot jersey holder on top and a list of riders and times&quot; decoding=&quot;async&quot; loading=&quot;lazy&quot;&gt;&lt;figcaption&gt;The Leaderboard, shown here with example riders: this week and all time, with the jersey holder on top.&lt;/figcaption&gt;&lt;/figure&gt;&lt;/div&gt;
&lt;p&gt;From &lt;a href=&quot;https://tourdupain.app/updates#v1-19-5&quot;&gt;1.19.5&lt;/a&gt; the jersey can change hands in the middle of a ride. Take the top time on the Col and everyone sees you in polka dots within half a minute.&lt;/p&gt;
&lt;h2 id=&quot;snow-a-crowd-and-paint-on-the-road&quot;&gt;Snow, a crowd and paint on the road&lt;/h2&gt;
&lt;p&gt;1.19.8 turned the top half into a real snowy mountain, with shaded slopes, rocks, snowy pines and dark wet asphalt. The turn-off sign grew so &amp;quot;← COL DU PAIN&amp;quot; and &amp;quot;1,0 km · 7,5 %&amp;quot; read from the saddle, and the game stopped offering the turn-off when it's too late to brake for it. Over the KOM line the road now eases straight into the descent, so you roll down instead of stopping on a flat summit.&lt;/p&gt;
&lt;p&gt;Then &lt;a href=&quot;https://tourdupain.app/updates#v1-20-0&quot;&gt;1.20.0&lt;/a&gt; made it feel like a mountain stage. The crowd thickens into a tunnel of fans over the last few hundred metres, with flags, bakers in toques waving baguettes, campers on the slopes and paint on the road: ALLEZ, PAIN !, PAS DE PAIN SANS PEINE, the metres to go and the Col's all-time best names near the top. How busy it gets follows your graphics setting.&lt;/p&gt;
&lt;h2 id=&quot;climbing-with-other-riders&quot;&gt;Climbing with other riders&lt;/h2&gt;
&lt;p&gt;Riding along (see &lt;a href=&quot;https://tourdupain.app/group-rides&quot;&gt;riding with friends and your club&lt;/a&gt;) learned the Col in 1.19.3. When the rider you follow takes the turn-off, you take it too and stay beside them up and down. In the last 150 m before the sign you ride just behind them, so you see them turn in time. A climb you were carried up never counts on the Leaderboard.&lt;/p&gt;
&lt;p&gt;On 31 October two club changes followed. In 1.28.13 riding along on a club ride stopped costing you your Col time: from the turn-off to the top you climb on your own legs, and the first rider up waits up to five minutes before the group rides on together.&lt;/p&gt;
&lt;p&gt;In &lt;a href=&quot;https://tourdupain.app/updates#v1-28-18&quot;&gt;1.28.18&lt;/a&gt; clubs got ghosts. Switch it on on the club page and a see-through clubmate rides beside you, with your gap on the Col card. Only your best time and your times every 200 m are shared, and only with clubmates who switched it on too. Clubs have their own &lt;a href=&quot;https://tourdupain.app/cycling-club-indoor-rides&quot;&gt;guide to indoor club rides&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id=&quot;a-baguette-at-the-top&quot;&gt;A baguette at the top&lt;/h2&gt;
&lt;p&gt;On 4 November &lt;a href=&quot;https://tourdupain.app/updates#v1-30-0&quot;&gt;1.30.0&lt;/a&gt; put one extra baguette on every climb, on top of the one you earn every 5 km. A plate under the turn-off sign shows it before you choose. The Col card now draws the climb's profile coloured by steepness, with you on it and what's left to go.&lt;/p&gt;
&lt;div class=&quot;solo&quot;&gt;&lt;figure&gt;&lt;img src=&quot;https://tourdupain.app/media/col-hud-1600.webp&quot; srcset=&quot;https://tourdupain.app/media/col-hud-800.webp 800w, https://tourdupain.app/media/col-hud-1600.webp 1600w&quot; sizes=&quot;(min-width: 62rem) 58rem, calc(100vw - 32px)&quot; width=&quot;1600&quot; height=&quot;900&quot; alt=&quot;A rider climbs between fans while the Col card shows the metres left, the gradient and the climb's profile by steepness&quot; decoding=&quot;async&quot; loading=&quot;lazy&quot;&gt;&lt;figcaption&gt;The Col card since 1.30.0: distance and height to go, the climb time and the profile by steepness.&lt;/figcaption&gt;&lt;/figure&gt;&lt;/div&gt;
&lt;p&gt;Times, tactics and the rest of the climb are in the &lt;a href=&quot;https://tourdupain.app/col-du-pain&quot;&gt;Col du Pain guide&lt;/a&gt;. You can ride it in the &lt;a href=&quot;https://tourdupain.app/demo&quot;&gt;demo&lt;/a&gt; too, without a trainer, though demo times don't go on the Leaderboard.&lt;/p&gt;
&lt;div class=&quot;cta&quot;&gt;&lt;a class=&quot;btn btn-go&quot; href=&quot;https://tourdupain.app/&quot;&gt;Open Tour du Pain&lt;/a&gt;&lt;a class=&quot;btn&quot; href=&quot;https://tourdupain.app/demo&quot;&gt;Try the demo, no trainer needed&lt;/a&gt;&lt;/div&gt;</content>
  </entry>
  <entry>
    <title>Riding Tour du Pain on a power meter alone, no smart trainer needed</title>
    <link rel="alternate" type="text/html" href="https://tourdupain.app/blog/power-meter-rides"/>
    <id>https://tourdupain.app/blog/power-meter-rides</id>
    <published>2026-10-29T12:00:00+01:00</published>
    <updated>2026-11-08T12:00:00+01:00</updated>
    <summary>On 29 October Tour du Pain began riding on a power meter alone, on a basic trainer or rollers. On 31 October meters without cadence worked fully too.</summary>
    <content type="html">&lt;p&gt;On 29 October Tour du Pain started riding on a power meter alone. Power pedals or a crank meter on a basic trainer or rollers are enough: your speed in the game follows your watts and the ride saves like any other. Two days later meters that don't send cadence worked fully as well.&lt;/p&gt;
&lt;h2 id=&quot;what-1-19-2-changed&quot;&gt;What 1.19.2 changed&lt;/h2&gt;
&lt;p&gt;Before &lt;a href=&quot;https://tourdupain.app/updates#v1-19-2&quot;&gt;1.19.2&lt;/a&gt; you needed a smart trainer to ride. From that release a power meter on its own drives the ride. Speed follows the meter's watts. Cadence comes from a cadence sensor, or from the meter itself if it sends crank data. Heart rate shows when you wear a strap.&lt;/p&gt;
&lt;p&gt;A basic trainer has nothing for the game to control, so the ERG switch and the resistance level are hidden on these rides. You change the effort with your gears, the way you would outside.&lt;/p&gt;
&lt;div class=&quot;solo&quot;&gt;&lt;figure&gt;&lt;img src=&quot;https://tourdupain.app/media/w4-devices-power-meter-1600.webp&quot; srcset=&quot;https://tourdupain.app/media/w4-devices-power-meter-800.webp 800w, https://tourdupain.app/media/w4-devices-power-meter-1600.webp 1600w&quot; sizes=&quot;(min-width: 62rem) 58rem, calc(100vw - 32px)&quot; width=&quot;1600&quot; height=&quot;900&quot; alt=&quot;Settings, Devices with no smart trainer, a heart rate strap connected and an Assioma Duo power meter connected&quot; decoding=&quot;async&quot; loading=&quot;lazy&quot;&gt;&lt;figcaption&gt;Devices with no smart trainer: a power meter and a heart rate strap are enough to ride.&lt;/figcaption&gt;&lt;/figure&gt;&lt;/div&gt;
&lt;p&gt;The ride saves and exports to .fit and Strava as a power-meter ride, so it lands in your log like any other. If you connect a smart trainer later in the ride, the trainer takes over.&lt;/p&gt;
&lt;h2 id=&quot;which-power-meters&quot;&gt;Which power meters&lt;/h2&gt;
&lt;p&gt;Any Bluetooth power meter that speaks the standard &lt;a href=&quot;https://www.bluetooth.com/specifications/specs/cycling-power-profile-1-1-1/&quot; rel=&quot;noopener&quot;&gt;Bluetooth Cycling Power profile&lt;/a&gt; should work: pedals like the &lt;a href=&quot;https://cycling.favero.com/assioma/&quot; rel=&quot;noopener&quot;&gt;Favero Assioma&lt;/a&gt; and Garmin Rally, and cranks or spiders from Stages, 4iiii and Quarq. Pick it as your trainer and you ride on power alone. It has to be Bluetooth, because browsers have no &lt;a href=&quot;https://en.wikipedia.org/wiki/ANT_%28network%29&quot; rel=&quot;noopener&quot;&gt;ANT+&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;We've ridden Tour du Pain ourselves on one trainer, a Wahoo KICKR CORE. The power-meter path is tested on an emulator, not on each meter, so tell us how yours does. The guide to &lt;a href=&quot;https://tourdupain.app/smart-trainer-app&quot;&gt;smart trainers that work in the browser&lt;/a&gt; lists what we know per model.&lt;/p&gt;
&lt;h2 id=&quot;1-27-6-meters-without-cadence&quot;&gt;1.27.6: meters without cadence&lt;/h2&gt;
&lt;p&gt;Some meters and trainers don't send cadence at all. Until &lt;a href=&quot;https://tourdupain.app/updates#v1-27-6&quot;&gt;1.27.6&lt;/a&gt; on 31 October, the game read the missing cadence as legs that had stopped and braked you after 10 seconds. Now those sources ride fully on their power: no braking, and the &lt;a href=&quot;https://tourdupain.app/ftp-ramp-test&quot;&gt;FTP ramp test&lt;/a&gt; and riding along work. ERG works too, but only on a smart trainer without cadence; a power meter on a basic trainer shows the targets and you hold them yourself. For the current setup, see &lt;a href=&quot;https://tourdupain.app/power-meter-only&quot;&gt;riding with a power meter only&lt;/a&gt;. The console shows a dash where cadence would be.&lt;/p&gt;
&lt;div class=&quot;solo&quot;&gt;&lt;figure&gt;&lt;img src=&quot;https://tourdupain.app/media/report-ramp-1600.webp&quot; srcset=&quot;https://tourdupain.app/media/report-ramp-800.webp 800w, https://tourdupain.app/media/report-ramp-1600.webp 1600w&quot; sizes=&quot;(min-width: 62rem) 58rem, calc(100vw - 32px)&quot; width=&quot;1600&quot; height=&quot;900&quot; alt=&quot;The ramp test result with an estimated FTP of 244 W, a Use as FTP button and the baguettes baked&quot; decoding=&quot;async&quot; loading=&quot;lazy&quot;&gt;&lt;figcaption&gt;The ramp test ends with an estimated FTP. Since 1.27.6 it also runs on sources that send no cadence.&lt;/figcaption&gt;&lt;/figure&gt;&lt;/div&gt;
&lt;p&gt;The same release fixed a few related things. A glitchy power spike above 3000 W is now ignored, and rides that an old spike had held back can upload. If your power meter goes quiet on a meter-only ride, the game says so instead of telling you to start pedalling. One error in a frame no longer freezes the ride on screen.&lt;/p&gt;
&lt;h2 id=&quot;what-changes-and-what-doesn-t&quot;&gt;What changes, and what doesn't&lt;/h2&gt;
&lt;p&gt;A basic trainer can't push back. On the Col du Pain the gradient changes your speed in the game, never the resistance under your legs. Structured workouts still show their targets, and you hold them with your gears and your legs instead of letting ERG do it.&lt;/p&gt;
&lt;p&gt;Everything else is the same as on a smart trainer. You ride in the bunch, talk and chat, join clubs and coffee rides, and your Col times count for the Leaderboard, which takes a trainer or a power meter.&lt;/p&gt;
&lt;div class=&quot;solo&quot;&gt;&lt;figure&gt;&lt;img src=&quot;https://tourdupain.app/media/report-1600.webp&quot; srcset=&quot;https://tourdupain.app/media/report-800.webp 800w, https://tourdupain.app/media/report-1600.webp 1600w&quot; sizes=&quot;(min-width: 62rem) 58rem, calc(100vw - 32px)&quot; width=&quot;1600&quot; height=&quot;900&quot; alt=&quot;The ride report of a 45-minute free ride with distance, average power, TSS, baguettes baked and a Connect with Strava card&quot; decoding=&quot;async&quot; loading=&quot;lazy&quot;&gt;&lt;figcaption&gt;The ride report looks the same whether you rode a smart trainer or a power meter.&lt;/figcaption&gt;&lt;/figure&gt;&lt;/div&gt;
&lt;p&gt;The full set-up, from pairing to gearing, is in &lt;a href=&quot;https://tourdupain.app/power-meter-only&quot;&gt;riding with a power meter only&lt;/a&gt;. How the rides reach Strava, Garmin Connect or intervals.icu is in &lt;a href=&quot;https://tourdupain.app/strava-garmin-fit&quot;&gt;Strava, Garmin and .fit files&lt;/a&gt;.&lt;/p&gt;
&lt;div class=&quot;cta&quot;&gt;&lt;a class=&quot;btn btn-go&quot; href=&quot;https://tourdupain.app/&quot;&gt;Open Tour du Pain&lt;/a&gt;&lt;a class=&quot;btn&quot; href=&quot;https://tourdupain.app/demo&quot;&gt;Try the demo, no trainer needed&lt;/a&gt;&lt;/div&gt;</content>
  </entry>
  <entry>
    <title>Lighter on older laptops, and tablets that ride upright</title>
    <link rel="alternate" type="text/html" href="https://tourdupain.app/blog/lighter-on-laptops-and-tablets"/>
    <id>https://tourdupain.app/blog/lighter-on-laptops-and-tablets</id>
    <published>2026-10-29T12:00:00+01:00</published>
    <updated>2026-11-07T12:00:00+01:00</updated>
    <summary>From 29 October to 7 November Tour du Pain got lighter: up to 30% less work per frame, menus that don't draw the world, upright tablets and a lighter Low.</summary>
    <content type="html">&lt;p&gt;Tour du Pain runs in a browser tab, so it shares your laptop with everything else on it. Between 29 October and 7 November four releases made it lighter on older laptops and friendlier to tablets and phones, without making Medium or High look any worse.&lt;/p&gt;
&lt;h2 id=&quot;tablets-held-upright&quot;&gt;Tablets held upright&lt;/h2&gt;
&lt;p&gt;&lt;a href=&quot;https://tourdupain.app/updates#v1-19-9&quot;&gt;1.19.9&lt;/a&gt; on 29 October let tablets held upright, 768 pixels wide and up, ride with the full HUD instead of showing &amp;quot;Turn your device&amp;quot;. On a phone on its side the ride HUD got a size smaller, so more road shows and the whole riders list fits. The minimap also gained the Col du Pain's branch and its summit.&lt;/p&gt;
&lt;div class=&quot;solo&quot;&gt;&lt;figure&gt;&lt;img src=&quot;https://tourdupain.app/media/tablet-upright-1600.webp&quot; srcset=&quot;https://tourdupain.app/media/tablet-upright-800.webp 800w, https://tourdupain.app/media/tablet-upright-1600.webp 1600w&quot; sizes=&quot;(min-width: 62rem) 58rem, calc(100vw - 32px)&quot; width=&quot;1112&quot; height=&quot;1600&quot; alt=&quot;The game on an upright tablet during a sweet spot workout, the full HUD above the road and the workout chart below&quot; decoding=&quot;async&quot; loading=&quot;lazy&quot;&gt;&lt;figcaption&gt;An upright tablet rides with the full HUD since 1.19.9.&lt;/figcaption&gt;&lt;/figure&gt;&lt;/div&gt;
&lt;h2 id=&quot;menus-that-don-t-draw-the-world&quot;&gt;Menus that don't draw the world&lt;/h2&gt;
&lt;p&gt;On 31 October &lt;a href=&quot;https://tourdupain.app/updates#v1-28-3&quot;&gt;1.28.3&lt;/a&gt; stopped menu pages from drawing the 3D world behind them. On a menu the game now does almost nothing, so laptops stay cooler and quieter while you pick a workout or plan a coffee ride. On a Mac the work per frame on a menu dropped from 2.1 to 0.3 milliseconds.&lt;/p&gt;
&lt;p&gt;The fades and Home look the same as before. A ride also starts with less work, the riders list is right from the first frame, and repeat visits load a little faster.&lt;/p&gt;
&lt;p&gt;That matters more than it sounds. Between rides you spend time on Home, in the Workouts screen or planning a coffee ride, and a laptop that already runs hot before the warm-up has less to give once the bunch is on screen.&lt;/p&gt;
&lt;h2 id=&quot;up-to-30-less-work-per-frame&quot;&gt;Up to 30% less work per frame&lt;/h2&gt;
&lt;p&gt;The same day &lt;a href=&quot;https://tourdupain.app/updates#v1-28-9&quot;&gt;1.28.9&lt;/a&gt; made riding itself lighter, most of all with many riders around on an older laptop: up to 30% less work to draw a frame, and about 80 MB less memory. Nothing looks different. That release also sat every rider properly on the saddle, with no gap on the TT bike.&lt;/p&gt;
&lt;div class=&quot;solo&quot;&gt;&lt;figure&gt;&lt;img src=&quot;https://tourdupain.app/media/chromebook-1600.webp&quot; srcset=&quot;https://tourdupain.app/media/chromebook-800.webp 800w, https://tourdupain.app/media/chromebook-1600.webp 1600w&quot; sizes=&quot;(min-width: 62rem) 58rem, calc(100vw - 32px)&quot; width=&quot;1366&quot; height=&quot;768&quot; alt=&quot;The Home screen at Chromebook size with Free ride, a connected trainer, Workouts, Leaderboard and the bakery&quot; decoding=&quot;async&quot; loading=&quot;lazy&quot;&gt;&lt;figcaption&gt;Home at Chromebook size. Menus no longer draw the world behind them, so a small laptop stays cool.&lt;/figcaption&gt;&lt;/figure&gt;&lt;/div&gt;
&lt;h2 id=&quot;a-lighter-low&quot;&gt;A lighter Low&lt;/h2&gt;
&lt;p&gt;&lt;a href=&quot;https://tourdupain.app/updates#v1-31-3&quot;&gt;1.31.3&lt;/a&gt; on 7 November looked after weaker graphics cards. On Low, browser zoom no longer makes the game heavier, only the front rows of the crowds in the village and at the crossing are drawn, and shadows stop sooner. Medium and High look the same as before.&lt;/p&gt;
&lt;p&gt;The same release kept the lap card and the map on screen in the compact HUD on tablets and short windows, and put a full-screen switch in the ride settings, so a tablet can give the whole screen to the road.&lt;/p&gt;
&lt;div class=&quot;pair&quot;&gt;&lt;figure&gt;&lt;img src=&quot;https://tourdupain.app/media/ride-low-1600.webp&quot; srcset=&quot;https://tourdupain.app/media/ride-low-800.webp 800w, https://tourdupain.app/media/ride-low-1600.webp 1600w&quot; sizes=&quot;(min-width: 62rem) 29rem, (min-width: 40rem) 50vw, calc(100vw - 32px)&quot; width=&quot;1440&quot; height=&quot;900&quot; alt=&quot;A bunch on a lake road at golden hour on the Low graphics preset&quot; decoding=&quot;async&quot; loading=&quot;lazy&quot;&gt;&lt;figcaption&gt;Low graphics: the same road and riders, with fewer fans and shorter shadows.&lt;/figcaption&gt;&lt;/figure&gt;&lt;figure&gt;&lt;img src=&quot;https://tourdupain.app/media/ride-high-1600.webp&quot; srcset=&quot;https://tourdupain.app/media/ride-high-800.webp 800w, https://tourdupain.app/media/ride-high-1600.webp 1600w&quot; sizes=&quot;(min-width: 62rem) 29rem, (min-width: 40rem) 50vw, calc(100vw - 32px)&quot; width=&quot;1440&quot; height=&quot;900&quot; alt=&quot;The same bunch on the same lake road on the High graphics preset, with fans by the road&quot; decoding=&quot;async&quot; loading=&quot;lazy&quot;&gt;&lt;figcaption&gt;High graphics: more fans by the road and longer shadows.&lt;/figcaption&gt;&lt;/figure&gt;&lt;/div&gt;
&lt;h2 id=&quot;what-stayed-the-same&quot;&gt;What stayed the same&lt;/h2&gt;
&lt;p&gt;None of these releases took anything away on Medium or High. The road, the riders, the crowd on the Col and the HUD look as they did; the game just does less work where nobody can see the difference.&lt;/p&gt;
&lt;h2 id=&quot;which-setting-to-pick&quot;&gt;Which setting to pick&lt;/h2&gt;
&lt;p&gt;If your laptop's fan spins up or the ride stutters, set graphics to Low under Graphics &amp;amp; sound in Settings. You keep the same road, riders and HUD, and the game asks far less of the graphics card. On a recent laptop, Medium or High shows more fans and longer shadows. You can try both in the &lt;a href=&quot;https://tourdupain.app/demo&quot;&gt;demo&lt;/a&gt; before you connect a trainer.&lt;/p&gt;
&lt;p&gt;There's a guide for each kind of device: &lt;a href=&quot;https://tourdupain.app/windows-mac-laptop&quot;&gt;Windows and Mac laptops&lt;/a&gt;, &lt;a href=&quot;https://tourdupain.app/chromebook&quot;&gt;Chromebooks&lt;/a&gt; and &lt;a href=&quot;https://tourdupain.app/android-tablet&quot;&gt;Android tablets&lt;/a&gt;. Why a game in a browser tab works at all is in &lt;a href=&quot;https://tourdupain.app/browser-cycling-game&quot;&gt;a cycling game in your browser&lt;/a&gt;.&lt;/p&gt;
&lt;div class=&quot;cta&quot;&gt;&lt;a class=&quot;btn btn-go&quot; href=&quot;https://tourdupain.app/&quot;&gt;Open Tour du Pain&lt;/a&gt;&lt;a class=&quot;btn&quot; href=&quot;https://tourdupain.app/demo&quot;&gt;Try the demo, no trainer needed&lt;/a&gt;&lt;/div&gt;</content>
  </entry>
  <entry>
    <title>Busy trainers connect anyway, the Zwift Ride's buttons work, and the ThinkRider XX Pro</title>
    <link rel="alternate" type="text/html" href="https://tourdupain.app/blog/more-trainers"/>
    <id>https://tourdupain.app/blog/more-trainers</id>
    <published>2026-10-28T12:00:00+01:00</published>
    <updated>2026-11-08T12:00:00+01:00</updated>
    <summary>On 28 October trainers held by another app began connecting anyway. The Zwift Ride's buttons and lock followed, then on 7 November the ThinkRider XX Pro.</summary>
    <content type="html">&lt;p&gt;Smart trainers are picky about who they talk to. Most take one Bluetooth connection at a time, and a phone app left open in the next room is enough to keep yours busy. Between 28 October and 7 November Tour du Pain got better at that, learned the Zwift Ride's buttons and its lock, and added the ThinkRider XX Pro to its list. One note before you read on: only the Wahoo KICKR CORE has been ridden with Tour du Pain on real hardware. The other trainers and the Zwift Ride's buttons were tested on an emulator, so they're expected to work.&lt;/p&gt;
&lt;h2 id=&quot;a-busy-trainer-connects-anyway&quot;&gt;A busy trainer connects anyway&lt;/h2&gt;
&lt;p&gt;Before &lt;a href=&quot;https://tourdupain.app/updates#v1-8-1&quot;&gt;1.8.1&lt;/a&gt;, a trainer held by another app or device simply wouldn't work. From 28 October it connects anyway, and you ride on its power, cadence and speed. The usual culprits are the Decathlon app, Kinomap, Zwift, or a phone or watch the trainer is paired with.&lt;/p&gt;
&lt;p&gt;As long as the other app holds on, the game asks for control again every 5 seconds. Once it lets go, ERG and simulation switch on by themselves with a short notice. Connections tells you how to free the trainer: close that app, turn off Bluetooth on the phone or watch, or switch the trainer off and on. Then there's a Try again button.&lt;/p&gt;
&lt;p&gt;The Van Rysel D100 and D500 entries in the trainer list now say plainly that they take one Bluetooth connection at a time, and how to free them. The &lt;a href=&quot;https://tourdupain.app/van-rysel-trainer&quot;&gt;Van Rysel guide&lt;/a&gt; has the details.&lt;/p&gt;
&lt;div class=&quot;solo&quot;&gt;&lt;figure&gt;&lt;img src=&quot;https://tourdupain.app/media/trainers-vanrysel-1600.webp&quot; srcset=&quot;https://tourdupain.app/media/trainers-vanrysel-800.webp 800w, https://tourdupain.app/media/trainers-vanrysel-1600.webp 1600w&quot; sizes=&quot;(min-width: 62rem) 58rem, calc(100vw - 32px)&quot; width=&quot;1600&quot; height=&quot;900&quot; alt=&quot;The Supported trainers list filtered to Van Rysel, with each model marked Should work&quot; decoding=&quot;async&quot; loading=&quot;lazy&quot;&gt;&lt;figcaption&gt;The Van Rysel entries: each one takes one Bluetooth connection at a time.&lt;/figcaption&gt;&lt;/figure&gt;&lt;/div&gt;
&lt;h2 id=&quot;the-zwift-ride-s-buttons-and-its-lock&quot;&gt;The Zwift Ride's buttons and its lock&lt;/h2&gt;
&lt;p&gt;&lt;a href=&quot;https://tourdupain.app/updates#v1-20-1&quot;&gt;1.20.1&lt;/a&gt; on 29 October fixed the Zwift Ride. Every right button now makes it harder and every left button easier, like Zwift's own default; one right button used to work the other way round. The buttons step the resistance levels, or the ERG watts with ERG on, rather than virtual gears.&lt;/p&gt;
&lt;p&gt;The newer Zwift Ride's controllers are locked to Zwift (&lt;a href=&quot;https://bikecontrol.app/blog/zwift-click-v2-with-other-trainer-apps/&quot; rel=&quot;noopener&quot;&gt;BikeControl explains the lock&lt;/a&gt;). Before this release a locked Ride connected and then did nothing. Now the game says it's locked and shows the steps: open the Zwift app and pair the controllers on the day you ride, then quit Zwift on every device before you connect in Tour du Pain.&lt;/p&gt;
&lt;p&gt;Holding + or − at the end of the scale now shows the limit once instead of flashing until you let go. The trainer list shows the Zwift Ride with its trainer, the KICKR CORE Zwift One or the KICKR CORE 2 (&lt;a href=&quot;https://zwiftinsider.com/zwift-ride-v2/&quot; rel=&quot;noopener&quot;&gt;Zwift Insider on the Ride V2&lt;/a&gt;), plus a note on how its buttons work. All of it is in &lt;a href=&quot;https://tourdupain.app/zwift-hub-zwift-ride&quot;&gt;Zwift Hub and Zwift Ride outside Zwift&lt;/a&gt;.&lt;/p&gt;
&lt;div class=&quot;solo&quot;&gt;&lt;figure&gt;&lt;img src=&quot;https://tourdupain.app/media/devices-screen-1600.webp&quot; srcset=&quot;https://tourdupain.app/media/devices-screen-800.webp 800w, https://tourdupain.app/media/devices-screen-1600.webp 1600w&quot; sizes=&quot;(min-width: 62rem) 58rem, calc(100vw - 32px)&quot; width=&quot;1600&quot; height=&quot;900&quot; alt=&quot;Settings, Devices with a KICKR CORE smart trainer and an HRM-Pro heart rate strap connected and a trainer ready message&quot; decoding=&quot;async&quot; loading=&quot;lazy&quot;&gt;&lt;figcaption&gt;Devices: the trainer and heart rate on top, controllers and other sensors below.&lt;/figcaption&gt;&lt;/figure&gt;&lt;/div&gt;
&lt;h2 id=&quot;the-thinkrider-xx-pro-and-a-softer-erg-start&quot;&gt;The ThinkRider XX Pro, and a softer ERG start&lt;/h2&gt;
&lt;p&gt;On 7 November &lt;a href=&quot;https://tourdupain.app/updates#v1-31-1&quot;&gt;1.31.1&lt;/a&gt; added the ThinkRider XX Pro (&lt;a href=&quot;https://road.cc/review_v2/thinkrider-xxpro-direct-drive-smart-bike-trainer&quot; rel=&quot;noopener&quot;&gt;road.cc's XX Pro review&lt;/a&gt;) to the supported list, as FTMS with ERG, after a rider reported riding it. The same release changed how ERG starts from a standstill. The trainer stays light until your legs turn, then ramps up to the target over 6 seconds. Heart rate from a strap that dropped out no longer stays flat in the ride either.&lt;/p&gt;
&lt;div class=&quot;solo&quot;&gt;&lt;figure&gt;&lt;img src=&quot;https://tourdupain.app/media/w4-trainers-thinkrider-1600.webp&quot; srcset=&quot;https://tourdupain.app/media/w4-trainers-thinkrider-800.webp 800w, https://tourdupain.app/media/w4-trainers-thinkrider-1600.webp 1600w&quot; sizes=&quot;(min-width: 62rem) 58rem, calc(100vw - 32px)&quot; width=&quot;1600&quot; height=&quot;900&quot; alt=&quot;The Supported trainers list searched for ThinkRider, showing the XX Pro marked Should work&quot; decoding=&quot;async&quot; loading=&quot;lazy&quot;&gt;&lt;figcaption&gt;The ThinkRider XX Pro joined the list on 7 November, as a rider reported it.&lt;/figcaption&gt;&lt;/figure&gt;&lt;/div&gt;
&lt;h2 id=&quot;tested-honestly&quot;&gt;Tested, honestly&lt;/h2&gt;
&lt;p&gt;We've ridden Tour du Pain on one trainer ourselves: a Wahoo KICKR CORE over &lt;a href=&quot;https://www.bluetooth.com/specifications/specs/fitness-machine-service-1-0/&quot; rel=&quot;noopener&quot;&gt;FTMS, the Bluetooth fitness machine standard&lt;/a&gt;. Every other model, the Zwift Ride and the ThinkRider XX Pro included, is tested on an emulator or known from riders' reports, and the list says which. ANT+-only trainers can't work, because browsers have no ANT+. If your trainer behaves oddly, tell us.&lt;/p&gt;
&lt;p&gt;The guide to &lt;a href=&quot;https://tourdupain.app/smart-trainer-app&quot;&gt;smart trainers that work in the browser&lt;/a&gt; lists every model and what's known about it, and &lt;a href=&quot;https://tourdupain.app/wahoo-kickr&quot;&gt;Wahoo KICKR in the browser&lt;/a&gt; covers the KICKR family, the KICKR CORE 2 included.&lt;/p&gt;
&lt;div class=&quot;cta&quot;&gt;&lt;a class=&quot;btn btn-go&quot; href=&quot;https://tourdupain.app/&quot;&gt;Open Tour du Pain&lt;/a&gt;&lt;a class=&quot;btn&quot; href=&quot;https://tourdupain.app/demo&quot;&gt;Try the demo, no trainer needed&lt;/a&gt;&lt;/div&gt;</content>
  </entry>
  <entry>
    <title>Voice in the bunch: ten riders at once, club radio, and blocking that works both ways</title>
    <link rel="alternate" type="text/html" href="https://tourdupain.app/blog/voice-in-the-bunch"/>
    <id>https://tourdupain.app/blog/voice-in-the-bunch</id>
    <published>2026-10-28T12:00:00+01:00</published>
    <updated>2026-11-08T12:00:00+01:00</updated>
    <summary>Between 28 and 30 October Tour du Pain's voice chat grew to ten riders at once, gave talkers a spot first, cut both ways on block and got club radio.</summary>
    <content type="html">&lt;p&gt;Tour du Pain has voice chat built in: hold R and the riders on the course hear you, with no Discord or phone call running next to the game. Between 28 and 30 October voice changed in a few ways riders noticed straight away. Blocking someone now cuts voice both ways, you hear up to ten riders at once, and clubs got their own radio. To &lt;a href=&quot;https://tourdupain.app/group-rides&quot;&gt;start a group ride with friends&lt;/a&gt; today, the guide has the current steps.&lt;/p&gt;
&lt;h2 id=&quot;blocking-stops-voice-both-ways&quot;&gt;Blocking stops voice both ways&lt;/h2&gt;
&lt;p&gt;&lt;a href=&quot;https://tourdupain.app/updates#v1-6-6&quot;&gt;1.6.6&lt;/a&gt; went live on 28 October. Block a rider and voice stops both ways straight away: you don't hear them, and they don't hear you. You block from the rider menu, which opens when you click a name, and the game asks first: neither of you will see or hear the other, no messages, voice or reactions. You can undo it in Account.&lt;/p&gt;
&lt;div class=&quot;solo&quot;&gt;&lt;figure&gt;&lt;img src=&quot;https://tourdupain.app/media/w4-rider-menu-1600.webp&quot; srcset=&quot;https://tourdupain.app/media/w4-rider-menu-800.webp 800w, https://tourdupain.app/media/w4-rider-menu-1600.webp 1600w&quot; sizes=&quot;(min-width: 62rem) 58rem, calc(100vw - 32px)&quot; width=&quot;1600&quot; height=&quot;900&quot; alt=&quot;A ride with other riders online and the rider menu for Iris open, with Mute, Block and Report&quot; decoding=&quot;async&quot; loading=&quot;lazy&quot;&gt;&lt;figcaption&gt;Click a name for the rider menu: Mute, Block and Report. A block cuts voice both ways.&lt;/figcaption&gt;&lt;/figure&gt;&lt;/div&gt;
&lt;h2 id=&quot;ten-voices-at-once&quot;&gt;Ten voices at once&lt;/h2&gt;
&lt;p&gt;The same day &lt;a href=&quot;https://tourdupain.app/updates#v1-7-1&quot;&gt;1.7.1&lt;/a&gt; raised how many riders you hear at once from six to ten, so a busy room sounds like a voice channel instead of a few lucky speakers.&lt;/p&gt;
&lt;p&gt;Riders who talk get a spot first. A quiet rider keeps their spot until a talker needs it, so the rider who just asked a question isn't cut off by someone who said hello ten minutes ago. Your group's radio still comes through on top of the rest.&lt;/p&gt;
&lt;div class=&quot;solo&quot;&gt;&lt;figure&gt;&lt;img src=&quot;https://tourdupain.app/media/w4-voice-optin-1600.webp&quot; srcset=&quot;https://tourdupain.app/media/w4-voice-optin-800.webp 800w, https://tourdupain.app/media/w4-voice-optin-1600.webp 1600w&quot; sizes=&quot;(min-width: 62rem) 58rem, calc(100vw - 32px)&quot; width=&quot;1600&quot; height=&quot;900&quot; alt=&quot;A ride at golden hour with the Talk while you ride card under the riders list: hold R to talk, nothing is recorded, with Not now and Turn on voice&quot; decoding=&quot;async&quot; loading=&quot;lazy&quot;&gt;&lt;figcaption&gt;The first time, this card asks before voice turns on. Nothing is recorded.&lt;/figcaption&gt;&lt;/figure&gt;&lt;/div&gt;
&lt;h2 id=&quot;how-voice-works&quot;&gt;How voice works&lt;/h2&gt;
&lt;p&gt;Voice is off until you switch it on. The first time, the game asks whether you want to talk while you ride, says plainly that nothing is recorded, and then &lt;a href=&quot;https://support.google.com/chrome/answer/2693767?hl=en&amp;amp;co=GENIE.Platform%3DDesktop&quot; rel=&quot;noopener&quot;&gt;the browser asks for your microphone&lt;/a&gt;. After that you hold R to talk to everyone on the course and to your group, or click the microphone to keep it on. The &lt;a href=&quot;https://tourdupain.app/voice-chat&quot;&gt;voice chat guide&lt;/a&gt; covers every setting.&lt;/p&gt;
&lt;p&gt;Chat sits next to it with its own channels: to riders near you, to everyone riding, or to your group. Voice and chat work in Chrome or Edge on a computer or a Chromebook, and in Chrome, Edge or Opera on an Android tablet, in the same tab as the ride.&lt;/p&gt;
&lt;h2 id=&quot;club-radio&quot;&gt;Club radio&lt;/h2&gt;
&lt;p&gt;On 30 October &lt;a href=&quot;https://tourdupain.app/updates#v1-25-0&quot;&gt;1.25.0&lt;/a&gt; added radio for clubs. During a planned club ride, members hear each other wherever they are on the course, up to ten voices at a time, whoever talks first. A rider from outside the club who talks still gets through.&lt;/p&gt;
&lt;p&gt;Members land in the club ride's room whether they tapped Join or not, so nobody ends up alone in another room. Hiding from the club list also keeps you off the radio, and leaving the club ends it at once.&lt;/p&gt;
&lt;div class=&quot;solo&quot;&gt;&lt;figure&gt;&lt;img src=&quot;https://tourdupain.app/media/club-ready-check-1600.webp&quot; srcset=&quot;https://tourdupain.app/media/club-ready-check-800.webp 800w, https://tourdupain.app/media/club-ready-check-1600.webp 1600w&quot; sizes=&quot;(min-width: 62rem) 58rem, calc(100vw - 32px)&quot; width=&quot;720&quot; height=&quot;314&quot; alt=&quot;The club's Ready card with a trainer check and a microphone check with a Test button&quot; decoding=&quot;async&quot; loading=&quot;lazy&quot;&gt;&lt;figcaption&gt;The ready check on the club screen tests your microphone before a club ride.&lt;/figcaption&gt;&lt;/figure&gt;&lt;/div&gt;
&lt;p&gt;Since 30 October a club also has a ready check that tests your microphone before the ride; the post on &lt;a href=&quot;https://tourdupain.app/blog/clubs&quot;&gt;clubs&lt;/a&gt; tells the rest of that story. For setting up a regular club night with voice, read &lt;a href=&quot;https://tourdupain.app/cycling-club-indoor-rides&quot;&gt;indoor rides for cycling clubs&lt;/a&gt;. For a one-off ride with friends, see &lt;a href=&quot;https://tourdupain.app/group-rides&quot;&gt;riding with friends and your club&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id=&quot;why-it-s-in-the-game&quot;&gt;Why it's in the game&lt;/h2&gt;
&lt;p&gt;Plenty of indoor groups run a call next to their cycling app, on a second device or in a second window. In Tour du Pain the voice is part of the ride: it reaches everyone on the course and your group, and it pauses in hard intervals, coming back after the block. More on what a browser game can do in &lt;a href=&quot;https://tourdupain.app/browser-cycling-game&quot;&gt;a cycling game in your browser&lt;/a&gt;, and how other apps compare in &lt;a href=&quot;https://tourdupain.app/zwift-alternative&quot;&gt;Zwift alternatives&lt;/a&gt;.&lt;/p&gt;
&lt;div class=&quot;cta&quot;&gt;&lt;a class=&quot;btn btn-go&quot; href=&quot;https://tourdupain.app/&quot;&gt;Open Tour du Pain&lt;/a&gt;&lt;a class=&quot;btn&quot; href=&quot;https://tourdupain.app/demo&quot;&gt;Try the demo, no trainer needed&lt;/a&gt;&lt;/div&gt;</content>
  </entry>
  <entry>
    <title>Ride cards, postcards and a Strava link on line one</title>
    <link rel="alternate" type="text/html" href="https://tourdupain.app/blog/ride-cards-and-strava"/>
    <id>https://tourdupain.app/blog/ride-cards-and-strava</id>
    <published>2026-10-28T12:00:00+01:00</published>
    <updated>2026-11-04T12:00:00+01:00</updated>
    <summary>From 28 October to 4 November Tour du Pain put its link on line one of your Strava description, added a ride card maker and gave postcards a Share button.</summary>
    <content type="html">&lt;p&gt;Indoor rides tend to look alike on Strava: a flat map and a block of numbers. Between 28 October and 4 November Tour du Pain made its rides easier to show. The game's link moved to the first line of your Strava description, the ride report got a ride card maker, and every postcard got its own Share button.&lt;/p&gt;
&lt;h2 id=&quot;the-link-on-line-one&quot;&gt;The link on line one&lt;/h2&gt;
&lt;p&gt;&lt;a href=&quot;https://tourdupain.app/updates#v1-6-1&quot;&gt;1.6.1&lt;/a&gt; went live on 28 October. When a ride goes to Strava, the first line of its description is now &amp;quot;Ridden in Tour du Pain: https://tourdupain.app&amp;quot;, with a little French flag in front. That puts the link in the feed, where friends see it under your ride. The baguettes you earned, the ride itself and the postcard follow underneath.&lt;/p&gt;
&lt;p&gt;Rides saved in an older version got the link moved up when they were sent.&lt;/p&gt;
&lt;div class=&quot;solo&quot;&gt;&lt;figure&gt;&lt;img src=&quot;https://tourdupain.app/media/report-share-1600.webp&quot; srcset=&quot;https://tourdupain.app/media/report-share-800.webp 800w, https://tourdupain.app/media/report-share-1600.webp 1600w&quot; sizes=&quot;(min-width: 62rem) 58rem, calc(100vw - 32px)&quot; width=&quot;1600&quot; height=&quot;900&quot; alt=&quot;The ride report's Strava preview with the title and the description starting with Ridden in Tour du Pain, and the share menu open&quot; decoding=&quot;async&quot; loading=&quot;lazy&quot;&gt;&lt;figcaption&gt;The Strava description starts with the Tour du Pain link. The share menu holds the ride card, the .fit and Garmin Connect.&lt;/figcaption&gt;&lt;/figure&gt;&lt;/div&gt;
&lt;h2 id=&quot;the-ride-card&quot;&gt;The ride card&lt;/h2&gt;
&lt;p&gt;On 29 October &lt;a href=&quot;https://tourdupain.app/updates#v1-16-0&quot;&gt;1.16.0&lt;/a&gt; added a Ride card button to the ride report. It makes a square image, 1080 by 1080 pixels, with a picture from your ride and up to four numbers you pick. You choose from distance, time, average power, NP, W/kg, average speed, climbed, max power and laps, and after a climb your Col time and Col rank.&lt;/p&gt;
&lt;p&gt;The picture is one of your screenshots from the ride. Without one, the card uses a drawn evening with your rider on it. There are three looks, Crust, Flour and Dusk, and the week's polka-dot jersey holder gets polka dots on the card. Then you download it, share it from your phone, or copy it where the browser allows.&lt;/p&gt;
&lt;div class=&quot;solo&quot;&gt;&lt;figure&gt;&lt;img src=&quot;https://tourdupain.app/media/w4-ride-card-dusk-1600.webp&quot; srcset=&quot;https://tourdupain.app/media/w4-ride-card-dusk-800.webp 800w, https://tourdupain.app/media/w4-ride-card-dusk-1600.webp 1600w&quot; sizes=&quot;(min-width: 62rem) 58rem, calc(100vw - 32px)&quot; width=&quot;1600&quot; height=&quot;900&quot; alt=&quot;The ride card maker with the Dusk look: a drawn evening with the rider and four numbers on a purple card&quot; decoding=&quot;async&quot; loading=&quot;lazy&quot;&gt;&lt;figcaption&gt;The same card in the Dusk look. Pick up to four numbers, then download, share or copy.&lt;/figcaption&gt;&lt;/figure&gt;&lt;/div&gt;
&lt;p&gt;There's a short guide under the card for Strava. In the Strava app you open your activity, tap the three dots, then Edit Activity and Add Photos/Videos, and pick the card. On strava.com you open the activity, click the pencil and drop the PNG in the Media box. To have the card seen first, make it the highlight photo: in the app, long-press it and choose Set as Highlight Video or Photo (&lt;a href=&quot;https://support.strava.com/en-us/articles/15401859-how-do-i-add-videos-and-photos-to-my-activity&quot; rel=&quot;noopener&quot;&gt;Strava's steps for adding photos&lt;/a&gt;).&lt;/p&gt;
&lt;h2 id=&quot;postcards-with-a-share-button&quot;&gt;Postcards with a Share button&lt;/h2&gt;
&lt;p&gt;Postcards are real frames of the 3D view, taken at the moment a baguette is handed over, with your numbers at that moment. A ride keeps up to six, spread over the whole ride, and you can take your own screenshots with P. They stay on your device and are never uploaded on their own.&lt;/p&gt;
&lt;p&gt;On 4 November &lt;a href=&quot;https://tourdupain.app/updates#v1-30-0&quot;&gt;1.30.0&lt;/a&gt; gave each postcard a Share button, with a menu for the rest. The report around them changed too: the Strava box sits next to the time in zones, and in a workout the target shows as a clear line in the power chart.&lt;/p&gt;
&lt;div class=&quot;solo&quot;&gt;&lt;figure&gt;&lt;img src=&quot;https://tourdupain.app/media/connections-1600.webp&quot; srcset=&quot;https://tourdupain.app/media/connections-800.webp 800w, https://tourdupain.app/media/connections-1600.webp 1600w&quot; sizes=&quot;(min-width: 62rem) 58rem, calc(100vw - 32px)&quot; width=&quot;1600&quot; height=&quot;900&quot; alt=&quot;Settings, Apps with Strava connected and switches for sending rides automatically and adding a postcard link&quot; decoding=&quot;async&quot; loading=&quot;lazy&quot;&gt;&lt;figcaption&gt;Settings, Apps: send rides to Strava automatically, with or without a postcard link.&lt;/figcaption&gt;&lt;/figure&gt;&lt;/div&gt;
&lt;h2 id=&quot;strava-garmin-and-the-rest&quot;&gt;Strava, Garmin and the rest&lt;/h2&gt;
&lt;p&gt;In Settings, Apps you link Strava once, and every saved ride goes up on its own, with a postcard link if you want one. Garmin Connect doesn't take rides from apps directly, so the report has &amp;quot;Export for Garmin Connect&amp;quot;: it downloads the .fit and opens Garmin's import page. The same &lt;a href=&quot;https://developer.garmin.com/fit/overview/&quot; rel=&quot;noopener&quot;&gt;.fit&lt;/a&gt; works for intervals.icu and any other tool. The guide to &lt;a href=&quot;https://tourdupain.app/strava-garmin-fit&quot;&gt;Strava, Garmin Connect and .fit files&lt;/a&gt; covers each one.&lt;/p&gt;
&lt;p&gt;A good Col time makes a good card; the &lt;a href=&quot;https://tourdupain.app/col-du-pain&quot;&gt;Col du Pain guide&lt;/a&gt; has the climb. And a card from a coffee ride says more than a solo one; see &lt;a href=&quot;https://tourdupain.app/group-rides&quot;&gt;riding with friends and your club&lt;/a&gt;.&lt;/p&gt;
&lt;div class=&quot;cta&quot;&gt;&lt;a class=&quot;btn btn-go&quot; href=&quot;https://tourdupain.app/&quot;&gt;Open Tour du Pain&lt;/a&gt;&lt;a class=&quot;btn&quot; href=&quot;https://tourdupain.app/demo&quot;&gt;Try the demo, no trainer needed&lt;/a&gt;&lt;/div&gt;</content>
  </entry>
  <entry>
    <title>Ride along: how Tour du Pain keeps a group together whatever the watts</title>
    <link rel="alternate" type="text/html" href="https://tourdupain.app/blog/ride-along-and-group-rides"/>
    <id>https://tourdupain.app/blog/ride-along-and-group-rides</id>
    <published>2026-10-28T12:00:00+01:00</published>
    <updated>2026-10-30T12:00:00+01:00</updated>
    <summary>From 28 to 30 October Tour du Pain got ride along, then planned group rides and coffee rides: one link, and 100 W and 250 W ride side by side.</summary>
    <content type="html">&lt;p&gt;On 28 October Tour du Pain learned the trick every indoor group needs: ride along. Pick a rider and you stay beside them whatever your power, so 100 W and 250 W ride together. Within two days it had grown into planned group rides, and then into coffee rides with their own screen and a link you can send to anyone.&lt;/p&gt;
&lt;h2 id=&quot;ride-with-anyone&quot;&gt;Ride with anyone&lt;/h2&gt;
&lt;p&gt;Ride along came in &lt;a href=&quot;https://tourdupain.app/updates#v1-10-0&quot;&gt;1.10.0&lt;/a&gt;. Click a rider in the riders list, or the name over their head, and pick &amp;quot;Ride with&amp;quot;. You stay beside them, and they get a quiet note that you're riding with them. When they stop, you stop with them.&lt;/p&gt;
&lt;p&gt;Stop pedalling, or stay under 30 W for 5 seconds, and you drop. Pedal again within 30 seconds and you're back beside them. One click on the pill under the riders list's title ends it. It works with the bots too, so on a quiet evening you can sit next to a legend for a lap.&lt;/p&gt;
&lt;p&gt;What counts stays honest. Your recording keeps your own watts, and bread counts only your own work, so being carried earns nothing.&lt;/p&gt;
&lt;h2 id=&quot;planned-group-rides&quot;&gt;Planned group rides&lt;/h2&gt;
&lt;p&gt;The next day &lt;a href=&quot;https://tourdupain.app/updates#v1-18-0&quot;&gt;1.18.0&lt;/a&gt; turned that into group rides. You plan one from Home with a name and a time, or start right away, then share the link and add it to your calendar. Anyone with the link sees who planned it and a countdown, and taps Join. Guests can join too; you need an account to plan one.&lt;/p&gt;
&lt;p&gt;From 30 minutes before the start until 3 hours after, everyone rides beside the host whatever their watts. A late joiner is pulled up to the group. Stop pedalling and you drop back until you pedal again. The host can cancel, and an old or cancelled link says so.&lt;/p&gt;
&lt;div class=&quot;solo&quot;&gt;&lt;figure&gt;&lt;img src=&quot;https://tourdupain.app/media/ride-kb-1600.webp&quot; srcset=&quot;https://tourdupain.app/media/ride-kb-800.webp 800w, https://tourdupain.app/media/ride-kb-1600.webp 1600w&quot; sizes=&quot;(min-width: 62rem) 58rem, calc(100vw - 32px)&quot; width=&quot;1600&quot; height=&quot;900&quot; alt=&quot;A rider and the bot KB ride side by side down an avenue of trees, with fields on both sides&quot; decoding=&quot;async&quot; loading=&quot;lazy&quot;&gt;&lt;figcaption&gt;A bot beside you on the loop. Ride along works with the bots too.&lt;/figcaption&gt;&lt;/figure&gt;&lt;/div&gt;
&lt;h2 id=&quot;coffee-rides&quot;&gt;Coffee rides&lt;/h2&gt;
&lt;p&gt;On 30 October &amp;quot;Plan a group ride&amp;quot; became &amp;quot;Plan a coffee ride&amp;quot;, with a cup on the button. In &lt;a href=&quot;https://tourdupain.app/updates#v1-21-6&quot;&gt;1.21.6&lt;/a&gt; coffee rides got their own screen, opened from one row on Home: you plan the ride there and see your ride group under it. The Leaderboard got its own row on Home as well, with a trophy and the key K.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://tourdupain.app/updates#v1-21-7&quot;&gt;1.21.7&lt;/a&gt; replaced the time field with a start picker. Choose Now, or a day and a big clock in 10-minute steps. A name is optional, and a time that has already passed moves up instead of showing an error. The link works the moment it's made, so whoever opens it early can already ride with the group.&lt;/p&gt;
&lt;div class=&quot;solo&quot;&gt;&lt;figure&gt;&lt;img src=&quot;https://tourdupain.app/media/group-ride-plan-1600.webp&quot; srcset=&quot;https://tourdupain.app/media/group-ride-plan-800.webp 800w, https://tourdupain.app/media/group-ride-plan-1600.webp 1600w&quot; sizes=&quot;(min-width: 62rem) 58rem, calc(100vw - 32px)&quot; width=&quot;1600&quot; height=&quot;900&quot; alt=&quot;Home with the coffee ride card open: a name field, day buttons, a big time picker and a Make the link button&quot; decoding=&quot;async&quot; loading=&quot;lazy&quot;&gt;&lt;figcaption&gt;Planning a coffee ride: pick Now or a day and a time, then make the link.&lt;/figcaption&gt;&lt;/figure&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href=&quot;https://tourdupain.app/updates#v1-22-1&quot;&gt;1.22.1&lt;/a&gt; folded &amp;quot;Plan a coffee ride&amp;quot; open on Home itself, so you pick the time and make the link without leaving the menu. The link stays open for 24 hours after the start, and after 3 hours the host can plan the next ride.&lt;/p&gt;
&lt;div class=&quot;solo&quot;&gt;&lt;figure&gt;&lt;img src=&quot;https://tourdupain.app/media/home-signed-in-1600.webp&quot; srcset=&quot;https://tourdupain.app/media/home-signed-in-800.webp 800w, https://tourdupain.app/media/home-signed-in-1600.webp 1600w&quot; sizes=&quot;(min-width: 62rem) 58rem, calc(100vw - 32px)&quot; width=&quot;1600&quot; height=&quot;900&quot; alt=&quot;Home for a signed-in rider with Free ride, the connected trainer, Workouts, Coffee ride and Leaderboard rows&quot; decoding=&quot;async&quot; loading=&quot;lazy&quot;&gt;&lt;figcaption&gt;Home after these changes: Coffee ride and Leaderboard each have one row.&lt;/figcaption&gt;&lt;/figure&gt;&lt;/div&gt;
&lt;h2 id=&quot;why-indoor-groups-need-it&quot;&gt;Why indoor groups need it&lt;/h2&gt;
&lt;p&gt;Outside, a group waits at the top of a climb or soft-pedals for the slowest rider. Indoors, every trainer pushes its rider at their own speed, and a mixed group can be spread over the whole lap within minutes. Ride along keeps everyone together without asking anyone to ride harder or easier than they planned.&lt;/p&gt;
&lt;p&gt;The group can talk too, since voice and chat are part of the game; the post on &lt;a href=&quot;https://tourdupain.app/blog/voice-in-the-bunch&quot;&gt;voice in the bunch&lt;/a&gt; covers that. The guide to &lt;a href=&quot;https://tourdupain.app/group-rides&quot;&gt;riding with friends and your club&lt;/a&gt; puts it all together, and &lt;a href=&quot;https://tourdupain.app/zwift-alternative&quot;&gt;Zwift alternatives&lt;/a&gt; shows how other apps handle group rides.&lt;/p&gt;
&lt;p&gt;Clubs got the same ride along on 31 October, from 30 minutes before every club ride; see the post on &lt;a href=&quot;https://tourdupain.app/blog/clubs&quot;&gt;clubs&lt;/a&gt; and the guide to &lt;a href=&quot;https://tourdupain.app/cycling-club-indoor-rides&quot;&gt;indoor rides for cycling clubs&lt;/a&gt;.&lt;/p&gt;
&lt;div class=&quot;cta&quot;&gt;&lt;a class=&quot;btn btn-go&quot; href=&quot;https://tourdupain.app/&quot;&gt;Open Tour du Pain&lt;/a&gt;&lt;a class=&quot;btn&quot; href=&quot;https://tourdupain.app/demo&quot;&gt;Try the demo, no trainer needed&lt;/a&gt;&lt;/div&gt;</content>
  </entry>
  <entry>
    <title>Legends in the bunch, a team car, KB on the Col and LTD the bikepacker</title>
    <link rel="alternate" type="text/html" href="https://tourdupain.app/blog/legends-in-the-bunch"/>
    <id>https://tourdupain.app/blog/legends-in-the-bunch</id>
    <published>2026-10-28T12:00:00+01:00</published>
    <updated>2026-10-29T12:00:00+01:00</updated>
    <summary>On 28 and 29 October Tour du Pain's bots became cycling and triathlon legends, a team car started passing, you could ride as a woman and LTD rode in.</summary>
    <content type="html">&lt;p&gt;The road in Tour du Pain is never empty, because bots ride with you. On 28 and 29 October they got a lot more character: legends' names and kits, women riders, KB on the Col du Pain and a bikepacker called LTD. A team car started passing, and the pelotons got smaller so the lap has fewer empty stretches.&lt;/p&gt;
&lt;h2 id=&quot;the-bots-ride-as-legends&quot;&gt;The bots ride as legends&lt;/h2&gt;
&lt;p&gt;From &lt;a href=&quot;https://tourdupain.app/updates#v1-8-0&quot;&gt;1.8.0&lt;/a&gt; on 28 October the bots ride as legends of cycling and triathlon, as a tribute inside the game. Your six riding companions include &lt;a href=&quot;https://en.wikipedia.org/wiki/Eddy_Merckx&quot; rel=&quot;noopener&quot;&gt;Eddy Merckx&lt;/a&gt;, &lt;a href=&quot;https://en.wikipedia.org/wiki/Tadej_Poga%C4%8Dar&quot; rel=&quot;noopener&quot;&gt;Tadej Pogačar&lt;/a&gt;, &lt;a href=&quot;https://en.wikipedia.org/wiki/Mathieu_van_der_Poel&quot; rel=&quot;noopener&quot;&gt;Mathieu van der Poel&lt;/a&gt;, &lt;a href=&quot;https://en.wikipedia.org/wiki/Jan_Frodeno&quot; rel=&quot;noopener&quot;&gt;Jan Frodeno&lt;/a&gt; and &lt;a href=&quot;https://en.wikipedia.org/wiki/Chrissie_Wellington&quot; rel=&quot;noopener&quot;&gt;Chrissie Wellington&lt;/a&gt;. The two pelotons fill up with Ironman greats and Tour de France winners old and new, a fresh bunch every ride and nobody twice.&lt;/p&gt;
&lt;p&gt;Each legend has their own flag and kit colours. The yellow jersey goes to a Tour winner and &lt;a href=&quot;https://en.wikipedia.org/wiki/Mountains_classification_in_the_Tour_de_France&quot; rel=&quot;noopener&quot;&gt;the polka dots&lt;/a&gt; to a climber. Near a peloton the riders list names the four legends closest to you, tagged as bots.&lt;/p&gt;
&lt;aside class=&quot;aside&quot;&gt;&lt;p&gt;The legends are bots that carry famous names as a tribute. None of these athletes rides in the game, and none of them is involved with or endorses Tour du Pain.&lt;/p&gt;&lt;/aside&gt;
&lt;p&gt;The same release gave every rider their own skin tone, hair colour and beard, visible from far away too.&lt;/p&gt;
&lt;h2 id=&quot;a-team-car-and-a-banner&quot;&gt;A team car and a banner&lt;/h2&gt;
&lt;p&gt;On 29 October &lt;a href=&quot;https://tourdupain.app/updates#v1-17-0&quot;&gt;1.17.0&lt;/a&gt; added a team car that overtakes you now and then: a white estate in the game's navy and gold, with race bikes on the roof. It never comes past at the same moment as the 2CV.&lt;/p&gt;
&lt;p&gt;On the drag after the viaduct at 4.6 km, two fans hold up a giant hand-painted banner for the riders coming up. It reads &amp;quot;PAIN IS JUST BREAD IN FRENCH&amp;quot;, in English whatever language you play in.&lt;/p&gt;
&lt;h2 id=&quot;riding-as-a-woman&quot;&gt;Riding as a woman&lt;/h2&gt;
&lt;p&gt;The same release let you ride as a woman. Pick it under Your rider in the Shop or during setup; the choice syncs with your account. Other riders see your figure too, and the women legends among the bots now ride as women.&lt;/p&gt;
&lt;div class=&quot;pair&quot;&gt;&lt;figure&gt;&lt;img src=&quot;https://tourdupain.app/media/ride-woman-1600.webp&quot; srcset=&quot;https://tourdupain.app/media/ride-woman-800.webp 800w, https://tourdupain.app/media/ride-woman-1600.webp 1600w&quot; sizes=&quot;(min-width: 62rem) 29rem, (min-width: 40rem) 50vw, calc(100vw - 32px)&quot; width=&quot;1600&quot; height=&quot;900&quot; alt=&quot;Side view of a female rider in a blue and white kit riding past lavender rows at golden hour&quot; decoding=&quot;async&quot; loading=&quot;lazy&quot;&gt;&lt;figcaption&gt;Since 1.17.0 you can ride as a woman, and others see your figure too.&lt;/figcaption&gt;&lt;/figure&gt;&lt;figure&gt;&lt;img src=&quot;https://tourdupain.app/media/shop-rider-1600.webp&quot; srcset=&quot;https://tourdupain.app/media/shop-rider-800.webp 800w, https://tourdupain.app/media/shop-rider-1600.webp 1600w&quot; sizes=&quot;(min-width: 62rem) 29rem, (min-width: 40rem) 50vw, calc(100vw - 32px)&quot; width=&quot;1600&quot; height=&quot;900&quot; alt=&quot;The shop's Your rider tab with a Man or Woman choice and kit colour pickers&quot; decoding=&quot;async&quot; loading=&quot;lazy&quot;&gt;&lt;figcaption&gt;Your rider in the Shop: man or woman, and your own kit colours.&lt;/figcaption&gt;&lt;/figure&gt;&lt;/div&gt;
&lt;h2 id=&quot;kb-climbs-with-you&quot;&gt;KB climbs with you&lt;/h2&gt;
&lt;p&gt;KB is one of the bots that ride the loop with you. In &lt;a href=&quot;https://tourdupain.app/updates#v1-19-11&quot;&gt;1.19.11&lt;/a&gt; he learned the Col du Pain: when you take the turn-off he takes it too, climbs and descends near you, and rejoins the loop with you. The other bots stay on the loop. The climb itself has its own post on the &lt;a href=&quot;https://tourdupain.app/blog/col-du-pain-climb&quot;&gt;Col du Pain&lt;/a&gt; and a full &lt;a href=&quot;https://tourdupain.app/col-du-pain&quot;&gt;Col du Pain guide&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id=&quot;ltd-and-smaller-pelotons&quot;&gt;LTD and smaller pelotons&lt;/h2&gt;
&lt;p&gt;&lt;a href=&quot;https://tourdupain.app/updates#v1-21-0&quot;&gt;1.21.0&lt;/a&gt; brought a new rider: LTD, a bikepacking racer on a fully loaded bike. He has a frame bag, a big saddle pack, a dry bag on the bars and a green crisps tube sticking out of his back pocket. He rides alone at a steady ultra pace a bit below the pelotons, and shows by his initials in the riders list while he's near you.&lt;/p&gt;
&lt;div class=&quot;solo&quot;&gt;&lt;figure&gt;&lt;img src=&quot;https://tourdupain.app/media/ride-ltd-1600.webp&quot; srcset=&quot;https://tourdupain.app/media/ride-ltd-800.webp 800w, https://tourdupain.app/media/ride-ltd-1600.webp 1600w&quot; sizes=&quot;(min-width: 62rem) 58rem, calc(100vw - 32px)&quot; width=&quot;1600&quot; height=&quot;900&quot; alt=&quot;Side view of the LTD rider on a loaded bikepacking bike with bags, riding past sunflowers at golden hour&quot; decoding=&quot;async&quot; loading=&quot;lazy&quot;&gt;&lt;figcaption&gt;LTD, the bikepacker, at his steady ultra pace through the sunflowers.&lt;/figcaption&gt;&lt;/figure&gt;&lt;/div&gt;
&lt;p&gt;The pelotons got smaller, 16 and 12 riders instead of 20 and 15. The riders that freed up now ride alone or in pairs and threes all round the lap. Over a 40-minute ride, a 400 m stretch with nobody on it became about a third less common, and the longest empty stretch about a fifth shorter.&lt;/p&gt;
&lt;p&gt;Riders also stopped sitting behind a slower rider for minutes. They pull out and go round, and a rider being passed doesn't drift into the one passing any more.&lt;/p&gt;
&lt;h2 id=&quot;company-when-nobody-s-online&quot;&gt;Company when nobody's online&lt;/h2&gt;
&lt;p&gt;Bots fill the road when you ride alone, and you can &lt;a href=&quot;https://tourdupain.app/blog/ride-along-and-group-rides&quot;&gt;ride along&lt;/a&gt; with any of them, so a quiet evening still has a wheel to follow. When you'd rather ride with real people, the guide to &lt;a href=&quot;https://tourdupain.app/group-rides&quot;&gt;riding with friends and your club&lt;/a&gt; shows how. All of it runs in a browser tab; see &lt;a href=&quot;https://tourdupain.app/browser-cycling-game&quot;&gt;a cycling game in your browser&lt;/a&gt;.&lt;/p&gt;
&lt;div class=&quot;cta&quot;&gt;&lt;a class=&quot;btn btn-go&quot; href=&quot;https://tourdupain.app/&quot;&gt;Open Tour du Pain&lt;/a&gt;&lt;a class=&quot;btn&quot; href=&quot;https://tourdupain.app/demo&quot;&gt;Try the demo, no trainer needed&lt;/a&gt;&lt;/div&gt;</content>
  </entry>
</feed>
