Kennis 3 major differences between a traditional Atlassian add-on and a cloud add-on

3 major differences between a traditional Atlassian add-on and a cloud add-on

We are in Amsterdam for Atlassian connect week. The goal for us this week is to port an existing add-on to the Atlassian cloud. It is still JIRA and Confluence in the cloud, but traditional add-ons can’t be installed. So what exactly is different about writing an add-on for the cloud? 3 things:

in tekst

1) Simply understood, Atlassian Connect add-ons are web applications. Atlassian Connect add-ons operate remotely over HTTP and can be written with any programming language and web framework. So there we have the most important difference. Pick your favourite language, web framework and tools and start building. There are no restrictions here. Our favourite language is Clojure and we are picking up Untangled as a web framework.

2) Closely related to #1 and not unimportant, hosting is up to the add-on. While server add-ons live inside the host product (JIRA, Confluence, etc), for Atlassian cloud, you are on your own. Your add-on is a full web application for which you need to arrange a place to run, storage, security measures, monitoring, backup and what not. Don’t underestimate this, this involves serious work and it’s a real responsibility. We have add-ons running on both Heroku and AWS. Simple add-ons can get away with simple hosting services but as you grow you might be looking into serious hosting offerings that can scale with you.

3) Add-ons in the cloud are restricted to plugin points provided by the Connect Framework. While server add-ons also work via official plugin points, there was always the option to use undocumented services and classes. A favourite occupation has always been to inject Javascript code of any kind to do whatever we saw fit. No more of that for cloud add-ons. While this seems annoying at first we know that the ecosystem eventually will benefit from the isolation of add-ons.

Taking these 3 things into account we have found that if you want to build add-ons that are available on both server and cloud that you need to start building the cloud version first. The cloud version is the one that will constrain you functionality-wise mostly because of #3 above. Start on cloud, choose your functionality carefully and then build functionality on server that is on par with the cloud version. Happy coding!