Lessons from my first open source project

Todotxt.net is my first real open source project. I’ve written and shared some dodgy PHP scripts in the past and thrown some code up on google code, but this is the first time I’ve engaged with the OSS community. And I’ve learnt a couple of things.

Open standards are better than open source

The thing that drew me to using Todo.txt in the first place was that at its heart is a plain text file that you can hack in whatever editior, on whichever platform, you choose. It turns out that that also makes it a very attractive thing to develop for.

No matter how open Gina’s source was, if I had to dick around with some proprietary storage format I wouldn’t have even looked at creating a Windows client for it. In fact, I didn’t look at any of the existing source code when writing todotxt.net – I just wrote to the standard.

Open source is awesome

I was pretty blown away when people started downloading my little app and even taking the time to report bugs. After all, it was at v0.1 and appropriately hacky and buggy. But then something awesome happened.

I woke up one morning and saw that someone had submitted a bug report. As I started to reply I noticed that I had a github pull request fixing the same bug. While I was sleeping, someone reported a bug in my app and someone else fixed it.

Inexpressibly awesome.

Have an upgrade mechanism in place. Always

At version 0.8 things were humming along nicely – a couple of dozen people had downloaded the app and a couple of people were contributing code. Then Gina blogged about it and Lifehacker picked it up. Suddenly I was getting 600 downloads a day.

The only problem was, v0.8 had the new intellisense functionality which turned out to be pretty buggy. I got a fix out quickly, but had no way to tell the 600 people who had already downloaded the buggy version. I’m sure more than a few people were put off by the random crashing and probably never looked back to see if there was an update.

A couple of point releases later I added in an upgrade notification. It’s terribly basic, but it works. In future projects I’m going to have update notifications in some from in before I release even an early alpha.

Git’s not scary, and github is awesome

I’d hackily played with Git a couple of times, thinking my Mercurial knowlege would let me wing it. It didn’t. Because I wanted to use github (it’s what all the cool kids are doing) I figured I should put some time into finding my way around the basics. To my releif and surprise, it’s not as forboding as it intially seems.

And github, well, you can see why it’s become the defacto OSS repository. The cool kids are using it becuase it’s frakking fantastic. It’s just so easy to share code, track changes, accept patches, manage issues. It’s really pretty special.

comments powered by Disqus