- TypeScript 50.2%
- Go 38.9%
- JavaScript 6.3%
- SCSS 3%
- HTML 0.9%
- Other 0.6%
| .github | ||
| api | ||
| demo-data | ||
| docs | ||
| e2e-tests | ||
| server | ||
| thoughts/shared/handoffs/general | ||
| tools | ||
| webapp | ||
| .editorconfig | ||
| .gitattributes | ||
| .gitignore | ||
| .gitpod.yml | ||
| .nvmrc | ||
| build.bat | ||
| CHANGELOG.md | ||
| CLAUDE.md | ||
| client4_extension.go | ||
| CODEOWNERS | ||
| CONTRIBUTING.md | ||
| extract-all-icons.ps1 | ||
| extract-svgs.ps1 | ||
| LICENSE.enterprise | ||
| LICENSE.txt | ||
| local-test.config.example | ||
| local-test.ps1 | ||
| manage-tests.ps1 | ||
| NOTICE.txt | ||
| quick-test.bat | ||
| README.md | ||
| release.bat | ||
| SECURITY.md | ||
| test-build.bat | ||
| TEST_PLAN_MATTERMOST_EXTENDED.md | ||
| tests.bat | ||
| webapp.npmrc | ||
| wsl-release.sh | ||
| wsl-setup.sh | ||
| wsl-test.sh | ||
A fork of Mattermost with end-to-end encryption, custom icons, and other enhancements.
Features • Installation • Documentation • Contributing
Overview
This fork adds several features to Mattermost that aren't available in the upstream version. All features are behind feature flags and can be enabled independently.
Features
End-to-End Encryption
Client-side encryption using RSA-4096 + AES-256-GCM. Messages and files are encrypted in the browser before being sent to the server.
- Per-session key generation stored in sessionStorage
- Messages encrypted for all active sessions of each recipient
- File attachments encrypted with metadata hidden from server
- Purple visual styling indicates encrypted content
Discord-Style Replies
Inline reply previews with curved connector lines, similar to Discord's reply system.
- Click Reply to queue posts, then send a message to reply to all at once
- Visual connector lines link replies to the original post
- Graceful degradation: replies appear as clickable blockquotes when disabled
- Click any reply preview to jump to the original message
Chat Sounds
Customizable sound effects for message and reaction events, inspired by Guilded.
- Master volume control with per-sound toggles
- Sounds for: message sent, reactions, DMs, mentions, and more
- Preview buttons to test each sound
- Throttled playback to prevent audio spam
Custom Channel Icons
Channels can have custom icons instead of the default globe/lock icons.
- Material Design Icons (7000+)
- Lucide icons
- Custom SVG via base64
- Searchable picker in channel settings
Custom Thread Names
Threads can be renamed to something more descriptive than the first message.
Threads in Sidebar
Followed threads appear nested under their parent channel in the sidebar.
Hide Deleted Message Placeholders
When enabled, deleted messages disappear immediately instead of showing "(message deleted)".
Feature Flags
| Feature | Environment Variable | Default |
|---|---|---|
| End-to-End Encryption | MM_FEATUREFLAGS_ENCRYPTION |
Off |
| Discord-Style Replies | MM_FEATUREFLAGS_DISCORDREPLIES |
Off |
| Chat Sounds | MM_FEATUREFLAGS_GUILDEDSOUNDS |
Off |
| Custom Channel Icons | MM_FEATUREFLAGS_CUSTOMCHANNELICONS |
Off |
| Custom Thread Names | MM_FEATUREFLAGS_CUSTOMTHREADNAMES |
Off |
| Threads in Sidebar | MM_FEATUREFLAGS_THREADSINSIDEBAR |
Off |
| Hide Deleted Placeholders | MM_FEATUREFLAGS_HIDEDELETEDMESSAGEPLACEHOLDER |
Off |
Features can also be toggled in System Console > Mattermost Extended > Features:
Installation
Building from Source
git clone https://github.com/stalecontext/mattermost-extended.git
cd mattermost-extended
# Build server
cd server && make build-linux BUILD_ENTERPRISE=false
# Build webapp
cd ../webapp && npm ci && npm run build
Creating a Release
# Commit changes, then tag and push
./build.bat 11.3.0-custom.1 "Release description"
# GitHub Actions builds and publishes automatically
Documentation
| Document | Description |
|---|---|
| Features | Detailed feature documentation |
| Architecture | Technical design |
| Build & Deploy | CI/CD and deployment |
| Development | Local development setup |
| Encryption | E2E encryption details |
Project Structure
mattermost/
├── server/
│ ├── channels/api4/ # REST API (+ encryption.go)
│ ├── channels/store/ # Database layer
│ └── public/model/ # Data models & feature flags
│
├── webapp/
│ ├── channels/src/components/ # UI components
│ ├── channels/src/utils/encryption/ # Crypto library
│ └── platform/ # Shared packages
│
├── docs/ # Documentation
└── .github/workflows/ # CI/CD
Related Repositories
| Repository | Description |
|---|---|
| mattermost-extended | This repository |
| mattermost-extended-mobile | Mobile app |
| mattermost-extended-cloudron-app | Cloudron packaging |
Contributing
- Fork the repository
- Create a feature branch
- Test with
local-test.ps1 - Submit a pull request
License
Licensed under the same terms as Mattermost. See LICENSE.txt.