This is the story of how I contributed to GitHub for 177 consecutive days, nearly half a year. I will talk of why I did it and why you should too, or at least why you should do something similar. This is a story about accepting challenges, making habits, and knowing when to stop. I learned a lot through this, and I hope to teach you all something. Let’s begin.
We can’t all fight habits as well as Calvin.
The 30-day GitHub challenge
It all started as a 30-day challenge. A good friend of mine Shuhao messaged me on the 21st of February, challenging me to contribute to GitHub every day for 30 consecutive days and he would do the same. At that time my longest streak on GitHub had been a measly 5 days. It was a lack-luster streak that I wanted to improve but just couldn’t find enough motivation. This opportunity to both challenge myself and challenge him was just what I needed to make it all happen. I accepted the challenge under a few simple conditions:
- Edits to README don’t count unless significant in nature.
- No scripting; you must personally make the contributions.
- No funny business editing commit times and such.
I started this streak off with a bang, contributing nearly 30 commits to my website and other various projects on the first day. This actually happened to be the most contributions in a single day that I made throughout the entire half-year streak. I was motivated to make it to 30 days and maybe even keep going until one of us declared defeat, so this was the best way to start.
A week into the challenge, difficulty started to set in. I was nearly forgetting to commit or otherwise contribute, waiting until the last possible moment to submit my daily contribution. Shuhao ended up dropping out of the challenge at 8 days. I think he just forgot, which I don’t blame him.
But I kept going…
Two to three weeks in it was easier to remember to commit, it was becoming more of a habit. Soon internal reminders to contribute were paired with the reminder to brush my teeth, something I rarely forget to do. Around the same time I picked up a book called The Power of Habit which educated me on habits and how to understand and change your habits for your benefit. I recommend you read this book if you have any interest in how your brain deals with habits. It’s quite fascinating, one story in the book spoke of a man who couldn’t remember how to navigate his own home and yet could go for daily walks around the block and not get lost, all thanks of the power of habits. But I digress. Before I knew it, the power of habit had brought me to…
Thirty days was exciting! I had made it! And all I wanted to do was keep going! After 30 days, it just became a way of life. Eat, sleep, commit. It became normal and I no longer found it difficult to include in my day-to-day rituals. But like any habit, it was hard to be 100% consistent, so there were definitely some close calls on busy days. I commited from my phone. I committed after getting home extra late from hanging with friends. I even commited in a state of Ballmer Peak. This reminds me of a few tricks I learned along the way regarding GitHub contributions:
GitHub contribution tricks
- GitHub runs on PST, which meant I could contribute anywhere from 12am — 3am local time (EST) and have it count for the previous day. When I got home extra late a few nights, this trick had my back.
- Filing an issue on any repo counts as a contribution. This saved me a few times I was short on code ideas.
- Commits are separate from pushes. Commit now and push later and it will still count for whenever you commited.
- Initial commits from newly created repos don’t count. But the second commit on that repo will make both commits count. This one is weird.
- Pull requests count for 1 contribution when you make them and another contribution if they are merged. If they don’t get merged, sorry, no second contribution.
Though these tricks admittedly saved my ass when it came to my GitHub streak, I was keeping within the simple conditions originally outlined above. You can see more tips from GitHub here.
One hundred days was a big moment for me as well. At this point I was in San Francisco, interning at Mozilla. You can read all about that experience on my blog. The great thing about working at Mozilla is that everything is open source, so I more or less could just work and keep my streak going. It wasn’t as easy as that, but being at Mozilla really helped.
Mozilla had their fair share of internal competition as well, including Shuhao who joined me in interning there this summer and was back at his streak, this time with much more success, as well a silent competitor I never knew personally but whom I heard about through the Mozilla grapevine.
There reached a point where my motivation to keep the streak going took a nose-dive. I attribute this to a lack of ideas, a drive for a fresh challenge, and the realization of the inevitability that my streak would eventually end. All this combined with the fact was that there was just too many ways to “cheat” the system, like this guy did, and thus the challenge started to turn into a chore.
I wanted to escape. I wanted time to refresh and forget about GitHub for just a little bit. I just wanted to be free to think about new ideas and not worry about making that commit just for the sake of it. I decided to end the streak on a nice round number. I decided to continue until 200 days were reached and then I would graciously sit back and watch the streak come crumbling down.
200 days didn’t come. I forgot to commit on day #178, and with this tragic realization a sudden weight was lifted off me and I felt simultaneously relieved. It was all finally over.
My 177-day streak taught me a lot about habits. It taught me how good habits can turn evil when excessively executed. It taught me a lot about the power of “don’t break the chain”, the motivational technique behind successful GitHub streaks. I still commit to GitHub on a regular basis but now I make less required and more desired contributions. I take regular days away from the computer to refresh my ideas and come back stronger than when I left. I recommend everyone try to break a habit or start a habit using this technique, but it can be really powerful so much as to be draining so watch out!
If you know of anyone with a longer GitHub streak than me, please let me know! I haven’t found anyone yet! ;)