How GitHub became the largest source code host?

Srishti Chaudhary
9 min readApr 20, 2022

--

I have been using GitHub for more than 5 years now. When I started using GitHub it felt like the product had been around forever. There were so many people around me who were using GitHub. So, I assumed a product this popular must have been around for a while. But to my surprise at the time the platform was not even a decade old. I know tech products grow fast but how a product designed primarily for software development accumulated a user base of more than 70 million presents for an interesting case and certainly an interesting read. So in this article let me give you a little context as to how GitHub became the largest source code host.

At its inception there was a lot of speculation about what GitHub was? What it intended to do and did it even offer any value? Today it is the “the” website for code sharing and publishing. Some also call it the “social networking site for programmers”.

Photo by Mohammad Rahmani on Unsplash

A little backstory of Git

As the name suggests, at the core of GitHub is Git, a version control system created by Linux creator Linus Torvalds. Hiten Shah at Nira explains version control best,

Version control is crucial to the concept of collaborative programming. Version control systems track changes to computer files over time. Similar to the “snapshots” that computer backup systems use as restore points, version control systems allow programmers to work on the same project without stepping on each other’s changes by tracking each version of a project by “forking” or separating versions of that project into distinct “branches.” Once changes have been made to a branch, they can be uploaded back to and merged with the original project, in a process known as a “commit.” This system allows programmers to work independently on their own branches before merging their files back to the main project, which is known as a repository.

Prior to Git, programmers were using CVS and Subversion. But these version control systems allowed the users to only make changes to the “central” repository of all the files in the project rather than their “local copy”. This also meant that you had to get permission from a project administrator to gain access to the central repository and so it may happen that you were waiting for approval longer than you were writing code. With the advent of Git there was no need for coders to wait for access from gatekeepers so they(coders) could spend more time doing what they loved — writing code. Git opened the doors to easier and faster collaborative programming. As Nara calls it,

Git was a crucial first step in the ultimate democratization of coding, particularly in the open-source community.

Why was GitHub needed?

Despite its revolutionary offerings, Git needed improvements. Git lacked collaborative tools that made sharing code between programmers clunky. Moreover, Git is a command line tool which works great for power users who are well versed in writing bash scripts and regular expressions but for others Git lacked the user experience that comes from a graphical interface.

Tom Preston-Werner and Chris Wanstrath saw an opportunity officially began working on the first version of GitHub on October 1, 2007. At 10:24 p.m. PST on Friday, October 19, 2007. Preston-Werner’s vision wanted to create a platform to host code libraries and help programmers work on projects collaboratively and learn more about Git. It would be, in Preston-Werner’s words, a “Git hub.” When they started their work on GitHub it was not to build a business around it but to copy code branches and collaborate on programming projects more efficiently. But soon they realized that everysoftware developer, regardless of programming language or operating system or job role, experienced these major problems. This represented an immense potential market for their future product.

“For the next three months, Chris and I spent ridiculous hours planning and coding GitHub. I kept going with Grit and designed the UI. Chris built out the Rails app. We met in person every Saturday to make design decisions and try to figure out what the hell our pricing plan would look like.” — Tom Preston-Werner

The flagship functionality of GitHub is “forking” — copying a repository from one user’s account to another. This enables you to take a project that you don’t have write access to and modify it under your own account. If you make changes you’d like to share, you can send a notification called a “pull request” to the original owner. That user can then, with a click of a button, merge the changes found in your repo with the original repo. These three features — fork, pull request and merge — are what make GitHub so powerful. Other features include access control and several collaboration features, such as a wikis and basic task management tools for every project.

How GitHub became an integral part of development?

GitHub has forever changed how people write and share code, and is now an essential platform for every developer. — Bhavana Thudi for DevRev

GitHub has greatly simplified the process of contributing to an open source projects. You no longer need to manually download the project’s source code, make changes locally, create a list of changes called “patch”, email the patch to the maintainer of the project, and then wait for the maintainer to evaluate the patch and decide whether to merge it or not. On GitHub you just have to fork the project, make your changes locally and send a pull request. Even for the project’s maintainer, it’s easier to see your work through the past contributions you have made on other projects. GitHub made the process of version control and code reviews so easy. These in turn contributed to enhancing the developer’s code quality.

It’s like a resume that helps the maintainer determine your reputation. The more people and projects on GitHub, the better idea picture a project maintainer can get of potential contributors. Patches can also be publicly discussed. — Klint Finley for TechCrunch

Lowering the barrier to entry democratizes open source development, and helps young projects grow. “Node.js wouldn’t be what it is today without GitHub,” said npm creator and former Node.js project’s maintainer Isaac Schlueter.

Besides its public facing open source repositories, GitHub also sells private repositories and on-premise instances of its software for enterprises. GitHub.com began offering limited private repositories at no cost in January 2019 (limited to three contributors per project). Previously, only public repositories were free. On April 14, 2020, GitHub made “all of the core GitHub features” free for everyone, including “private repositories with unlimited collaborators.”

Rapid Growth

One of the single most important factors in GitHub’s growth is the simplicity and elegance of its business model. If you want to host your code publicly, GitHub is free to use, forever. If you want to work on private repositories or proprietary code, you pay. The two use cases are completely different, which eliminates the risk of GitHub cannibalizing its audience with a freemium product.

As straightforward and logical as GitHub’s business model is, it was the only possible way GitHub could have effectively commercialized open-source software development the way it did. If GitHub had attempted to monetize all repositories from the outset, GitHub probably never would have become so beloved by the open-source community. Without this grassroots support, the company would not have survived.

Another reason for the exponential rise in GitHub’s popularity was the unique problem it was solving. Undoubtedly, it experienced the first mover advantage. It was not like there were other Git-based collaboration platforms/tools. There was an urgent need for a product like GitHub. Programmers could see how easy GitHub made their lives and they became proponents of the product. Between February 2009 and July 2009, the number of public repositories hosted on GitHub grew from 46,000 to more than 90,000. What’s amazing is that this growth was just by word-of-mouth among the software development community.

But in my opinion the factor that makes GitHub stand out, is its social aspect. GitHub gave programmers a platform to host their code publicly to show potential employers all the projects they are working on and become a part of the larger software development community. Even while I was applying for software jobs during my undergrad most employers asked for the link to my GitHub profile. So I am assuming it also helps recruiters identify prospective hires and see the projects they have been working on.

In the years that followed, it was clear that GitHub was the next big thing in tech. GitHub saw incredible growth, from being the host for millions of repositories, to drawing massive investments. But the most remarkable development came in June 2018, when Microsoft acquired GitHub for $7.5B. While there was outrage over the acquisition, mainly from users who felt betrayed as GitHub joined hands with Microsoft, GitHub’s has retained most of its user base. Whether Microsoft’s acquisition of GitHub was a smart purchase is a conversation for another day. (If you interested to see the timeline of how GitHub grew, you can find it here.)

Lessons We Can Take from GitHub

  1. Solve a big, painful problem in an easy way

GitHub chose a problem that was faced by most if not all software developers. This created a big user base for GitHub. GitHub’s mission is to “help every developer — regardless of experience level — learn, code, and ship software effectively.” They were trying to fundamentally reshape software development as we know it. Although this would seem like a big challenge to to take on, the company knew that if they were able to achieve this, they would basically make GitHub an integral part of software development. More than a decade later we can see that GitHub has been the industry standard in collaborative software development.

  1. Do it right and do it first

GitHub identified a big problem and was the first to offer a solution for it. It wasn’t as if there were other Git-based collaboration tools out there. As Shah writes, “GitHub as a product was already incredibly sticky, purely by virtue of the problems it solved. GitHub had effectively created its own market by building a new service on top of an emerging, difficult-to-use technology.

  1. Let your users be your proponents

GitHub grew its user base mostly through word of mouth. The programmers who adopted GitHub early on were so impressed by the features and ease GitHub provides that they became the proponents of the platform. Another thing, I feel helped GitHub grow was the sense of community it provided for software developers. By building a SaaS service around Git, an open-source project, GitHub was able to deliver value to and monetize that open-source ecosystem. Git allowed programmers to effortlessly collaborate on open-source projects but it was GitHub which helped coders find those open-source projects.

Possible Improvements

  1. Appeal to professionals beyond software developers

GitHub has primarily targeted software developers. I believe it is a product designed for the developer by a couple of developers who could very well understand and experience the problems in code sharing and collaborative development. However, it would be worthwhile to explore and experiment with features that appeal to other professionals as well, maybe a platform with the same functionalities but for documents.

  1. A more beginner friendly UI

While forking repositories and merging branches may be easy to understand for people adept at software development, beginners find it hard to visualize. My sister just started working on her first open source project and she had to consult 5 tutorials before she could understand how branches are “checked-out” and pull requests are “merged”. In my opinion, a more intuitive and user-friendly UI would help beginners get on board with GitHub faster.

Git, Set, Go

GitHub has achieved massive success in the last decade for creating an innovative, sticky, and popular product. It has made it easier for people to collaborate and share code. However, the success they have amassed can only be retained with continuous improvements. It will be interesting to see how GitHub competes with platforms like GitLab and Bitbucket.

Now, as it relates to the human — the rise of the developer is real. The future will bring developers closer to the pace and empathy of the front office, as Bhavana Thudi writes here. DevRev is headed in this direction, empowering developers to not only write software using awesome tools like GitHub, but also engage with customers directly and become entrepreneurs. This is a future I’d like to see.

--

--

Srishti Chaudhary
Srishti Chaudhary

Written by Srishti Chaudhary

I build software products and love ‘all things tech’. Join me as I learn and grow as a technologist and human.

No responses yet