It’s the single most battery-unfriendly application I’ve used
I regularly spend entire afternoons on Teamspeak, and coast in to bedtime with a minimum of 40% battery. I joined a discord voice call mid-day for 2-3 hours and had to find a plug before it was done.
If you’re in a call (not a voice chat), you can’t disable video or webcams on all platforms. Your device is receiving and decoding every frame, whether you want to burn bandwidth and battery on that or not.
Linux is an afterthought
Anyone who uses discord on linux has probably seen the screen that says you must install an update before using application, and offers you a .deb or a .tar.gz. I don’t want either of those, I want you to support the old version of the launcher for an entire week until it’s updated by my package manager.
Application streaming on Linux doesn’t capture audio, even with pipewire, so if a friend wants to watch my game I’m forced to use OBS to stream to Twitch.
Some features are also missing on linux, like Krisp, which is really annoying because…
There’s no echo cancellation
Yes, there’s a knob for it in settings, but what’s it cancelling? It doesn’t open an audio session to monitor your actual audio output. The most it can do is cancel itself, which is insufficient when someone is playing a game or music.
(Okay, they finally fixed the “Noise Reduction” knob on Linux. I haven’t evaluated that one yet. Until recently, it couldn’t be enabled because Krisp was enabled. Krisp isn’t supported on linux any more, so there was no knob to disable that so I could enable NR.)
Bad noise reduction
I don’t know how good Krisp is, because again, it’s no longer available on linux. The non-Krisp noise reduction is so bad that half the time I’m in a voice chat I run discord’s output through RNNoise.
There’s no auto-gain
Again, there’s a knob for it. It’s never been useful. Every time I join a voice chat I have to manually adjust every user’s volume to match - or try, anyway. There’s one person who at 200% is consistently half the volume of another person at 95%. That “200%” also seems to be linear, not logarithmic like it should be.
Low bitrate audio
Unless you pay monthly to boost the server.
Low bitrate video
Unless you pay monthly for nitro or to boost the server. Have you tried to watch someone play a game with a lot of motion or particle effects over discord? It’s bad. This is less annoying than audio, since video can use a nontrivial amount of bandwidth, but it’s still a terrible experience for casual (not worth $5/mo to me) users.
More money-grabs
File size limit is 8mb! That’s fine, compress this to hell, it’s just a video of a dog. Oh, the client can’t compress video at all. Well, that’s somewhat understandable, I’ll do it myself. While I’m working on that, here’s an image! Over 8mb? You mean the client can’t even compress images?
Make a service I enjoy using and want to support and get more features in, don’t try to piss me off until I give in and pay.
(Update: The client can finally (sometimes?) compress images 🎉🙄)
Nobody at Discord has ever used their android app
- The push-to-talk button is tiny, and deactivates when your finger slides one pixel away from it. I rarely get an entire thought out on mobile without having to repeat something. You have to stare at it and monotask to make sure you stay aligned.
- The app has an overlay! Which shows the last person to talk, neat. And does not act as a push-to-talk button. Why? I don’t want to be stuck in the Discord app to be able to talk. Teamspeak for Android has had this for as long as I’ve used it.
- That’s alright, I’ll just use vox and toggle mic mute with my headset button. Wait, no, it doesn’t support hardware buttons at all.
- The aforementioned battery-burning behaviors.
- No indication whatsoever that you have someone muted, until you open their user detail page.
- 2022 update: The Android app is now the iOS app, and somehow worse! None of the problems are fixed, and exciting new problems are added.
Garbage VOX
There are several techniques to make VOX (voice activation) better at activating for human voices while disregarding noise.
- Use RMS instead of peak volume
- Run noise reduction and echo cancellation before VOX triggering (uses a bit more cpu/battery)
- Use filters to primarily watch human voice frequencies
As far as I can tell, discord does none of these. At least there’s a hang timer (“release delay”), I guess.
No support for identities
Most apps I use have support for multiple identities/accounts. I have one Google account for professional stuff, one for personal stuff, and another for many communities I’m part of. Same for Twitter, Telegram, and others.
This is not possible on Discord. To use a different account you have to sign out (which discards all of your settings and obviously stops notifications) and sign back in to the other account.
You can set different display names in different servers, which is better than nothing, but doesn’t approach the privacy offered by distinct accounts.
Text chat is Not Great
“50+ new messages since 5:11 PM on August 10, 2021. Mark As Read?” Sure. Now they’re marked as read, but I still have to manually scroll down? Okay…
The unbounded line length makes it hard to read. You can’t arrow-key between images. You can’t upload more than one image at once or send albums… except from mobile?
There’s a lot more that makes text chat weird and annoying for me, despite using Telegram a lot and growing up on IRC, but I can’t easily put my finger on it so eh.
Bugs 🪲
The desktop app is electron, and it shows. It’s not well-integrated into anything, and a lot of it behaves differently from how you would expect. I somehow end up selecting the entire picture overlay constantly?
It also sets itself to start when Windows starts, and as of my last Windows reinstall, the knob for disabling that still did not work reliably. I reported this and was told ~“prove it”.
It’s not a good or consistent UX
For servers, why is there both a right click menu and a down-arrow menu? They’re formatted differently and contain many (but not all) of the same items.
Instead of making a video stream full screen, double clicking… switches you to viewing another random user’s current activity (first click goes to VC panel view, next click opens someone’s stream/icon).
Most servers I’m in have both a #general and a 🔊General. I’ve lost count of how many times I accidentally joined a VC that way. That should require a double click or a confirmation, imo.
The UX for sharing things to discord on mobile is horrid, especially on Android. There’s a list of recent channels you’ve (spoken in? shared to? 🤷), but besides that, you need to type the channel name - no ability to manually select the server/channel at all. The server name is also in small, light-grey text, which is both not accessible and really damn annoying when as I said every server I’m in has a #general.
Oh, if you quit discord, the next time it starts (and I’ll remind you that it autostarts by default) it drops you back into VC, with your mic live if VOX is enabled, which is exactly the privacy-respecting behavior I want from my chat apps.
Why do right click menus not close when I click in another window, like everything else on my system?
Have you ever tried to make the discord window small so it could be tucked in a corner of your screen but you could still see what’s going on? It’s Very Bad.
I think they finally made clicking the “incoming call” notification focus the Discord window, at least.
What the fuck is going on with notifications?
Neither I or anyone I know has gotten discord’s notifications and unread bubbles to do exactly what they want. It’s an infuriating mix of very granular (server default plus channel overrides, all/mentions/nothing? Cool!) and “you can’t do that”. It can also be annoyingly difficult to figure out what caused a notification sound.
Cache Location
There’s a correct place to store cached data on linux: $XDG_CACHE_HOME
(usually ~/.cache/
). So naturally, discord stores its cache in ~/.config/discord/Cache/
.
Reporting Spam
Have you ever gotten spam on Discord? Have you ever tried to report it? Unless you’re on the right side of a very long-term A/B test, you’ll need to find the instructions and fill out their web form which doesn’t even make clear that it’s where spam should be reported.
Client-enforced access control
You can see all channels, including those you shouldn’t be able to, in the client API.
Modded clients not allowed
So you want to fix some of these annoyances? Want to make the client better-integrated, more functional, more accessible? Just use the client plugin API! Just kidding, fuck you, try it and we’ll ban you. See: Cordless, Ripcord. Discord banned the Cordless devs. https://twitter.com/atomicthumbs/status/1487918009943408642
Events
Events are not available to all guilds… Fine, fine, staged rollout, whatever. But events don’t notify me when they start, even though I’ve explicitly “I’m interested"ed them.
Phone Verification
It’s becoming increasingly popular for guilds to require accounts to have a verified phone number before participating. I’d really prefer discord not have my number, but okay, spam prevention, whatever.
… It doesn’t accept my primary phone number, which I’ve been using for a decade and a half, because it’s Google Voice.
My cell service phone number, which I use for nothing, changes every year or so when I switch carriers. So my options are to use that and hope I remember to remove it from discord so as to not give a random person access to my account, or to be permanently unable to participate in those guilds (including several like Hacktoberfest).
Particularly fun since my Discord account has a verified email, has never had any complaints against it and is probably older than some Hacktoberfest participants by now.
Opinionated complaints and miscellanea
- Can’t run my own server
- I’m glad they’re mostly fucking off with the memey bullshit
- Stop calling them “servers”, they’re not servers. Go back to the internal name, “guilds”.
- When my internet dies, it just constantly plays the “connected” then “disconected” sounds. STFU until it’s actually back.
- The right click menu works differetly from every other application. Normally right clicking and holding it until you’re over the option you want then releasing activates the selection, but in discord, you then need to click it again. Also, right click menus don’t close when focus changes.
- I want to be able to hide my muted channels. If I’ve muted 10 of the 12 channels in a group, I don’t want to waste 10 of these gratuitously-padded lines on those channels. If they allowed client modifications, this would be a trivial CSS rule.
- There’s no way to see how long a user has been idle, or whether they disconnected/quit manually or timed out
Things I actually like
- Spoiler markup that includes media and link previews
- That one blog post about Go vs Rust
- Best “I blocked a user in a group chat” UX I’ve seen - Telegram, please take a hint.
- discord.py is pretty good (oops, Discord pissed off the maintainer so it’s abandoned now 🙃) (never mind they decided to kill their existing API early so the maintainer went “well fuck. augh. I guess I shouldn’t abandon the entire python discord bot ecosysytem to that bullshit.” and is back)