Why You Need to Move from Bitbucket to Github

Vlad Hudnitsky
Profoto Tech Blog
Published in
4 min readJun 2, 2020

For the last couple of years, my team at Profoto used Bitbucket. We had automated Android continuous delivery, we had Jira integration, and everything was going just fine… until new requirements came along, and we soon discovered how many features are really missing at Bitbucket.

Here, I have collected the reasons why we chose to move our Android and iOS development from Bitbucket over to Github.

Agenda

  1. Pull Request reviews
  2. Wiki
  3. Packages
  4. Build automation
  5. Projects
  6. Jira integration
  7. Github is public!
  8. Price

Pull Request reviews

This screenshot shows how Bitbucket PR review looks, using Chrome on my Samsung S10+.

The view is completely broken, the side menu covers almost the entirety of the whole screen, making it impossible to work with.

This is my biggest pain with Bitbucket. If another service were to solve just this one issue, that alone would be enough to get me to move.

Why is it so important to have mobile browser support? It’s hard for me to find enough time to review an entire PR at once; I’ll review one piece by piece from the smartphone, when I have 5–10 minutes. I want to be able to quickly check any PR, no matter how far away from my computer I am at the moment.

That’s why I absolutely need to have a mobile version, for PR reviews.

Of course, when it comes PR review, Bitbucket has many other problems.

  • You can’t track whether you’ve watched/opened the file or not.
  • You can’t track what exactly has been changed from the last time you looked at it. You have to review the whole document all over again.
  • Colors are often misleading.

Our workaround for PR review issues was Upsource. It took a week to set it up, but it served us very well until we moved away from Bitbucket.

Wiki

I like to have all my project-related documentation as close to the source code as possible. The reason for that is, documentation needs to change as often as the source code.

Atlassian has Confluence, but it is not made to use along with the source code.

There are a few problems with that:

  1. You have to pay for it separately.
  2. It is another, separate service, which forces you to navigate between them.
  3. It’s made for Jira, not Bitbucket.

Packages

At Profoto, we need to distribute our SDKs between the teams, and also ship private SDKs to other companies — and we want to have versioning and documentation along with the SDK. Github Packages allows that, while Bitbucket doesn’t even have this option.

Build automation

After quite a bit of thought and experimentation with both, I personally feel that Github Actions are much more useful and powerful than Bitbucket Pipelines.

  1. The huge advantage of Actions itself — iOS support straight out of the box!
  2. It’s cheaper than Bitbucket Pipelines and any other cloud services, but not a private Jenkins server under your desk. =)
  3. You can run a workflow on any GitHub event. In fact, you can automate everything!
  4. We don’t do it just yet, but Actions supports Linux, macOS, Windows, and ARM.
  5. There are tons of workflows in the Marketplace, built by the community.

Looks like I’m going to have to write another article showing all the power of Github Actions!

Projects

Projects give you a simple board inside your repository, which I’ve found incredibly useful for small projects, like PoC, demos and prototypes, when you don’t want to have a new project in Jira.

I see it as being extremely useful for smaller companies and teams, who can build pretty much all their processes on Github without the use of any third-party services.

Jira integration

For the bigger stories, Github integrates every bit as well with Jira as Bitbucket does. You don’t lose anything here.

Github is public!

This one is a hidden, and not so obvious, point.

Developers love to work on GitHub because it has a public contributions board. It shows a developer’s activity, even when they’re working in the private repository. It’s like a CV that grows as you work!

Price

Nowadays, Github is a bit more expensive than Bitbucket ($4/person/month vs. $3/person/month). For me, it’s definitely worth it.

Summary

As of today, Github certainly has the most useful features. Will Bitbucket improve and catch up to them in the future? Who knows! Looking back over the last couple of years, you can definitely see that Github has developed and grown much faster. If it continues to follow this trend, then in a few years, it will likely be so far ahead that Bitbucket won’t be able to catch up. This is why I’m suggesting that you stop tormenting yourself and jump over to Github.

If this didn’t ring the bell in your heart and you disagree, though, then maybe Bitbucket is the one for you. Check my other article, where I explain how to configure Bitbucket Pipelines for Android continuous delivery.

Update:

The prices I mentioned not true anymore — while I was writing an article, Github changed their offer and prices, reducing free actions time from 10k min to 3k min.

Also, when we configured our iOS builds automation, we found that Github counts one minute of Mac build time with a 10x multiplier. What discrimination towards Mac users…

Conclusion: We haven’t made any decisions yet, but if Github Actions ever starts costing us more than $100/month, we will start searching for another solution.

--

--

Vlad Hudnitsky
Profoto Tech Blog

ex EM @ Spotify; ex CIO @ Profoto; Independent Product Developer