Last year at AtlasCamp we shipped a new integration framework named Bitbucket Connect. Unlike traditional REST APIs, Connect allows you to embed new pages and features directly within the Bitbucket UI via securely signed iframes. It’s kind of like OpenSocial, but with less XML and a far deeper integration with Bitbucket’s feature set. We’ve been using Connect internally to build out new features like Bitbucket Pipelines as independent, full-stack microservices. But even cooler than that: Bitbucket fans have been busy shipping their own user-contributed features to the Bitbucket add-on directory!
Here are six of my favorite Bitbucket features that teams outside of Atlassian shipped this year:
Kanban boards for Bitbucket
Two teams have independently built Kanban-style boards for managing your Bitbucket issues. Kanban boards are great for teams, as you can quickly see which team members are assigned to which issues, and what state the issues are in. Boards also allow users to easily update issues as they progress through your workflow.
Bucket Board provides a simple drag-and-drop board with your issues organized into columns by status:
I typically stick to a simple three column layout, but Bucket Board allows you to configure which status columns are visible based on your workflow needs.
Canvas for Bitbucket is another add-on that provides drag-and-drop boards. It has a few extra features, including BBQL-powered quick filters to restrict which issues are displayed, and the ability to map columns and swimlanes to arbitrary issue attributes:
You can have both add-ons installed at the same time, so try ’em out and see which one suits your team best.
Static site hosting
Bitbucket has a slightly hidden feature that allows you to expose a repository’s contents as a static website. A couple of Seattle-based developers decided they could do better, and built Aerobatic: a GitHub Pages-style static site deployment engine on top of Bitbucket.
Aerobatic supports automatic building of Jekyll sites from any branch in your repository, just like GitHub Pages. Unlike GitHub Pages, they also support Jekyll plugins, Hugo, Wintersmith, and arbitrary npm builds for your site. Aerobatic also have a neat feature where you can serve multiple branches from the same repository on separate subdomains, so you can stage changes to your project’s website before pushing them to production.
Aerobatic do ask a modest fee for their services, but they’ll give you two sites for free (making it a great place to host your personal blog).
Charts
As you may have gathered, Bitbucket’s core focus is professional teams. As such, we’ve focused our backlog on features like branch permissions, performance, and perfecting the pull request experience; rather than some of the more fun social features like contributor statistics. Statistics are great for open source projects, and are a handy way to quickly see who has contributed to a particular project. However they’re less useful (or sometimes even dangerous, in the wrong hands) in a professional context: LOC, blame, and commit counts aren’t a great way to measure developer productivity.
But if you dig charts, you’re in luck! A small team of developers from Belarus have shipped some pretty sweet looking charts for Bitbucket. Awesome Graphs (a port of a popular Bitbucket Server add-on) gives you contributor statistics, commit volume over time, and a punch card chart showing what times of day your team is committing code:
Install Awesome GraphsRead more
PaaS
Platform.sh is a PHP PaaS that monitors your Bitbucket repositories and deploys the head of each branch to a separate staging environment for testing. This is handy for quickly sharing your work with clients or teammates. It also means pull request reviewers can simply click a link to do some exploration testing of your new feature, rather than having to pull and deploy your code themselves.
For better or worse, I don’t PHP these days, though last I checked ~20% of Bitbucket repositories where the owner had declared a language were PHP. However if someone was interested in building or integrating a Node.js PaaS with Bitbucket Connect I’d be very interested in chatting đ Lucky for me, Platform.sh now supports Node.js, Ruby, and Python as well!
File rendering
The team behind Awesome Graphs also shipped File Viewer for Bitbucket: an add-on that uses Bitbucket’s File View API to render PDFs, CSVs, GeoJSON, and 3D models. Their latest update includes experimental support for the powerful AutoDesk Forge viewer, which lets you rotate, measure, and explode 3D objects tracked in your Git repositories:
On a slightly more frivolous note, you could also check out this file viewer that renders your source code as a platform game (my high score is 0x0000461c).
Try ’em out!
I’m blown away by the high quality of the features that Atlassian didn’t ship on the Bitbucket Connect platform. If these seem useful for your software projects, check out the Bitbucket add-on directory for a more complete listing of the neat features and integrations available for your Bitbucket account. You’ll need to sign up for a free Bitbucket account (if you haven’t already!)
If you’re working on a Bitbucket feature yourself, or just want to get started with Connect, I’d love to hear about it. Drop me a line on Twitter: I’m @kannonboy.