If you have not heard about Cadeify yet, then you must first check it out. Its a GitHub discovery project to browse project with only one contributor.
Nearly a month back, I was looking at my GitHub profile. My contribution grid are mostly grey - How disappointing! Employers now a days starts asking for GitHub profile moreover being enthusiasm for Open Source Software, its my duty to contribute back to the #OSS community.
This is how it started...
So, I need to either create a new project and start coding or I find a project to collaborate. Ideas were floating to create some *awesome* products/service. Shared some of those with droidlabour. He reminded with a better truth - "How many projects did we dump in the midway!!!" But something need to be done.
So we decided to work on small projects, so that we can deliver and does not have to be complex in the first release. But confirming the idea to work on is not easy. So, I started looking for projects at GitHub. Most of the on-fame Open Source projects do maintain at GitHub along with their own version control. I simple made a search for php, by default it shows the most popular projects. For a newbie to Open Source development its not easy to work on a issue as their codebase has grown a lot along with complexity in years - there is no kickstart.
Forgotify showed up...
One day in my facebook feed, a HN post showed up something like - 20% of the songs on Spotify have never been played. Thus the idea was generated :)
"What kind of projects would be *easy* to commit?" - this was the question we started thinking. Less stared, less commit, most recent... more things followed. We latter decided to pick "sole contributor" to encourage people to collaborate. The idea was to randomly show GitHub projects with single contributor (i.e. the author itself).
So we need to code a crawler to check the status of each project. Thanks to GitHub api and personal access token, things were simple. The crawler simple made request to https://api.github.com/repositories with "since" parameter. Without authorization, the numbers of request is limited to 20 or 30 request per hour and with authrization its 5000 per hour. So @droidlabour and I both used our token. That gave us 2 request per second. Our program would initial check "fork" attribute so that we keep track of only the parent project. But, some people does not bother to fork and simple download and push his/her copy (solutuion with less computing to this will be appreciated). If the project is not forked, we grab its description, creator, languages, creation datetime and readme. We latter decided to not show readme and feels guilty for not storing last update datetime.
After a day, we reliazied that our crawler is too slow, so we asked some of our friend to give us their personal token with the promise that it will only be used for crawling - and we do keep our promises. As per December 2013 statistics GitHub host 10 million projects, alas we recently crossed 2 million till now. A better solution need to be developed.
As we crossed 100K single handed maintained, we spreed the word among our friend circles for feedbacks and suggestions to improve the service. Most of them asked for filter by language browsing - we will soon commit this, maybe by mid March (busy with personal stuffs). Other notable suggestion was "fork" button. I simple googled and found the one currently in the site. Didnt put much effort on such as we were eager to deliver and gather more feedbacks.
We expected some review from Hacker News but people didn't seem interested. Most of the traffic were due to Reddit on its announchment day. Approximately 3000 pageview with 6.13 pages / visit is not a great number but good enough to encourage us for further updates.
Ver 1.0 coming soon...
We are set to add more features in future not because people want, its because I need it. I guess its too early to determine success or failure of Cadeify. But we will certainly not leave it the way it is now.
Let us know your suggestions to improve Cadeify better. For the love of Open Source Software