A critical look and overview of chat apps (Part 1)
Sorry for being slow on this post and updates in general. I’ve been feeling pretty depressed and stressed out lately and have been dealing with work and future plans. Not to mention I was sick for a few days from food poisoning. To make up for this, this post and the next one is much longer. I’ve also been doing commits on the dev branch of the repo. If you want to see it (along with rough drafts of posts), it’s public on dev.ggtyler.dev
- Brand Kit fully completed
- Credits page added
- Astro updated to v2
- Also updated all dependencies
- Make Theme Switcher follow Backslash design standard
- Proper description on 02/12/2023
- Various minor style changes
When you think of chat apps, what’s the first one that comes to mind? Probably Discord. Maybe Skype, MS Teams, Slack, or TeamSpeak, depending on where you come from. Maybe even Revolt, Matrix, or IRC, if you’re more into tech.
But which one is best? And better yet, why is there so many of them?!
…Capitalism. That’s why. Okay, bye!
Okay, but seriously, which one is best? Obviously there’s differences between all of them that better suits other kinds of people, such as business and gaming, but objectively speaking, what’s the king of chat apps?
Well, based on popularity, it’s probably Discord. (Really it’s WhatsApp or maybe WeChat but we aren’t counting strictly text apps.)
Discord is great. I’ve been a user since Jan 2016, about 7 months after it was made public. It has an intuitive yet accessible UI, has tons of features, especially if you use BetterDiscord, and is used by pretty much every tech / game / internet related community. I love it.
Unfortunately, Discord is far from perfect. Under the hood, Discord is kind of a nightmare. All of their current clients are made in React, a UI framework for HTML/CSS/JS. Non-web clients are made in Electron or React Native.
The problem with React (and web-based Desktop frameworks)
React isn’t exactly bad. This site uses a little bit of it, and for websites, it’s perfectly fine. Although, nowadays, it’d be best to either use Astro (to be able to use other frameworks and for client-side performance and loading), or to use a more performant and reliable framework, like Vue, Svelte, or Solid.
But for desktop and mobile, web-based apps are a worringly common practice nowadays that significantly hurts system resources. If you thought Chrome was a RAM hog, try and imagine every single app you use running a completely separate instance of Chrome. That’s essentially what the industry is currently heading, and Discord is one of the major apps doing this.
If you’re new to programming, or you or your company doesn’t have enough resources, it’s perfectly fine to do this. Making a new, separate program can be difficult and time-consuming, especially for Desktops. The problem is, Discord is definitely not a new company, and they certainly have more than enough resources. In fact, they HAD a native version at one point - the Android app was completely native, and worked perfectly fine, if only a little late on updates. But ~7 months ago, they switched to React Native for that platform as well. They even made a press release for it.
This is, by far, the worst update they have done. The new version is far more buggy, laggy, and overall worse than the previous version. If you are using an Android device, I strongly encourage you to either rollback the app, or to use Aliucord.
What I still don’t understand to this day is why they went with this, especially when they have enough resources to make entire party games and a framework specifically for handling them. Obviously it’s behind Nitro, but still. Speaking of which…
The problem with Nitro
Now, obviously, Discord needs lots of money to run. They have thousands of server nodes and possibly hundreds of employees. But Discord frequently locks highly requested features (such as a higher server limit, or soon, custom themes) behind Nitro, a monthly subscription that gives you more features. They can also add or remove features at will.
A few years ago, Nitro also acted like Game Pass, where you get a selection of games along with the other Nitro features. This isn’t like the recent Activities (party games in VC that can be activated by someone with Nitro), these were actual games.
Discord cited a lack of use as the main reason, but this is clearly false - everyone I knew who had access to this used it, and absolutely nobody was happy with this announcement. What makes this even more insulting is that after this happened, they announced Activities, which is effectively a replacement of this (and music bots.) Not only was this costly since they not only developed the framework for this, but they had to make these games from scratch. And barely anyone uses it.
Disc’s Misc. other problems
There’s much, much more problems, but it’ll take forever to talk about all of them. So we’re going to quickly talk about a few of the more important ones.
- Discord’s theme change in 2022 is horrid.
The new logo is fine, but the logo font is garbage (and used to be in every single channel/server name in the app before Discord started using their own font) and the colors can cause problems for some people. Also, it doesn’t even pass accessibility tests, which was the entire point of having new colors.
- Discord has a love-hate relationship with Developers
While Discord has done a lot for developers (hell, one of my first projects was a Discord bot), they’ve also made several choices that directly go against its devs, like how bots can no longer read message content without specific access by Discord (or its in < 100 servers), how bots needed to be reinvited for slash commands, and how custom clients are constantly being threatened to be removed or broken.
- New features attempt to kill partner apps
Discord recently came out with an App Directory, which, while a nice feature, is going to kill sites like Top.gg. These sites mainly have bot listings and is going to be a direct competitor with Discord’s built-in directory. Obviously it’s better to have this directly in the app, but multiple people rely on these sites for an active income. Not only does this affect the staff, but top.gg has a custom ad setup where people bid specifically for that site. No Google Ads or anything like that. Multiple devs, sites, and others rely on these ads due to the unique market. In fact, I personally know two people who use them, and one of them happens to be the server hoster.
Discord is also working on clips, which will be directly competing with Medal, a service made by the same people from Top.gg. So not only are they trying to kill bot listing sites, which is where Medal gets the majority if not all of its income, but they will be actively wiping this team off the planet with clips.
Discord is also working on Client Themes for Nitro, which will be replacing a core feature in client mods like BetterDiscord. Which, speaking of which:
- Client Mods and Custom Clients are constantly threatened
BetterDiscord, along with other clients (like Ripcord, Vencord, Aliucord, Shelter, and more) are against Discord’s ToS. This is because they have the ability to run client-side scripts, which allow you to abuse Discord’s API and see usually private information, like Experiments, hidden channels, and a user’s client. This always perplexed me since this is also possible in normal clients. Like I said, they’re basically just browsers, so if you knew how to do it, you can run scripts on a normal client.
Themes are a main feature of these mods as well, and this is also possible with the Stylus extension. But for some reason, some people REALLY hate those who use these. I’ve seen multiple people (including myself) get banned for just sharing a screenshot with a custom theme. Keep in mind, this is possible in browsers and does not immediately indicate that someone is using a modded client. In fact, Opera GX has made custom themes for Discord, with full permission from them.
And Discord hasn’t forgotten about them. As of writing, they’re now rolling out a selection of themes for Nitro users. This is a worrying change - if this was a feature available for everyone, it would be fine and a great inclusion. But they chose to paywall it, which could result in custom clients getting taken down and its users getting permbanned. They have never done these before, but this is the first time this is really possible.
And it’s a shame - these clients offer tons of quality of life features that Discord hasn’t added in its 7 year existance. There’s also a few lightweight clients, like Ripcord and Swiftcord, that are completely native. If they get taken down, I’m sure tons of users would not be able to use the platform anymore.
Okay, okay, I’ll stop there. I could honestly go on and on about Discord, but this is an incredibly overdue article and I have a lot more to go through.
Originally, I was going to talk about a bunch of other platforms, such as Revolt and Matrix. This was before I got caught up and the post became over a month late. So instead of delaying it anymore, this will be a two parter. In the next part, I will be going through each of these platforms, discussing its positives and negatives, and finally ranking them.
Again, if you’re interested in seeing it early, make sure to check the dev branch every now and then. If you’d rather not read unfinished stuff, it should be out next week, if not, then in 2.
Thank you for being patient and reading through this. I’ll see you all soon™!