Last updated Jul 23, 2024

Confluence plugin guide

Confluence's plugin system allows you to build apps that customize and extend Confluence. An app (also known as a plugin or add-on) is a bundle of code, resources and a special configuration file that can be installed on a Confluence site to add new functionality, or change the behavior of existing features.

There are two main types of apps:

The terms app, add-on, and plugin are often used interchangeably. Throughout this guide, we'll mostly use the term 'plugin'.

In this guide:

Building for a cloud site?

Head over to our Confluence Cloud docs to build for Confluence instances hosted by Atlassian in the cloud.

Plugins and plugin modules

Every plugin is made up of one or more plugin modules. A single plugin may do many things, while a plugin module represents a single function of the plugin.

For example, a theme plugin will consist of a colour-scheme module to define the theme's colors, a number of layout modules to define the site's page layouts, and a theme module to combine those pieces together into a single theme.

Some plugins, such as the macro packs that come with Confluence, are just a collection of unrelated modules that just happen to be packaged together. Other plugins, such as theme plugins, have modules that work together to provide some orchestrated functionality.

Where plugins are stored



Manually installed


Installed via repository


Bundled plugins


System plugins


For example, the System plugins chart plugin or the Widget Connector plugin will store data in WEB-INF/lib. Similarly for advanced-formatting macros.

Where plugin run-time data is stored

There is no distinct requirement where a Confluence plugin's run-time data is stored. It depends on the particular implementation of each plugin. The most common storage location would be: database, BANDANA, conf-home or other.

Developing a plugin

If you're interested in developing an app for Confluence, our plugin SDK is a great place to start.

Rate this page: