Atlassian supergeeks have been happily engrossed in creating a brand new Atlassian Plugin SDK, to be ready for Codegeist and then to be hyperpolished for AtlasCamp. I’m the lucky technical writer who got to document the SDK. This has been such fun – yes, really – that I decided to write a blog post about it.

We want to make it easy peezy to get a basic plugin built and installed into a local version of Jira, Confluence or another Atlassian application. Then plugin developers can concentrate on the code that makes their plugin do its thing.

Guess what? It really is that easy now. I managed to create a Confluence plugin without the documentation (I was writing that at the time) and without being a developer myself. OK, I did have the Atlassian supergeeks at my beck and call. But still, you get my drift.

What my plugin does

The plugin is just a proof of concept, to try out an interactive online help script. Let’s say you’re entirely new to Confluence:

“I’ve never used Confluence before. Now I have to find the news items in my team’s space, and the boss is breathing down my neck.”

My plugin inserts an option into the Confluence user menu. The option is “Confluence WTF“. (The Confluence Webapp Tutorial Fantastique, of course.) When you click the option, a script starts up and shows you how to find your news items (blog posts). For now, let’s assume this is useful. 😉

Here’s the option inserted into the Confluence user menu:


Click the picture to enlarge it.

Here’s the script in action. It pops up some delectable green UI bubbles telling you where to go (in the nicest possible way) when you get stuck:



Click the picture to enlarge it.

Give yourself a pat on the back if you noticed that Confluence now has “blog posts” instead of “news items”. That change is coming in a future release.

See the full story of the guided help scripts in my ShipIt Day delivery note and blog post about SHO Guide authoring tool.

Pluginising it

Uh huh, that’s officially a word.

To create the plugin, I followed the steps that are now immortalised in this step-by-step guide. Basically, here’s what you need to do:

  • Run atlas-create-confluence-plugin to create your plugin. (Or atlas-create-jira-plugin or whatever.)
  • Run atlas-run to get your own local Confluence (or Jira or whatever) and to start it up with the plugin running in the app.
  • Start coding. Use the SDK commands to ease the code-deploy-test cycle. Try the documentation – it’s awesome!
  • Tweak your plugin descriptor (atlassian-plugin.xml) to include any new components your plugin needs.

I didn’t do any coding. Java is not my cup of tea. All I needed was two new elements in my atlasian-plugin.xml file, one to insert an option into the Confluence menu and one to load my script as a resource.

My plugin descriptor

Here’s what my plugin descriptor (atlassian-plugin.xml) looks like:


Link to View blog posts WTF

As you can see, my plugin has a <web-item /> element. That’s the “Confluence WTF” menu item you can see in the screenshot. (Read more about Confluence web-item elements.)

My plugin also has a <resource /> element. That points to my script file. (Read more about Confluence resource elements.) Heh, before you say it, I’ll say it for you:

“I’m using a downloadable resource. This is not the right way to do it!”

When I said just that in a demo to the other technical writers, they said I sound like a real developer now. 😉

How much fun can you have?

Walking past my desk while I was up to my knees in Maven, some uncharitable souls were heard to ask if I was having fun pretending to be a developer. Answer: Oh yes! Supergeek by proxy, that’s me, and it’s a pretty awesome situation to be in.

I was moved to tweet:

Having a lot of fun with Maven and Atlassian AMPS. Big black command window with lots of messages whizzing past.

See how much fun I was having:


Click the picture to enlarge it.

I have to confess to a certain disappointment when we made things even simpler by adding shell scripts. So you no longer need to say
mvn confluence:run

Instead it’s just
Supergeeks take heart! you can still use the AMPS commands directly if you want to.

Try it – It’s a blast

Develop a killer plugin, for Codegeist or beyond, and let us know what you think!

A tech writer gets intimate with the Atlassian Plugin SDK