Time is the key to Google Success

I've written a couple of open source applications that have achieved a modest level of success. Both iTunesExport and Java Email Server (JES) have had both staying power and regular level of interest.

I quantify 'modest success' with the following yardsticks:

Google Search
Both projects are the top ranks for intuitive search terms (OK, so their name helps):
'itunes export' and 'java email server'

I think the JES rank here is especially impressive considering the second result is the Apache project JAMES, which is also an open source Java email server.

Google PageRank
iTunes Export: 4/10
Java Email Server: 6/10

OK, so we're not talking about the slashdot.org homepage here (9/10 BTW), but still a pretty impressive showing.

Java Email Server: ~1000 downloads/month
iTunes Export: 4,500 downloads/august

You can tell from these links that JES is very stable while iTunesExport is still ramping up and has really taken off the last few months, in part thanks to a high profile post on LifeHacker.

At this point both projects are primarily driven by contributions from the community. In the case of iTunes Export, Jeff Donnici has stepped up and taken care of many new features and updates. Java Email Server has contributions from quite a few people, including a recent contribution from Matthew Lohbihler of Serotonin Software who submitted a contribution I still need to release.

The point of this post isn't to talk about the stats for these applications, but instead talk about why I think they have been (modestly) successful. I think it boils down to:
  • Niche
  • Free/Open Source
  • Treat your users well
  • Time
First, they both attack a specific niche that is large enough to support. In the case of JES, I purposely kept the application small and easy. If you want all the bells and whistles you can just use JAMES. If you want something you can get running in 15 minutes and can understand ALL the source code yourself, JES is for you.

iTunes Export does just one thing, allows you to use your iTunes playlists in other applications. iTunes is a great product, and even if only 5% of the people want this feature, there will still be a huge potential user base.

The fact that they are free, as in both beer and speech helps. For JES a lot of users have made key modifications to make it useful for their specific environment. Most of these changes were rolled back into the main release. For iTunesExport this has been true, although to a lesser degree, but the free as in beer aspect certainly is a big plus for both.

I respond to every user's email. My email address is posted on the website and I respond to all emails, even if my answer is 'I don't know'. In several cases, I've improved or patched an application within days of an email and put out a new release. I believe that this make users more loyal and more likely to post links to my applications elsewhere.

The real key though is time. iTunes Export is nearly 4 years old, and JES is over 6 years old. Over this length of time, many people have found them useful, and linked to them from various sites. Initially I got really excited when I came across a new site in my referrer log. Now, I subscribe to Google Alerts and see new links (especially to iTunes Export) on almost a daily basis.

I've never done any real extensive work to publicize them, although I think there were some key actions:

I registered both projects on freshmeat.net and updated the entries for each release.

I named the projects well. The names match well with what people would type into Google to find these solutions.

I kept the applications updated. Initially this was my own effort, but as the applications reached a critical mass, I just incorporated the contributions of the community.

If you want to write a (modestly) successful open source tool, there are a couple of things to do: Find a niche and own it. Name it appropriately. Make it free. Leverage free advertising. Be responsive. Keep with it.

If you find a niche and write a moderately useful application, as long as you stick with it and treat your users well, you'll be successful.