GitHub broke my 1,000 day streak

GitHub commit graph

For 980 days in a row, I diligently committed code to my GitHub repositories. Through busy work weeks, holidays, and major life events, I kept my streak alive, a glowing green reminder of my dedication to the craft. Then, on May 19th, 2023, GitHub quietly removed the streak counter, and my hard-earned status disappeared overnight.

As it turns out, I wasn‘t alone. Over 430,000 developers had a streak of 100 days or more, with the longest streak clocking in at a staggering 7,936 days. For many of us, the streak had become a badge of honor, a testament to our grit and love for coding. Its sudden removal felt like the end of an era.

In this post, I want to share my personal journey with the GitHub streak, from its accidental beginnings to the lessons I learned along the way. I‘ll reflect on the power and pitfalls of gamifying productivity, and imagine what healthier forms of motivation could look like for developers in the post-streak era.

The rise of the streak

My streak began unceremoniously on September 15, 2013. I had just returned from my honeymoon and incorporated my software company, Thinkmill. Fueled by newlywed bliss and entrepreneurial energy, I was excited to pour myself into my work, especially my fledgling open source JavaScript CMS, KeystoneJS.

At first, I committed code every day without consciously trying to maintain a streak. I was just thrilled to be building in public after years of private development. As GitHub‘s contribution graph slowly turned green, I started to notice the unbroken chain of squares. Could I keep this up for a week? A month?

Somewhere around the two week mark, I decided to make the streak an official goal. I intuitively understood the power of friction-less habits to drive progress. If I could make daily coding my default, no matter how small the commit, the compounding benefits would be immense.

Of course, making a secret pact with myself was one thing. If this was going to be a long-term endeavor, I would need buy-in from my loved ones. I sheepishly told my wife about my plan, half-expecting her to laugh at my naivete. Instead, she wholehearted supported the idea. She understood how important coding was to me and encouraged me chase my ambitions.

Over the next few months, "have you done your streak?" became a common refrain in our house, always delivered with a smile. Her support, along with the accountability of the public counter, made it easier to stay the course even when life got hectic.

Streaks, skills, and serendipity

As the streak became a settled habit, I started to notice the positive spillover effects in my work. On days when I didn‘t have large blocks of coding time, I would default to clearing out my growing backlog of GitHub issues and PRs. An extra 30 minutes before bed might result in fixing a couple small bugs or merging a thoughtful contribution.

Over time, this compounding trickle of attention transformed KeystoneJS from a scrappy solo project into a thriving community resource. I became a more responsive maintainer, building trust with users and contributors. Features that might have languished for weeks got shipped incrementally. The project steadily grew in capability and popularity.

Beyond the tactical benefits to my open source work, the streak was also quietly shaping me into a better programmer. Through daily practice, I was honing my craft, learning new languages and techniques, and developing my problem-solving muscles. Robert Greene, in his book Mastery, emphasizes the necessity of this immersive approach:

"The essence of mastery is practice, hard work, and repetition. There are no shortcuts or substitutes. You must put in the hours and discipline yourself along the way. Only in this way can you gain the requisite skill level and insight to rise to the highest levels." (Greene, Mastery, p. 227)

The streak made this practice automatic, a non-negotiable part of my day. It shifted my identity from someone who occasionally coded to someone who coded every day, no matter what.

Perhaps most delightfully, the streak also created serendipitous opportunities for connection and growth within the developer community. As my contributions and profile grew, I had the chance to collaborate with programmers from around the world who shared my interests.

Some of my closest partnerships, like with Camille Reynders, a talented Belgian developer, began through working together on KeystoneJS. We met in person for the first time in Paris, drinking Belgian beer and debating abstractions, a friendship forged through commits and code reviews. The streak gave us a shared language and pursuit.

As I became more involved in the wider ecosystem, especially the React community, my network effect compounded. I had the privilege of learning from brilliant developers at conferences, working on impactful libraries, and helping shape the trajectory of a rapidly evolving field.

The streak began as a personal challenge but evolved into a way of practicing the craft alongside a vibrant, global community. Relationships deepened on digital forges took on new life when meeting at conferences or meetups. The internet had always promised a more connected world, but it was through the crucible of consistent contribution that I felt its true potential.

The shadow side of streaks

Despite the many benefits I experienced from maintaining my streak, I don‘t want to paint an overly rosy picture. The streak could be a fickle master, and I witnessed its shadow side in myself and other developers.

Committing code every day without fail necessitates a degree of inflexibility and obsession. A family emergency, a vacation in the woods, a mental health day—the streak demanded its sacrifice regardless of circumstance. While I was lucky to have the support and circumstances to maintain it sustainably, I saw how it could easily become a toxic force, especially for those earlier in their careers.

The streak also had a warping effect on my motivations and priorities at times. Its presence in the back of my mind made it harder to be fully present with my family or friends, as I was always watching the clock for a chance to sneak in a commit. It incentivized quantity over quality, motion over meaning. Not every green square represented my best work.

Even as an open source maintainer, the streak had its downsides. The pressure to close out PRs and issues quickly sometimes led to hasty reviews or merges. I felt perpetually behind, guilty for not giving each contribution the time and attention it deserved. The expectations of the streak clashed with the realities of good software development practices.

Most perniciously, the streak could reinforce unhealthy narratives about productivity and self-worth in an industry already prone to burnout. In Sustainable Web Development, Tom Greenwood writes:

"The tech industry is obsessed with productivity, often at the expense of health and happiness. We celebrate long hours, minimal sleep, and ‘crushing it‘ above all else. But this mindset is not only unsustainable—it‘s actively harmful." (Greenwood, Sustainable Web Development, p. 42)

When a simple metric like the streak becomes a proxy for dedication and skill, it can exacerbate these tendencies. It‘s all too easy to conflate self-esteem with lines of code written or PRs merged.

I was lucky that the streak mostly manifested as a positive force in my life and work, but I recognize that my experience isn‘t universal. For many developers, it represented an anxiety-inducing burden, another invisible scorecard in an already hypercompetitive field. Its removal was a relief as much as a loss.

An ambivalent farewell

So when I awoke on May 19th to see my familiar green grid wiped clean, replaced by a message about ‘focusing on healthy contribution habits‘, I experienced a mix of emotions. On one level, I understood GitHub‘s rationale. If the streak was causing real harm to developers‘ well-being and didn‘t align with the company‘s values, it made sense to retire it.

But I couldn‘t help but feel a twinge of sadness and frustration. The streak had been a positive force for me personally, a catalyst for growth and contribution. Its unceremonious removal, without any way to memorialize or celebrate the accomplishment, felt anticlimactic and paternalistic. Couldn‘t there have been a way to sunset it more gradually or make it opt-in?

Part of me also wondered if this was an overcorrection, throwing the baby out with the bathwater. Sure, the streak could be problematic if taken to extremes, but it also inspired many developers (myself included) to form lasting habits and contribute to open source. In a world of infinite digital distractions and competing priorities, there‘s value in tools that keep us accountable to our craft.

Ultimately though, I realized my attachment to the streak said more about me than the feature itself. It had become a crutch, an extrinsic motivator for work that I ostensibly loved for its own sake. If I needed the validation of a green square to keep showing up to the text editor, was I really in it for the right reasons?

The streak had jump-started my consistency and helped me integrate coding into my life in a sustainable way. But after nearly a thousand days, those habits were fully ingrained. I no longer needed the training wheels. The real achievement wasn‘t the number, but the skill, satisfaction, and relationships I had developed along the way—and those didn‘t disappear when the counter reset.

Still, I couldn‘t help but wonder: without the streak, what would motivate the next generation of developers to form a daily coding habit? Was there a way to incentivize consistency and contribution without veering into unhealthy territory?

Reimagining a post-streak world

In the weeks since the streak‘s demise, I‘ve seen many ideas proposed for alternative systems. Some developers have advocated for a focus on weekly or monthly goals rather than daily metrics to allow for more flexibility. Others have suggested emphasizing ‘milestones‘ like a first open source contribution or shipping a long-term project.

Personally, I‘d love to see more celebration of quality over quantity. What if GitHub highlighted thoughtful code reviews, helpful comments, or well-documented repos rather than just raw commit counts? Or showcased testimonials from developers about how a particular contribution or project made a difference in their work?

We could also do more to support healthy habits and sustainability in the broader developer ecosystem. Imagine if companies sponsored ‘maintainer wellness‘ programs or if conferences had dedicated tracks on avoiding burnout and finding work-life harmony. We need to shift the culture from glorifying overwork to valuing balance and long-term well-being.

At the end of the day though, no external system can replace intrinsic motivation. The most meaningful rewards of coding—the joy of problem-solving, the satisfaction of crafting elegant solutions, the thrill of building something that improves people‘s lives—these are the real reasons to show up day after day.

When I reflect on my own streak journey, I‘m grateful for the structure and accountability it provided early on. But I‘m even more grateful that it helped me fall in love with the daily practice of coding, a love that endures regardless of any virtual trophies.

My streak may be gone, but my commitment to the craft remains. I‘ll keep showing up not to light up squares on a screen, but to light up my mind and make my small dent in the software universe. And I invite you to join me, streaking or not, in the endlessly fascinating work of shaping our world, one line of code at a time.

Similar Posts