When I discovered GitLab in February, a rebellious passion flared up – a desire to break away from the omnipresent, walled-garden development ecosystem that is GitHub.
After GitHub had supposedly banned one of my developers for Attorney Online, that disdain for GitHub flooded over (although it was only later that I considered that perhaps he had involved himself in something he did not tell me about). I switched to GitLab in two days and was content by its fully-featured nature: it could show icons for repositories, group repositories into projects, mirror in both directions, and it even came with a fully-featured CI! Satisfied that I could escape the grasp of GitHub, I moved the main Attorney Online repos to GitLab to make a pipeline and allow my banned developer to contribute.
But six months on, the cracks of GitLab were beginning to show: odd bugs, thousands of issues on the GitLab main repo, slow page load times, and a seemingly endless amount of switches and dropdowns on every panel. It was like Jira all over again – and things were not improving.
In those same six months, GitHub was making leaps and bounds to compete with GitLab’s bells and whistles. Adding features such as security bulletins, issue transferring, jump-to-definition, and sponsorships, GitHub was also trying to reel its open-source users back into the platform – and they also seemed to cut back on their omnipotent moderation, instead granting repositories the tools to moderate themselves.
The distinction was thus made clear to me: GitLab for enterprise, GitHub for community. Enterprises don’t care about simplicity, but hobby developers like myself do. Both also succeeded in adding features that were orthogonal to each other – only GitHub supports jump-to-definition, but only GitLab supports arbitrary mirroring rules.
After reverting my move to GitLab, I saw that GitLab was flexible enough to allow me to reap the benefits of both ecosystems – GitHub for project management, and GitLab for its advanced CI pipeline and artifact hosting.
In the end, it is inevitable for today’s developer world to spin around an indispensable GitHub: it is the product that tamed a complicated version control system and popularized it in a simple-to-use program for managing open-source projects.