Short, interactive walk-through guides that help end-users and admins get more done in Mattermost — delivered as a full-screen product experience.
- Interactive guides: Step-by-step modules with screenshots and in-product walk-throughs
- Badges: Earn a badge when you finish a guide; optionally show badges on user profiles
- Progress tracking: Per-guide and module completion, with continue / review flows
- Audience filters: Browse guides for end-users, admins, or everyone
- Access controls: Admins choose who can use Academy and which guides are available
- Completion reporting: System Console charts and export for guide completion over time
- Deep integration: Entry points in the product switcher, apps bar, help menu, and
/academyslash command
- Collaboration Basics: Channel organization, composing, formatting, and threaded replies
- Productivity Tips: Keyboard shortcuts, slash commands, scheduled messages, priority, notifications, and finding messages again
- AI Acceleration with Agents: Chat, summaries, calls, search, rewrites, and custom agents
- Advanced Search Techniques: Search filters, precision syntax, file search, and AI semantic search
- Project Tracking with Boards: Boards, cards, properties, views, and channel links
- Workflow Automation with Playbooks: Checklists, status updates, playbook setup, and retrospectives
- Upgrading Mattermost: Release tracks, upgrade paths, pre-flight checks, verification, and rollback
- Mattermost Server running a supported ESR or later version.
- Download a release bundle.
- Upload and enable the plugin in System Console → Plugins
- Optionally configure profile badges, user access, and review guide completions under System Console → Plugins → Mattermost Academy
After installation:
- Open Academy from the product switcher, apps bar, help menu, or run
/academy. - Pick a guide from the catalog.
- Work through modules; progress is saved as you go.
- Finish a guide to earn a badge.
| Path | Page |
|---|---|
/academy |
Guide catalog |
/academy/guides/<guideId> |
Redirect to first incomplete module |
/academy/guides/<guideId>/modules/<moduleId> |
Lesson |
/academy/guides/<guideId>/done |
Completion / badge |
- Go 1.25+
- Node.js 16+ / npm 8+
- A running Mattermost server for deploy/testing
-
Set up your Mattermost development environment by following the Mattermost developer setup guide. If you already have a remote Mattermost server, you can skip this step.
-
Set up your Mattermost plugin development environment by following the Plugin Developer setup guide.
-
Clone the repository:
git clone https://github.com/mattermost/mattermost-plugin-academy.git
cd mattermost-plugin-academy- Optional. If you are developing against a remote server, set environment variables to deploy:
export MM_SERVICESETTINGS_SITEURL=http://localhost:8065
export MM_ADMIN_USERNAME=<YOUR_USERNAME>
export MM_ADMIN_PASSWORD=<YOUR_PASSWORD>- Build and deploy the plugin:
make deployHard-refresh the browser after deploy.
Build only (produces dist/com.mattermost.academy-*.tar.gz for manual upload):
make- Run
make helpfor a list of all make commands - Run
make check-styleto verify code style - Run
make testto run the unit test suite - Run
make e2eto run Cypress against a running Mattermost - Run
make watchto rebuild the webapp on change (thenmake deploy-from-watchto install)
Cypress lives in e2e-tests/cypress, following the Playbooks layout: API login against a real Mattermost, specs under tests/integration/**/*_spec.ts.
- Deploy the plugin to a running Mattermost (
make deploy), using the sameMM_*env vars as local deploy. - Run headless:
make e2e - Or open the Cypress UI:
make e2e-open
To start a disposable server instead of your dev instance:
docker compose -f e2e-tests/docker-compose.yml up -d
export MM_SERVICESETTINGS_SITEURL=http://localhost:8065
export MM_ADMIN_USERNAME=sysadmin
export MM_ADMIN_PASSWORD=Sys@dmin-sample1
bash e2e-tests/scripts/bootstrap-server.sh
make deploy
make e2ePull requests also run this suite in GitHub Actions (.github/workflows/e2e.yml).
Pushes to master/main and pull requests run lint, unit tests, and a plugin build on GitHub Actions, using the same plugin-ci workflow as the Mattermost plugin starter template. A second workflow runs the Cypress smoke suite against a Docker Mattermost.
| Path | Purpose |
|---|---|
docs/architecture.md |
Technical architecture for stakeholders |
webapp/ |
Product UI, catalog/guides/lessons, badges, admin sections |
webapp/src/content/ |
Guide/module content (TypeScript) |
public/guides/assets/ |
Lesson images and UI mock SVGs |
server/command/ |
/academy slash command |
server/progress/ |
Progress / completion API |
e2e-tests/cypress/ |
Cypress smoke tests (catalog, badges, admin CSV) |
plugin.json |
Plugin id, name, and bundle paths |
Plugin id: com.mattermost.academy
This repository is licensed under Apache-2.0.

