About Plugins

About Plugins


All of the Discourse plugins that combine to create the Civically platform are open source and are open to contributions from anybody. We encourage and welcome pull requests on all plugins. All PRs should comply with the Civically Development Contribution Policy.

There is an organisational division between standard plugins, which typically add new features, and ‘extension’ plugins, which typically contain minor changes and/or extend other plugins. This is not a bright-line distinction; some standard plugins may become extensions and some extensions may become plugins. The division is organisational only: both types are, technically speaking, Discourse plugins.

There is also a division between generalised plugins (‘discourse-’, or ‘x-discourse-’), which can be used on any Discourse instance, and Civically plugins (‘civically-’, or ‘x-civically-’), which are designed specifically for Civically.

Civically-specific plugins or extensions can be used in another Discourse instance if you know what you’re doing, but they are not currently designed that way. If you do adapt a Civically plugin or extension for your own purposes, we kindly ask that you do so by generalising the functionality so that others may also use it.

It is useful to think of Civically’s plugins as being divided into three groups: Discourse plugins, Civically plugins and Extensions.

Discourse Plugins

These plugins can be used on any instance of Discourse right now, and most are already used on a variety of different Discourse instances. Each of these has an existing topic on meta.discourse.org, which is (and will remain) the canonical place for discussion about the plugin:

Civically Plugins

The goal is to generalise the functionality of these plugins and make the Civically-specific aspects settings, translation files or isolated in a Civically-specific extension. PRs that further that goal are particularly welcome. The current place to discuss these plugins is the relevant plugin topic here on Civically:


Some of these extend other plugins and some extend core Discourse functionality. Most are specific to Civically (i.e. ‘x-civically-’) and are likely to remain so, although we will keep looking for opportunities to generalise the functionality where possible: