Github vs Gitlab vs Bitbucket - Which Is Better?
Github vs Gitlab vs Bitbucket - Which Is Better?

Every single developer wants to store his projects somewhere remotely so he has history of his changes. And typically people are using Git for this. This is why in this post I want to compare Gitlab, Github and Bitbucket like projects where you can store remotely and for free your projects.

The problem

At some point in your like you want to share your code and your projects between different machines. The most typical solution here is to learn Git and to learn how you can push your repositories inside remote origin. For example on the server of Gitlab, Github or Bitbucket.

But the main problem is that when you just started learning programming you don't know what features you need, what project is better and what you should choose.

From my experience when I just started, I just looked for the place where I can store privately all my repositories. This was the most crucial feature for me. It didn't make any sense to store all my projects in public.

At that time Github was the most popular solution. But the main problem was that at that time only public repositories where free inside Github. Nowadays it is not like this.

You can have in Github private repositories for free out of the box.

But at that time as a junior I didn't want to show my bad code to other people which is totally normal. This is why private repositories were a must for me.

Who has your data?

So let's start with our comparison. Who are the owners of these 3 companies.

  • Github is owned my Microsoft
  • Gitlab is owned by Gitlab Inc
  • Bitbucket is owned by Atlassian

This information can already change your decision. For example if you like Microsoft it makes a lot of sense to look into Github. Or if you hate Microsoft then you don't want to use their products.

Second thing that we can understand here is that Bitbucket lives inside an Atlassian family. Which actually means it is fully integrated with all tools inside it. For example if you use Jira, Confluence or any other of their tools you will get support of Bitbucket there out of the box.

How many users?

Now let's talk about the amount of users that each company owns. Github is the most popular product here. They have more than 14 mln of users. This number is so huge because everybody store their public projects inside Github. Literally every single company.

Angular Project

If we are talking about repository for React, Angular, Vue or any other framework or library, you will find them directly inside Github. You won't find them on Gitlab or Bitbucket because they are not that popular.

But it doesn't mean that you should directly choose Github just because it has the most amount of users.

For example inside Gitlab they have between 200-500 thousands users. Inside Bitbucket they were celebrating 10 mln of users inside their system.

Every single company inside this list is super stable, there are lots of users and we can't choose a single company just based on the amount of users.

Updates and new features

Now let's talk about updates and new features. I used all these systems and I must say that Atlassian family and Bitbucket don't have a lot of features.

If we talk about updates and features I will put Bitbucket on the third place. We are waiting for features there years and there are lots of features inside Github and Gitlab that we are still missing inside Bitbucket.

In Bitbucket you get a system were you won't get new stuff really often.

If you want some new advanced features you won't be there for sure.

When we compare Github vs Gitlab there are lots of new features inside Gitlab. They really release lots of features every single month. So I would put Gitlab on the first place. Inside Github you still get new features but they release them not that often.

Here is something important. In every company if people want some feature companies try to put it in paid tiers. It doesn't always mean that you will get this new nice feature in a free tier. Companies want to sell their product to you.

This is why I highly recommend that you write a list of features that you really need and check if they are available in free tiers.

Private repositories

Private repositories is the most important feature for me. As I already said long ago Github didn't have private repositories for free. But now all these companies have private repositories inside free tier.

But there is a small catch. We must talk about limits here. You can't just throw endlessly files inside repositories.

Every repository inside every company has size limit.

The storage of repository for Github is 1 GB. It is not a small amount because typically you have just text files there. But from my experience I have some repositories with more that 1 GB of data. I have more that 5 GB of data in some of repositories.

Bitbucket has a limit of 2 GB of data which is twice as big as Github.

Gitlab is the best here. They give you 10 GB of data.

This is why from the storage size and privacy Gitlab wins here.

Additional features

Now let's talk about additional features. Every single developer has different set of features in mind. From my experience the most amount of features you will get inside Gitlab, on the second place will get Github and last is Bitbucket.

This is why my choice is to use Gitlab. I use it already a lot of years completely for free.

For example for me the really important feature is Docker Registry. If you don't know Docker Registry is a popular solution for containerisation and I want to store all my images not inside public repository but privately.

Docker Registry

You can do it directly inside Github but only in public repositories. If you want to store docker images privately it is possible only in paid tier.

And inside Gitlab you have private registry for Docker images just inside your repository. Which means that you have 10 GB limit and you can upload there directly your Docker images. And this is on the free tier.

If we are talking about Bitbucket, just like I already said, they lack new features and they don't support Docker Registry at all.

So for my own projects which are all private I use Gitlab completely free. And actually if you are interested to know how to create a Javascript library by using Typescript and publish it to NPM make sure to check this post also.