3c7b8278ce
- usePermissions ORs current user roles + @everyone only (not all server roles) - cache myRolesByServer; load on active server; refresh after self role edit - gate/notify @everyone and @channel; plain @username push; special mention UI - refresh FEATURE_PARITY (DMs exist; drop stale critical gaps) - README production deploy notes dumpster.service - unit tests for permission bits and broadcast mention tokens
221 lines
8.9 KiB
Markdown
221 lines
8.9 KiB
Markdown
# dumpsterChat Feature Parity Comparison
|
|
|
|
## vs Discord, Guilded (historical), TeamSpeak 6, Fluxer
|
|
|
|
Compiled 2026-06-30. **Status refreshed 2026-07-15** (not a full re-audit of every row).
|
|
|
|
---
|
|
|
|
## Legend
|
|
|
|
| Icon | Meaning |
|
|
|------|---------|
|
|
| ✅ | Implemented |
|
|
| ❌ | Not implemented |
|
|
| 🔄 | In progress / planned |
|
|
| ⚠️ | Partial / buggy |
|
|
|
|
---
|
|
|
|
## 1. Text Chat
|
|
|
|
| Feature | dumpsterChat | Discord | Guilded | TeamSpeak 6 | Fluxer |
|
|
|---------|:------------:|:-------:|:-------:|:-----------:|:------:|
|
|
| Text channels | ✅ | ✅ | ✅ | ✅ | ✅ |
|
|
| Direct messages | ✅ | ✅ | ✅ | ❌ | ✅ |
|
|
| Markdown support | ✅ | ✅ full | ✅ full | ❌ basic | ✅ full |
|
|
| Reactions | ✅ | ✅ | ✅ | ❌ | ✅ |
|
|
| Replies | ✅ | ✅ | ✅ | ❌ | ✅ |
|
|
| Threads | ✅ | ✅ | ✅ | ❌ | 🔄 |
|
|
| Forum channels | ✅ | ✅ | ✅ | ❌ | 🔄 |
|
|
| Pinned messages | ✅ | ✅ | ✅ | ✅ | ✅ |
|
|
| Message search | ✅ | ✅ full | ✅ | ❌ | ✅ Meilisearch |
|
|
| Edit / delete messages | ✅ | ✅ | ✅ | ❌ | ✅ |
|
|
| Rich embeds / link unfurling | ✅ | ✅ | ✅ | ❌ | ✅ |
|
|
| File uploads | ⚠️ MinIO | ✅ | ✅ | ✅ | ✅ S3-backed |
|
|
| GIF picker (Giphy) | ✅ | ✅ | ✅ | ❌ | ✅ |
|
|
| Typing indicators | ✅ | ✅ | ✅ | ❌ | ✅ |
|
|
| Message history (pagination) | ✅ | ✅ | ✅ | ✅ | ✅ |
|
|
| Read receipts | ✅ | ✅ | ✅ | ❌ | 🔄 |
|
|
| @everyone / @channel | ✅ (perm gated) | ✅ | ✅ | ❌ | ✅ |
|
|
|
|
---
|
|
|
|
## 2. Voice & Video
|
|
|
|
| Feature | dumpsterChat | Discord | Guilded | TeamSpeak 6 | Fluxer |
|
|
|---------|:------------:|:-------:|:-------:|:-----------:|:------:|
|
|
| Voice channels | ✅ LiveKit | ✅ | ✅ | ✅ | ✅ LiveKit |
|
|
| Video calls | ✅ LiveKit | ✅ | ✅ | ✅ | ✅ |
|
|
| Screen share | ❌ | ✅ | ✅ | ✅ beta | 🔄 canary |
|
|
| Noise suppression | ✅ RNNoise | ✅ Krisp | ✅ | ❌ | ✅ DeepFilterNet3 |
|
|
| Push-to-talk | ❌ | ✅ | ✅ | ✅ | ✅ |
|
|
| Voice activity | ✅ | ✅ | ✅ | ✅ | ✅ |
|
|
| Go live / streaming | ❌ | ✅ | ✅ | ❌ | 🔄 |
|
|
| Stage channels | ❌ | ✅ | ❌ | ❌ | ❌ |
|
|
| E2EE voice/video | ❌ | ✅ | ❌ | ❌ | 🔄 |
|
|
| Whisper / poke | ✅ | ❌ | ✅ | ✅ | ❌ |
|
|
|
|
---
|
|
|
|
## 3. User System
|
|
|
|
| Feature | dumpsterChat | Discord | Guilded | TeamSpeak 6 | Fluxer |
|
|
|---------|:------------:|:-------:|:-------:|:-----------:|:------:|
|
|
| User profiles | ✅ basic | ✅ rich | ✅ rich | ✅ basic | ✅ medium |
|
|
| Avatars | ✅ Gravatar | ✅ | ✅ | ✅ | ✅ |
|
|
| Custom status (text) | ✅ | ✅ | ✅ | ❌ | ✅ |
|
|
| Status states (online/idle/dnd/offline) | ✅ | ✅ | ✅ | ✅ | ✅ |
|
|
| Badges | ❌ | ✅ | ✅ | ✅ | ✅ |
|
|
| Usernames + discriminators | ✅ | ⚠️ handles | ❌ | ✅ UID | ✅ #0000 |
|
|
| Friend requests | ❌ | ✅ | ✅ | ❌ | ✅ |
|
|
| Block list | ✅ | ✅ | ✅ | ❌ | ❌ |
|
|
| Activity / game status | ❌ | ✅ | ✅ | ❌ | ❌ |
|
|
|
|
---
|
|
|
|
## 4. Roles & Permissions
|
|
|
|
| Feature | dumpsterChat | Discord | Guilded | TeamSpeak 6 | Fluxer |
|
|
|---------|:------------:|:-------:|:-------:|:-----------:|:------:|
|
|
| Roles | ✅ | ✅ | ✅ | ✅ | ✅ |
|
|
| Hierarchical roles | ⚠️ basic | ✅ | ✅ | ✅ | ✅ |
|
|
| Permission bitflags | ✅ | ✅ | ✅ | ✅ granular | ✅ |
|
|
| Per-channel permission overrides | ✅ | ✅ | ✅ | ✅ | ✅ |
|
|
| @everyone default role | ✅ | ✅ | ✅ | ✅ | ✅ |
|
|
| Role colors | ⚠️ DB ready | ✅ | ✅ | ❌ | ✅ |
|
|
| Role icons | ❌ | ✅ Nitro | ❌ | ❌ | ❌ |
|
|
| Administrator bypass | ✅ | ✅ | ✅ | ✅ | ✅ |
|
|
| Client-side permission gates | ✅ (user roles + @everyone) | ✅ | ✅ | ✅ | ✅ |
|
|
|
|
### dumpsterChat Permissions (current)
|
|
|
|
`VIEW_CHANNEL`, `SEND_MESSAGES`, `MANAGE_MESSAGES`, `KICK_MEMBERS`, `BAN_MEMBERS`, `MANAGE_SERVER`, `MANAGE_CHANNELS`, `ADMINISTRATOR`, `CONNECT_VOICE`, `SPEAK_VOICE`, `SHARE_SCREEN`, `MUTE_MEMBERS`, `CREATE_INSTANT_INVITE`, `CHANGE_NICKNAME`, `MANAGE_NICKNAMES`, `MANAGE_ROLES`, `MANAGE_WEBHOOKS`, `EMBED_LINKS`, `ATTACH_FILES`, `ADD_REACTIONS`, `USE_EXTERNAL_EMOJIS`, `MENTION_EVERYONE`.
|
|
|
|
**Missing compared to Discord/Guilded:** `USE_VOICE_ACTIVITY`, `PRIORITY_SPEAKER`, `DEAFEN_MEMBERS`, `MOVE_MEMBERS`, `REQUEST_TO_SPEAK`, etc.
|
|
|
|
---
|
|
|
|
## 5. Moderation
|
|
|
|
| Feature | dumpsterChat | Discord | Guilded | TeamSpeak 6 | Fluxer |
|
|
|---------|:------------:|:-------:|:-------:|:-----------:|:------:|
|
|
| Kick | ✅ | ✅ | ✅ | ✅ | ✅ |
|
|
| Ban | ✅ | ✅ | ✅ | ✅ | ✅ |
|
|
| Mute (voice/text) | ✅ | ✅ | ✅ | ✅ | ✅ |
|
|
| Timeout | ❌ | ✅ | ❌ | ❌ | ❌ |
|
|
| Slowmode | ✅ | ✅ | ✅ | ❌ | ✅ |
|
|
| AutoMod | ❌ | ✅ | ✅ Flow Bots | ❌ | 🔄 |
|
|
| Audit log | ✅ | ✅ | ✅ | ❌ | ✅ |
|
|
| Message delete bulk | ✅ | ✅ | ✅ | ❌ | ✅ |
|
|
| Member screening / applications | ❌ | ❌ | ✅ recruitment | ❌ | ❌ |
|
|
| Reports | ❌ | ✅ | ✅ | ❌ | ✅ |
|
|
|
|
---
|
|
|
|
## 6. Server Management
|
|
|
|
| Feature | dumpsterChat | Discord | Guilded | TeamSpeak 6 | Fluxer |
|
|
|---------|:------------:|:-------:|:-------:|:-----------:|:------:|
|
|
| Create / delete server | ✅ | ✅ | ✅ | ✅ | ✅ |
|
|
| Server icon | ✅ | ✅ | ✅ | ✅ | ✅ |
|
|
| Channel categories | ✅ | ✅ | ✅ | ✅ | ✅ |
|
|
| Channel types | text, voice, forum, calendar, docs, list | 8+ | 10+ | voice + text | text, voice |
|
|
| Channel reordering (position) | ✅ | ✅ | ✅ | ✅ | ✅ |
|
|
| Server invites | ✅ | ✅ | ✅ | ✅ | ✅ |
|
|
| Vanity URLs | ❌ | ✅ Nitro | ❌ | ❌ | ❌ |
|
|
| Webhooks | ✅ | ✅ | ✅ | ❌ | ✅ |
|
|
| Bots / API | ⚠️ store + runner | ✅ huge | ✅ Flow Bots | ❌ plugins | 🔄 |
|
|
| Server templates | ❌ | ✅ | ❌ | ❌ | ❌ |
|
|
| Server discovery | ❌ | ✅ | ✅ | ✅ | 🔄 |
|
|
| Server analytics | ❌ | ✅ | ✅ | ❌ | ❌ |
|
|
| Server monetization | ❌ | ❌ | ✅ Subs | ❌ | ❌ |
|
|
| Server groups / sub-servers | ❌ | ❌ | ✅ | ✅ virtual | ✅ communities |
|
|
|
|
---
|
|
|
|
## 7. Notifications
|
|
|
|
| Feature | dumpsterChat | Discord | Guilded | TeamSpeak 6 | Fluxer |
|
|
|---------|:------------:|:-------:|:-------:|:-----------:|:------:|
|
|
| Desktop notifications | ⚠️ possible via SW | ✅ | ✅ | ✅ | ✅ |
|
|
| Web push notifications | ✅ | ✅ | ✅ | ✅ | ✅ |
|
|
| @mention push | ✅ | ✅ | ✅ | ❌ | ✅ |
|
|
| Channel-wide push (@everyone/@channel) | ✅ | ✅ | ✅ | ❌ | ✅ |
|
|
| Email notifications | ❌ | ✅ | ✅ | ❌ | 🔄 |
|
|
| Mobile apps | ❌ (PWA is target) | ✅ iOS/Android | ✅ | ✅ | 🔄 Flutter alpha |
|
|
| Per-channel notification settings | ⚠️ partial | ✅ | ✅ | ✅ | ✅ |
|
|
| Do Not Disturb schedule | ❌ | ✅ | ❌ | ❌ | ❌ |
|
|
|
|
---
|
|
|
|
## 8. Bots & Integrations
|
|
|
|
| Feature | dumpsterChat | Discord | Guilded | TeamSpeak 6 | Fluxer |
|
|
|---------|:------------:|:-------:|:-------:|:-----------:|:------:|
|
|
| Bot accounts | ✅ | ✅ | ✅ Flow Bots | ⚠️ plugins | 🔄 |
|
|
| Bot tokens | ✅ | ✅ | ✅ | ❌ | ✅ |
|
|
| Slash commands | ✅ | ✅ | ✅ | ❌ | 🔄 |
|
|
| Command options / JSON schema | ✅ | ✅ | ✅ | ❌ | 🔄 |
|
|
| Bot mentions | ✅ | ✅ | ❌ | ❌ | 🔄 |
|
|
| Built-in bot runner (anonConfess, leaderboard, steamfree) | ✅ | ❌ | ⚠️ | ❌ | ❌ |
|
|
| Third-party integrations (Twitch, YouTube, GitHub) | ❌ | ✅ | ✅ | ❌ | 🔄 |
|
|
| Webhook-driven bots | ✅ | ✅ | ✅ | ❌ | ✅ |
|
|
|
|
---
|
|
|
|
## 9. Unique / Differentiating Features
|
|
|
|
### dumpsterChat
|
|
- Self-hosted, lightweight Go + React stack
|
|
- Terminal/Gruvbox aesthetic
|
|
- WebAuthn / passkey auth
|
|
- LiveKit voice integration
|
|
- Built-in bot store + managed runner
|
|
- PWA-first mobile (no native app planned)
|
|
|
|
### Discord / Guilded / TeamSpeak / Fluxer
|
|
See historical notes in git history if needed. Not the product roadmap.
|
|
|
|
---
|
|
|
|
## 10. Infrastructure & Platform
|
|
|
|
| Feature | dumpsterChat | Discord | Guilded | TeamSpeak 6 | Fluxer |
|
|
|---------|:------------:|:-------:|:-------:|:-----------:|:------:|
|
|
| Self-hostable | ✅ | ❌ | ❌ | ✅ | ✅ |
|
|
| Open source | ⚠️ private self-host | ❌ | ❌ | ❌ | ✅ AGPL-3 |
|
|
| PWA support | ✅ | ✅ | ✅ | ✅ | ✅ |
|
|
| REST API | ✅ | ✅ | ✅ | ❌ | ✅ |
|
|
| WebSocket gateway | ✅ | ✅ | ✅ | ✅ | ✅ |
|
|
| Swagger docs | ✅ /docs | ✅ | ✅ | ❌ | ✅ |
|
|
| Docker Compose | ✅ | ❌ | ❌ | ❌ | ✅ |
|
|
|
|
---
|
|
|
|
## Priority Recommendations (updated)
|
|
|
|
**Do not treat this table as a todo list.** For a ~12 person friend server, parity rows are optional.
|
|
|
|
### Actual next polish (product)
|
|
1. Mobile PWA pain (input, notifs, safe areas)
|
|
2. Role color UI / hierarchy polish
|
|
3. Voice PTT / screen share only if voice is used
|
|
4. Small slash toys (`/roll`, `/choose`) if wanted
|
|
|
|
### Real tech debt
|
|
1. More tests on hot paths (permissions DB checker, bot auth)
|
|
2. Keep client permission cache in sync after role edits (partially done)
|
|
3. Deploy docs must name the real unit: `dumpster.service`
|
|
|
|
### Explicitly not critical
|
|
- Friend requests (DMs already exist among members)
|
|
- Native mobile apps
|
|
- Discord bot ecosystem compatibility
|
|
- Server discovery / monetization / federation
|
|
- AutoMod / Flow Bots
|
|
|
|
### Stale claims removed
|
|
- ~~"Direct Messages missing"~~ — DMs exist
|
|
- ~~"Mobile app is the only path"~~ — PWA is the target client
|