Reflection on GitHub's New Pricing Model

GitHub, the code hosting service provider, announced on 11st of May that all paid users, both organizations and individuals, now have unlimited private repos on GitHub.com. The new pricing plan is about charging on per-user basis, while the former was on a per-repo basis.

GitHub Pricing Plan

A Reaction to Counterparts?

This move is regarded, by some developers, as a reaction to GitLab’s recent upgrades on its SaaS services: GitLab Pages and free CI (Continuous Integration). GitLab, as a major competitor of GitHub providing free unlimited private repos since the very beginning, becomes more powerful with those recent upgrades. So it naturally becomes many individual developers’ first choice.

As founder of GitLab puts, “We think that repository hosting will be like email hosting. Most people will have an account for free with only forum support (similar to gmail and outlook.com).” Similar ambition was seen when Google turned email into a free service.

Another major player in code hosting industry, BitBucket, long supporter of free unlimited private repo service, also faces a possible loss of users to GitLab as. “I am considering moving from BitBucket to GitLab”, said one of our team members who was a BitBucket user for years, “I have been following the evolution of GitLab since its initial inception. It has acquired a lot of useful free features these years and a sleek UI. It was a copycat of GitHub but has gone beyond now”.

Viral News in the Technology Community

The GitHub news goes viral on HackerNews, the largest and most vibrant global technology forum. The original post gets 1576 points (similar to “Like” on Facebook) on HackerNews in 15 days. To make sense of the importance of this move to technology community, we can refer to the popularity statistics of HackerNews posts as following picture (This picture comes from A Statistical Analysis of All Hacker News Submissions):

Ditribution of Points for Hacker News Submissions

There is only a shim fraction of posts that gets more than 1000 points. One of the most popular posts was Steve Jobs has passed away in 2011.

Regarding this big move of GitHub, there are plenty of pros & cons. One of the most prominent concerns are that GitHub tries to generate more revenue for its investors rather than to create more values to the open source community, whom it relied on for initial growth.

Cheaper or Not? – Our Own Case

“Free” and “Unlimited”, those words caught everyone’s attention at the first glance. The true story is much more complicated. Whether it becomes cheaper or not highly depends on your use cases.

Here is our own case.

Initium Lab relies on GitHub for code repo hosting and static web pages hosting. The current blog you are reading is also hosted by GitHub’s gh-pages service. When firstly introduced, the feature – gh-pages generates significant amount of traction in the community – free hosting shipped with a site-builder plus templating solution, Jekyll. It saved developers a lot of time and trouble in distributing their works.

Initium Media, as a native Internet media, creates a lot of interactive news reports and news games. For example, Hong Kong Salary Distribution Lookup lets the user lookup precise income distributions for each constituency area based on Hong Kong Census in 2011 (Next one will be conducted at 2016). Some of those news games are created with external collaborators. For example, the Taiwan Presidential Candidates Policy Matching Game was created with Re-Lab. With the help of GitHub and its gh-pages feature, we can ease the process of development and deployment.

With the introduction of “unlimited private repo plan”, the change of cost is different for different organisations. At first glance, this plan lowers our cost, because we have much more repos compared with number of users. However, when considering our current and potential external collaborators, the cost becomes higher.

Core Value of GitHub

As criticised by many open source developers, the conflict between its initial value and the interest of investors tear this startup apart – the leave of its founder and CEO was a major sign. There were many feature requests to GitHub from the community but got ignored in the end. Earlier this year, one developer even created an open letter to request features from GitHub and attracted other developers to submit feature request via the Issue Tracker of the corresponding repo. The original open letter was signed by more than 1800 GitHub users.

One of the feature request is the “:+1” function – There are already many content-less “:+1” comments in the issue discussion thread, why not add this function to simplify the interaction between developers? Interestingly, GitLab noticed the comment and added the feature soon after this open letter went viral.

Despite the current situation of GitHub and the feedback from the community, there are numerous valuable endeavours that GitHub took in the early years. We conducted a quick survey of several long-time GitHub users and compiled this partial list:

  • Markdown – A lightweight markup language that is just enough for usual tech doc writing. The language was created by JOHN GRUBER and was derived to many variants over the years. The most popular one was GitHub Flavoured Markdown.

  • Pull-Request – This initiative opens the world for “social coding”. Before GitHub era, “Pull-Request” was a concept performed by developers over emails or IRC channels. The Pull-Request feature of GitHub creates the de facto standard pattern of social coding collaboration. However, this feature is criticized by some old-time veteran Git users, one of whom was the inventor of Git, Linus Torvalds

  • Forced open source – Unlike its counterparts who provide free private repo for the users, GitHub only provides free hosting for public repos. This debating feature was time proven to be a bold but effective move in open source community – the more repos are forced open (due to lack of paid plan), the more users can contribute, which turns the eco-system into a positive loop. We’ll see what happens next when individual users have free unlimited repos.

  • Developer tooling – Atom, the code editor, and Electron, the cross-platform framework, get considerable amount of positive feedback from the open source community.

  • Education plan – GitHub initiates the Education Plan with other companies to allow more students access to otherwise paid cloud services and tools.

  • gh-pages – As discussed in previous sections, this feature is still within our favourite ones and currently used in production.

  • Rich extension viewer – GitHub supports a variety of file extensions. One can view the diff of PSD files, or view the mapping information just on its WebUI. Those features attracts designers and journalists to collaborate on GitHub.

The Code Hosting Landscape

Emerging Code Hosting Services

Code hosting is critical for the collaboration between developers. There are many solutions in the market, even long before we have Git. Some of the services are already terminated. Interestingly, Gitorious migrates to GitLab and Google Code migrates to GitHub (one click solution was provided to maintainers before its shutdown).

A quick recap on those services reveal several key factors for the proliferation of code hosting solution:

  • Be social – Not only seen from the story of GitHub, but also proven by other modern Internet services that interaction between human beings is key for the retention of users.

  • Get funding or generate enough revenue – GitHub is backed up by Venture Capitals to grow its platform; GitLab runs a premium model to generate revenue for the further development of the product.

  • Good pricing model – Compare BitBucket and GitLab, which are almost out at the same time. BitBucket adopts a charge-by-headcount model and GitLab adopts a charge-by-premium-feature model. The experience, at least in this case, shows that enterprise support is a more sustainable model.

Icons credit to GitHub, Gitlab and SourceForge.