Apps are lightweight, interactive add-ons to Mattermost. They are hosted as their own service, as opposed to plugins which run directly alongside the server process.
Apps can:
When you develop using the Apps framework, your Apps can:
Create slash commands
Post messages to channels (and anything else possible with Mattermost's API)
Add buttons to channel headers and post menus
Apps are now generally available and we always appreciate your feedback! Share constructive feedback in the Mattermost Apps channel on our Mattermost community instance.
We have quick start guides for TypeScript, Go, and Python to learn how to write your first App.
That depends on your use case, as they each have benefits.
Each type of existing integration is sort of a la carte, whereas the App framework is an all-in-one package that supports its own version of some of those out of the box. Meaning when you install an App, you don’t need to go create a separate bot account, OAuth app, webhooks etc. Some pieces are reused, such as the bot account mechanism, but some pieces were remade and are not reused, such as webhooks.
In the case of webhooks, the existing mechanism is only able to create posts, and only accepts an incoming webhook payload. It does not support other logic for handling arbitrary data structures from external systems.
A plugin should be used when you need to directly alter the UI in Mattermost or you have a feature that requires low latency with the server (such as replacing characters in any message before it is saved).
The Apps framework provides a few differences from plugins, including:
Any language you want. We currently have an official driver for Go.
Yes. They can be packaged as “customer-deployable” bundles and then deployed on the supported serverless platforms, or run as HTTP services on the organization’s own hosting infrastructure.