When I first heard about GitLab several years ago, I signed up and eventually started using it as my main home for remote repositories. I must have signed up very early, because I still have an account with premium features even though I’ve never given GitLab any money.
There were a few reasons why I switched from GitHub to GitLab. First, they offered unlimited private repositories for free, something that GitHub charged money for. Second, the platform was open source. In fact, the entire company was quite open: their company handbook was published online for everyone to see. There were no secrets. Almost everything about the company was public information, and I wanted to support a company that operated with so much transparency. Lastly, integrated CI/CD meant no hassling with third-party services.
As GitLab grew, their product expanded from being a place for hosting Git repos to being a tool for the entire software development life cycle. That is great, but my small projects did not need all that.
Then there was the problem of visibility. When I look for specific kinds of software, GitHub is the first place I search to see if it exists. Why? Simply because many people host their projects on there. For open source projects, it’s the place to be. You might find a few notable projects hosted on GitLab’s public instance, but there is not a strong community of developers like there is on GitHub. This introduces another problem that I encountered.
Having open source projects hosted on GitHub makes it easy for people to contribute. I received some comments on a project of mine while it was hosted on GitLab, but only because those people bothered to sign up for GitLab (it was clear by their profiles that they made accounts just to comment on or contribute to that particular project). This makes me wonder if I would have received more bug reports if the project had been on GitHub.
After some researching and deliberating, I came to the following conclusion. GitLab is a great product for companies and organizations who are doing serious work and who can truly benefit from the entire set of tools that GitLab offers. My current workplace uses it, and I have seen how effective it is at organizing our entire workflow, not just the code. GitHub works well for people who want a place to host their personal work or open source projects.
Of course, all this might change in the future. For example, GitHub has recently introduced new features to stay competitive, such as private repos at no cost. It’s good that they finally have some competition.