
Show HN: I'm building a webapp for serious cyclists - davidjohnstone
http://www.cyclinganalytics.com/
======
ken
This is neat, especially because I just started riding again this week after a
few years away from it!

The analytics look good, and I wish I had them for running, too. I'm not sure
how different those would be.

My one comment about the site now is that for someone like me who has only
ever ridden for fun (or a commute), it could benefit a lot from having some
basic information about the electronic gear. Reviews, or a couple suggested
models, or even just a link to a good website.

For example, I didn't even know that bicycle power meters existed before just
now. It took a few minutes of googling to discover that they cost around
$1000.

I knew about bike computers, but I don't know much about them, except all my
friends seem to have Garmin computers, and they all seem to hate them
(reliability and user interface). So I'd be interested to read about what
other options there are.

It doesn't need to be encyclopedic -- just a few hints to get me started.
Apple used to show 3 columns: Good, Better, Best. I thought that was a good
way to summarize what the differences were, and what they cost.

~~~
davidjohnstone
Thankyou! Running is something I don't know much about, but there isn't the
same depth of analysis available as runners don't have power meters. I believe
there are some tools out there for running that do more than just show runs on
a map, but I couldn't point you to any offhand.

You're not the only person to suggest providing information about how to get
set up with equipment would be a good idea, so I'm thinking about doing
something about that soon.

Garmin dominate the market at the moment. The other main option is SRM head
units, which are popular in the pro peloton, but cost around $800 and don't
have a GPS. It's possible to use a smartphone if you have an ANT+ (the
Bluetooth-like wireless protocol that most power meters use) dongle, but I
haven't heard of any cyclists out there doing that (I'm sure there are some
though). Specialized are coming out with an ANT+ bike computer next year, and
there are probably some other options. To be honest, although there were some
problems a couple of years ago with the Garmin Edge 500 (which I have), I
quite happy with my device with the more recent firmware updates.

------
larrymyers
Some thoughts (coming from someone who has a triathlon in 3 days):

1\. Great UI. The Garmin Connect team should take note.

2\. Consider generating best fit curves for the graph data, it's hard to get
an idea of how fast you're going over time, especially when you ride in the
city and traffic and stop lights cause much of the spikey data.

3\. I know the focus is power here, but it would be nice to get the Y-axis
units to change when all that is displays is HR or Speed.

4\. If you work in running and swimming I will throw money at you.

~~~
davidjohnstone
Great thoughts.

1\. Thankyou.

2\. Adding optional data smoothing for the graph data is something I'd like to
do soon.

3\. The y-axis scales for power, speed and HR are independent, so it should
work fine when there's no power data. Does it not work as well as I thought?

4\. Unfortunately I'm not about to support other activities because I know
very little about them, and at least while this is a one-man project, it pays
to stay focussed. Hopefully someday...

------
FreshCode
Well done. Some feedback: \- People don't scroll. It wasn't obvious to me that
there was more info below the fold. \- You need a strong call-to-action on the
front page. \- Put this demo ride link above the fold, because showing the
product is great: <http://www.cyclinganalytics.com/ride/897403933578> \- Sell
benefits, not features and lead with that. How does our app make me a better
cyclist? \- Consider showing a photo of a successful cyclist on the landing
page.

~~~
wtvanhest
I don't always scroll, but because the images were cut off on the bottom of
the page it was obvious to me that I needed to scroll. It may be a difference
in configuration?

People who are in to cycling don't need to know benefits, they know that
logging this data is important to them. They are looking for a way to do it.

My critism is different. Once I signed up I didn't really understand how to
use it. Maybe it is my lack of experience with cycling apps?

~~~
davidjohnstone
Thankyou for both of your thoughts. I greatly appreciate this feedback.

I'm targeting a niche market with this, but I'm not quite sure about the level
that I should be talking to them. On one hand, it's easy to assume they know a
fair bit about the data that the power meter they spent a couple of thousand
dollars on produces, so I don't need to explain what everything is. On the
other hand, that's probably a dangerous assumption that often isn't true, so
the more explanation I give, the better. I'll make the front page better in
time, but I'm not entirely sure how to strike the right balance.

What part of using it after signing up are you having difficulty with? Have
you uploaded any rides? Email me at david@cyclinganalytics.com if you like.

~~~
wtvanhest
I'm at a stage where I am looking to add some measuring gear and upload rides
to a system.

I recently upgraded from a bike that I maxed its potential (older, rebuilt
road bike) to a new bike where I am nowhere near its potential and I'm looking
to improve my training to get to the next level.

I registered, clicked around, but didn't know what to do. For those that have
a garmin and experience entering data in an online system, it is probably
easy. For me, I was left wondering what I needed to do to get started.

That is just my personal experience which may not be worth addressing until
you get more scale. If you think your platform can take share from other data
platforms fast, you don't need me yet (or customers like me).

If you think you need to grab advancing cyclists not yet measuring themselves,
my comment is worth considering. If you are in need of advancing your platform
through new users, my recommendation would be to add a link to 3 levels of
equipment you recommend. Base (to get started, as low price as possible). 2nd
Tier (something that give both a trip computer and power measuring device),
3rd (some advanced tier)

(This also may be a terrible suggestion since I don’t know enough about the
equipment, like whether every bike needs different stuff etc.)

*Remember, the person paying $2,000 for a bike and $80/year for a service like this has disposable income, but maybe not disposable time so it may be worth making it really fast to get set up, including equipment.

~~~
davidjohnstone
Yes, what I have at the moment isn't very suited to people completely new to
the field. The basic workflow is: plug your Garmin device into your computer,
go to your user page (mine is <http://www.cyclinganalytics.com/user/1000000>),
click the "Upload new rides" button, navigate to the Garmin device and find
some ride files (probably stored in the "Activities" directory) and click
okay.

Providing more information about how to get started with equipment and my site
is a good idea and I'll look at doing something about that. Users having
disposable income but not disposable time is a great point.

~~~
wtvanhest
I'm not sure that you should explain how to do it, or even worry about my
post. I may be a really limited number of potential users and you might have a
much better way to spend your time.

If it were me, I'd focus on taking share to get a good number of users first,
then worry about growing the market.

------
citricsquid
The existence of this might finally push me to purchasing a bicycle. Regarding
the need for a bike computer and power meter would it be possible to include a
few recommendations or suggestions, for people that have no idea about any of
this? Might generate some Amazon affiliate revenue too.

~~~
davidjohnstone
Absolutely, I would love for this to explain and suggest things rather than
just show numbers (but it's a lot trickier).

The book to read to understand what is being shown at the moment is called
"Training and Racing with a Power Meter".

------
rodolphoarruda
One of the most critical information for "serious" cyclists is on
rest/recovery intervals. None of the existing online tools have this, so
people like me have to work on it offline and manually in a spreadsheet[1]. If
someone could find a way to combine the effort of each training in the same
chart, that would be awesome because it'd make recovery much more manageable.

[1] <http://rodolphoarruda.pro.br/d/panel.jpg>

~~~
marklabedz
Absolutely agree. Going hard all spring and summer is easy, but peaking for
certain events (possibly multiple events) makes the scheduling of a training
plan much more difficult.

~~~
davidjohnstone
The training load table[1] is designed to help with that. It doesn't yet let
you put in numbers for future dates to help with planning, but I do plan on
doing that.

1\. <http://www.cyclinganalytics.com/user/1000000/training-load>

------
FigBug
Looks good. I uploaded a few rides. It would be nice if you could auto imports
rides from Strava. Not sure if they'd be cool with that.

I bulk uploaded 23 rides, there was no clear indication when the upload was
done and when I could navigate away from the page. I assumed it would continue
processing rides in the background, but I guess not since I got an error and
had to reupload my rides.

Some rider are showing 0 distance, like:
<http://www.cyclinganalytics.com/ride/454237476011>
<http://www.cyclinganalytics.com/ride/559913689347>

The option for mph and lbs is a good idea if going after us market.

I see in privacy I can hide my house, but can I make my uploaded rides
private? Privacy isn't clear.

Browser plugin for uploading would be nice.

Looks good, I'll keep an eye on it.

~~~
davidjohnstone
Thankyou for this feedback. I'll look into importing rides from Strava, so
we'll see what happens with that.

It displays the little map and basic data for the rides when they're finished
uploading, although now that you mention it, it's not obvious that you should
be waiting for that rather than waiting for the progress bar to reach the end.
And rides showing zero distance is something I haven't seen before. I'll look
into that.

Privacy controls is a work in progress. At the moment, nothing is visible to
anybody unless you give them a link to a ride, and then everything is visible
to them, which certainly isn't ideal. Better privacy controls is near the top
of my list of things to do.

I completely agree that a better way to upload rides is desirable. Are you
thinking about the Strava upload interface?

~~~
FigBug
The Strava upload interface is ok, but I find it slow. I think Garmin has a
web plugin you can access from JavaScript, not really sure, I've never looked
into it.

I've thought about writing a small app that runs in the background, and every
time a garmin is plugged in, it grabs the latest files and uploads them to
training peaks, strava, garmin connect etc.

~~~
davidjohnstone
Yes, there's the Garmin Communicator Plugin API, and I'm pretty sure Strava
uses this.

Having a small app running in the background that automatically uploads rides
is exactly what I want to do someday.

------
chocoheadfred
Interesting idea. How is Training load calculated? Some sort of algorithm that
takes into account upcoming race schedule, age, category, past riding
schedule?

And 'Pedal force vs. cadence', does this reveal where weak spots are in your
stroke? Also does it show you your optimal cadence, based on speed and
duration of ride. I think that would be great information to have.

Also, with strava I'd love to see when different sections are starting and
ending so I know exactly when to gas it and stop, perhaps even how I'm
progressing as I'm riding. This is pretty unrelated though to this app.

~~~
davidjohnstone
The training load is based on the exponentially weighted moving average of the
normalised work of rides, where the normalised work is a number that shows how
"hard" a ride is. A one hour time trial is worth 100, so if you do just that
every day for a long time, you'll end up with a long-term stress and short-
term stress of 100, and a stress balance of 0. There's a longer explanation
over on the blog: [http://www.cyclinganalytics.com/blog/2012/06/the-training-
lo...](http://www.cyclinganalytics.com/blog/2012/06/the-training-load-table-
is-now-a-chart)

This isn't able to show any weak spots in your stroke because this data is
only being recorded once every second. I think you need a Wattbike or similar
to show exactly what your pedal stroke looks like. I'm not sure how to work
out optimal cadence, but it sounds like something worth thinking about.

Are you talking about when you're using the Strava phone app? I haven't used
it, but I'd definitely be in favour of it showing when you're starting
segments and doing other smart stuff like that. I'm planning on doing a bit
more Strava integration with my site too, starting with getting the Strava
segments for a ride.

Thanks for your feedback!

~~~
chocoheadfred
I've used a computrainer before to capture this data, weak spots in pedaling.
Not sure how this technology works though.

Yes, Strava phone app. I don't have the fancy smancy garmins/power meters/etc.
Does it show though on a Garmin when you enter a segment if you are running
Strava?

~~~
davidjohnstone
It looks like Computrainers capture more data[1]. I'd love it if power meters
on bikes also captured this data.

Nah, us Garmin users don't even have an app on our devices, we just upload our
data to their website when we get home (just like it works with my site).

1\. <http://www.racermateinc.com/spinscan.asp>

------
malandrew
One feature I have wanted that would solve a frustration I have with Strava is
the ability to quickly "prune" a ride the same way you edit a video. When
riding I don't want to think about pausing the computer and other meters when
taking breaks. Instead I want to have the option to record everything and then
edit out the segments that I know were stops. The app could even autodetect
part you may want to prune by recognizing when your GPS coordinates remain
relatively static for extended periods or time.

~~~
guga31bb
> _One feature I have wanted that would solve a frustration I have with Strava
> is the ability to quickly "prune" a ride [...] The app could even autodetect
> part you may want to prune by recognizing when your GPS coordinates remain
> relatively static for extended periods or time._

Strava does do this. If you look at a ride, note the difference between
Elapsed Time and Time. Elapsed Time is the time you spent moving.

------
eblade
A few of my friends use Endomondo to track their cycling activity and get the
statistics, share routes. It works nice and basically you just need a
smartphone with GPS and a bike and you're ready to roll.

They're cycling hobbyist though but bike quite often.

------
freejack
There's definitely an opportunity to disrupt in this segment, although
focusing on power is going to substantially limit your market appeal. For
example, I'm a record holding cyclist and I've never trained power.

~~~
davidjohnstone
Yes, I'm aware focusing on power data limits my potential audience, but I
don't yet regret doing it. 1) There are enough power meter using cyclists
around to make this viable. 2) I'm not sure how to make this amazing for non-
power meter using cyclists. 3) Strava is fantastic for more casual cyclists
(not that that describes you). 4) I'm sure power meters will become cheaper
and more popular over time.

~~~
nswanberg
You know how you can make it amazing for power meter and non-power meter users
alike? Add a feature to help analyze tests. Help guide users to picking an
appropriate time interval and course, and help interpret the results, and save
those results to a profile.

And as power meters become cheaper and more popular, more people will be
looking for ways to interpret that data. Some will turn to Hunter and Coggan's
book or to a coach, but some will inevitably turn to sites such as yours for
guidance. You already seem to have started down that path, but the more you
can do to guide and educate inexperienced power meter users, the better you'll
do.

------
diasks2
Awesome site! I don't anything constructive to say except that this is exactly
the kind of site I have been dreaming of. Unfortunately I lost my power meter
on a ride about a year ago and haven't replaced it yet. If I do I will be sure
to make good use of your site. I'm especially impressed with the graphs. I saw
you mentioned you wrote the code yourself. Any plans to open source it?

~~~
davidjohnstone
Thanks! Open sourcing my graphs has definitely crossed my mind, but I need to
make the code a bit less ugly first.

~~~
nswanberg
Don't worry about the ugliness. If others find it useful you will find them
submitting patches that take the ugliness away. And you've got more important
things to worry about like adding new features and making the copy even
better.

------
Sujan
Looks nice!

Didn't know about power meters yet, interesting technology.

------
pestaa
I really love how monthly stats are aggregated:

<http://www.cyclinganalytics.com/user/1000000>

Great work!

------
cullenking
Hey David, looks good. Have you checked out our site, <http://ridewithgps.com>
? We've been around for a few years, are bootstrapped and profitable.
Interesting to see opinions that there is still plenty of room for disruption
in the market. It's always nice to get a new competitor, keeps everyone on
their toes ;)

~~~
davidjohnstone
I have seen your site before, but I would hesitate to say we're competitors
since you don't seem to offer much in the way of power analysis, and that's
pretty much what I'm doing :-)

~~~
cullenking
Hold your breath!

------
njx
Great Job! One question, do cyclists really understand these kind of
charts/graphs?

~~~
jbl
Some do, some don't. Most of the racers I know (people who actually train to
race and take competition at least a little seriously) would know what this
data is telling them or would know someone who could help them (a trainer or
coach).

------
carlsednaoui
Going to "power curve" shows "something went horribly wrong"

~~~
davidjohnstone
Oops, that's probably because there isn't any data to display, but it
definitely shouldn't be giving that error. I'll fix it soon. Sorry about that.

~~~
carlsednaoui
no worries at all, just wanted to give feedback :)

------
weboverflow
Is it completely free? or free only for limited beta?

~~~
davidjohnstone
It's only free for the beta. If I was in the US, I'd be using Stripe and be
charging for it already. However, I'm in Australia and I'm currently thinking
about the best way to do this.

~~~
yurifury
Braintree are doing an Australian beta right now. Contact them, they will
probably be able to hook you up.

------
irrationalidiom
awesome david! it's great to see this after hearing you talk passionately
about it at work almost 1 year ago :-)

are you using flask for this? we've got 2 things using it atm, and it's been
fantastic.

~~~
davidjohnstone
Thanks! Yes, it's using Flask, and it certainly is fantastic.

------
sbt
Great idea in general. I know a lot of people who would love this.

------
acoggan
Nice site! Be interesting to see how TP responds to it.

~~~
davidjohnstone
Thanks Andrew! I'm a huge fan of your work.

------
jodyalbritton
What are you using to generate your graphs?

~~~
davidjohnstone
Javascript and a HTML5 canvas — I've written all the graphing code myself. I
prefer to use stuff that other people have written, but I wanted flexibility,
and not all graphing libraries handle tens of thousands of points well (and
neither do SVGs).

~~~
mmcnickle
You mention SVG; I assume you tried d3.js. What issues did you find with it?

~~~
davidjohnstone
I haven't actually tried d3.js. I encountered significant speed issues when
using Raphael (even when panning a graph), and I assumed that was more of an
SVG problem than a Raphael problem. Maybe I shouldn't assume so much, but I
didn't think d3.js would be suited to showing graphs with multiple data sets
with potentially ten thousand points (or more, there's a data point for each
second, and it's not uncommon to be riding for more than three hours) each.

~~~
Zikes
See this[0] page for an example of a d3.js graph with ~600,000 total data
points.

[0] <http://hn.metamx.com/>

------
afx2in
looks great. can you add the ability to import direct from a strava or garmin
connect account?

~~~
davidjohnstone
Good idea. Garmin Connect doesn't yet have an API, so I don't think that is
possible. It's probably possible to do it with Strava, so I'll look into that.

------
bl4bl4bl4
Uh, strava.com?

~~~
davidjohnstone
I'm a big fan of Strava, but it's not very useful when it comes to doing stuff
with power data. Their premium accounts have some basic analytical tools, but
I can't imagine any power meter using cyclists using that as their primary
analytical app.

One of the first things I made my site do was upload rides to Strava, because
I was tired of having to upload my rides to multiple apps.

~~~
imaffett
This looks good. So many people are sick of WKO and Training Peaks.

Have you checked out Golden Cheetah? It's got most of what you have, plus it
can control computrainers, etc. It's a great cross platform desktop app, but
the UI needs some loving.

~~~
davidjohnstone
Thanks. I like Golden Cheetah, but I had a few itches I wanted to scratch...
Amongst other things, having it as a webapp lets me use this on all of my
computers.

~~~
alexfoo
Looks very nice (Golden Cheetah user with Garmin Edge 705 and PowerTap SL+
hub).

What about tools to help edit out unwanted sections of a recorded ride?

My type of riding, mainly long distance (Audax), means rides of 9 hours or
more (up to 116 hours) with various length stops for food and/or naps (for the
multi-day rides). It was a lot of faff with Golden Cheetah (or even editing
the .tcx files directly) to trim out sections where I'd stopped and
accidentally left the Garmin recording.

Some nice way of selecting a chunk of a ride (whilst either looking at a
zoomed in map or selecting a section in the speed/power/cadence/HR graph) and
then moving it to a new 'lap' (where it could be kept or deleted) would be
very useful.

~~~
davidjohnstone
Cropping rides is something I'll be adding soon, but I hadn't thought about
removing sections. Actually, at the moment, I'm essentially treating rides as
arrays of records at one second intervals, so having gaps in the middle
doesn't work. To be honest, I hadn't considered the use case where you have a
single ride file that legitimately spans multiple days. I'll think about this.

~~~
alexfoo
Thanks, that probably explains the behaviour I'd emailed you about. Niche use
case though, there aren't that many of us long distance loonies out there (The
Great Southern Randonee 1200km late October starts quite close to you:
<http://www.gsr1200.com.au/gsr1200/Home.html> ).

Let me know if you need some example large data files to test scalability.
I've got one .tcx file (with heart rate, cadence and power data) that's 41MB
(would have been 53MB if I hadn't had to reset the GPS part way through).

