Mattermost Logo
Edit on GitHub

Example Plugins

Server “Hello, world!” 

To get started extending server-side functionality with plugins, take a look at our server “Hello, world!” tutorial.

Web App “Hello, world!” 

To get started extending browser-side functionality with plugins, take a look at our web app “Hello, world!” tutorial.

Demo Plugin 

To see a demonstration of all server-side hooks and webapp components, take a look at our demo plugin.

Sample Plugin 

To see a stripped down version of the demo plugin with just the build scripts and templates to get started, take a look at our sample plugin.

Zoom 

The Zoom plugin for Mattermost adds UI elements that allow users to easily create and join Zoom meetings:

Topics demonstrated:

  • Uses a custom HTTP handler to integrate with external systems.
  • Defines a settings schema, allowing system administrators to configure the plugin via system console UI.
  • Implements tests using the plugin/plugintest package.
  • Creates rich posts using custom post types.
  • Extends existing webapp components to add elements to the UI.

JIRA 

The JIRA plugin for Mattermost creates a webhook that your JIRA server can use to post messages to Mattermost when issues are created:

Topics demonstrated:

  • Uses a custom HTTP handler to integrate with external systems.
  • Defines a settings schema, allowing system administrators to configure the plugin via system console UI.
  • Implements tests using the plugin/plugintest package.
  • Compiles and publishes releases for multiple platforms using Travis-CI.

Profanity Filter 

The profanity filter plugin for Mattermost automatically detects restricted words in posts and censors them prior to writing to the database. For more use cases, see this forum post.

Topics demonstrated:

  • Interception and modification of posts prior to writing them into the database.
  • Rejection of posts prior to writing them into the database.

Memes 

The Memes plugin for Mattermost creates a slash command that can be used to create dank memes:

Topics demonstrated:

  • Registers a custom slash command.
  • Uses a custom HTTP handler to generate and serve content.
  • Compiles and publishes releases for multiple platforms using Travis-CI.