Open source projects need contributors to stay healthy and develop. In this post, I want to discuss the methods I’ve tried (so far) to attract contributors to my open source project (ConTabs). I’ll describe what I’ve done, summarise what little data I have, and reflect on what it might tell us about open source contributors. And, in the middle of all that, I’ll indulge in a quick digression on the subject of project hygiene.
ConTabs is just over three months old. In that time, 4 brave souls have joined me by contributing code. But how did they find ConTabs? And why did they decide to contribute? To start to answer this, let’s look at where I’ve publicised the project.
Things I’ve tried
The first thing to mention isn’t so much something I was doing to attract contributors per se, but with hindsight may have helped: this blog. I’ve been blogging about ConTabs for about three months now. Several of these posts have done pretty well on Reddit. I’ve not been explicitly asking readers to become contributors, but I suppose it will have raised the profile a little.
My first proper appeal for contributors was via up-for-grabs.net. Up-for-grabs.net is a directory of open source projects that have identified themselves as being friendly towards novice contributors. (In fact, my first open source pull request was for a project I found through up-for-grabs.net: hmol/LinkCrawler.) I tagged a few issues as “up-for-grabs” and then added ConTabs to the list in late November.
More recently, I noticed that Stack Overflow (where I spend a fair amount of time) are running their “Free Vote-Based Advertising for Open Source Advertising” again this year. Thinking “what the heck”, I grabbed a free logo design off the internet and threw together a quick advert. Unlike up-for-grabs.net, the feedback here was pretty immediate: ConTabs quickly got the required score of +6 votes and will now be shown in the sidebar of Stack Overflow.
Before getting into the data and seeing what worked and what didn’t, I want to take a moment to talk about something pretty unglamorous: project hygiene. What do I mean by this? Things that stop the project from developing a bad smell. These include the license, the contribution guidelines, and the code of conduct.
None of these makes the project more attractive – indeed, one hopes that they’ll never be needed – but they hopefully stop it becoming actively unattractive. They help ward off unpleasant behaviour and provide recourse if we were ever to experience some. I’m of the opinion that open source projects should be places where people work together and are generally nice to each other. In that vein, I see no harm in prophylactically committing these views to markdown. (Plus, GitHub makes it really easy to add a code of conduct to your project.)
Anyway, back to tonight’s main topic…
On the face of it, we can tell that something has worked at least: ConTabs has had 4 contributors besides me. There’s nothing to hint at what prompted them to join in, so I decided to start by simply asking. Using the email addresses associated with their commits, I asked each contributor a set of questions, which included “how did you hear about ConTabs?”
Three of them responded:
- One heard about ConTabs through a blog post I put on Reddit. (In fact, this user helped me overcome a tricky dependency issue.)
- Another came through up-for-grabs.net.
- The third apparently stumbled onto ConTabs whilst browsing GitHub.
It’s a very small(!) data set, but it’s already interesting. I wasn’t sure if people still used up-for-grabs.net, so it was nice to validate my decision to list ConTabs there. NB: I asked this question before posting the Stack Overflow ad, so it’s not surprising that it’s absent from the list.
In terms of a bigger data set, we could look at the traffic stats for the GitHub repository. These are (rather irritatingly) limited to the past 14 days, so here’s the current snapshot:
The “unique visitors” column is probably the most interesting here. It shows that the majority of visitors are coming from GitHub itself, up-for-grabs.net, and Google. Not my blog nor Reddit, although that might be related to the fact that I’ve not blogged within the 14-day window.
Finally, although not really related to contributing, a number I find really interesting is the download count on NuGet. It’s currently at a nice round 300, which pleases me greatly. I’d love to know a little bit about where ConTabs is being used and the people who have added it to their projects, but (alas) I don’t think I ever will.
What to make of it all
I’ve been surprised by how fascinated I am with the “people” bit of open source. What makes a person spend their free time working on a software project, without compensation, with people they’ve never met?
The fact that ConTabs contributors mostly seem to have sought out a project to work on speaks volumes. It’s not like they’ve been using ConTabs and decided to fix an annoyance or add a feature they need. Instead, it seems as though they have responded to an internal urge to create, to build. (For what it’s worth, this really resonates with me: I’m always making stuff to scratch the “making stuff” itch.)
I’m going to carry on asking ConTabs contributors about their journey and motivations. As well as finding it genuinely intriguing, I selfishly want to improve the way I publicise ConTabs as a project. Knowing where people are looking and what attracts them allows me to refine the way I put ConTabs out there.
At this point, I’d like to throw open the conversation… If you’ve contributed to an open source project, where did you discover it? What made you decide to open a pull request (or equivalent)? If you’ve never contributed to an open source project, what might persuade you?
Oh, and whilst you’re here: fancy contributing to ConTabs? 😉