About ZwiftBikes
What this project is, where its numbers come from, and what it does with your data.
Tell it your weight, height and power, and ZwiftBikes ranks every frame and wheelset in the game by predicted finish time for the exact route you're about to ride – not by a one-size-fits-all "best bike" list.
It's a small hobby project from one cyclist and Zwifter, built in spare evenings out of pre-race indecision about which frame and wheels to bring to the start line – and shared with fellow riders in the same generous spirit as the community data it's built on.
Where the numbers come from
Frame and wheel ratings use real ZwiftInsider bot speed-test data wherever it exists. Where it doesn't, the app falls back to a clearly labelled estimate, so a guess never passes for a fact:
- Bot-tested – real ZwiftInsider speed-test data.
- Estimate – a labelled fallback where no test exists.
Route surface and elevation come from each route's real GPS trace where available, and a heuristic estimate otherwise. The full method is written up in How the physics works.
Built on
Nothing here would exist without work the community shares freely:
- ZwiftInsider - bot speed-test results for frames and wheels, plus Zwift's rolling-resistance values per surface. Their painstaking, publicly shared testing is what makes these numbers possible at all.
- zwift-data - the catalog of every route, frame, wheel and segment in the game.
- zwiftmap - hand-mapped surface polygons for each Zwift world, used to work out where a route turns to gravel or cobbles.
- Strava - the real GPS and elevation trace of each route, fetched once when the route data is generated. No Strava account or connection is needed to use this site.
- WTRL - the Zwift Racing League schedules behind the race calendar, typed in by hand from their published rounds together with Zwift's own event announcements. Every race links back to where its details came from.
Your data
No accounts, no analytics, no tracking, no database, and no cookies of our own. Your garage and rider profile are saved only in your own browser's local storage.
Your weight, height and power are sent to the server with each recommendation request purely to compute that answer – never logged, never shared, never used for anything else. Computed answers may be cached briefly at the network edge to keep the site fast; the cache holds the question and its answer, never who asked.
One cookie can still appear: cf_clearance, set by Cloudflare, the network this site runs on. When Cloudflare's protection asks your browser to prove it isn't a bot, this cookie remembers that you passed, so you aren't re-checked on every click. It exists purely to keep the site online under attack – it doesn't identify you, isn't used for tracking, can't be turned off, and expires on its own.
Reporting an issue
The Report an issue form fills in the report for you, then opens it as either a GitHub issue or an email – you read it over and send it yourself. Your rider profile is left out unless you tick the box to include it.
GitHub is the public site where this project's code and bug list live, so anything posted there can be read by anyone. Email goes privately to the people who maintain the site. If we turn your emailed report into a GitHub issue, your email address never goes in it. Your name only shows up there if you ask to be credited.
Getting in touch
A question, a suggestion, or anything that isn't a bug? The report form above reaches us too, whatever you want to say.
An unofficial fan project, not affiliated with or endorsed by Zwift. Zwift is a trademark of Zwift, Inc. The code is MIT-licensed and open source on GitHub.