Discord vs IRC Rough Notes
Lobsters has had a chat room on Libera Chat for 9 years today. Lobsters itself is 12, and I see Libera Chat as continuous with a rename a few years ago.
There’s a more thorough description but #lobsters has three big purposes:
- share a feed of links and have a lighter, ephemeral discussion on them
- give potential new users a place to connect to existing ones for invites2024-08-08: To make an implicit value explicit, a big value of the chat is that it keeps our border a little porous, it helps Lobsters avoid becoming stagnant
- some off-topic chat and community bonding
So we care a lot about text chat with a bit of custom functionality and a great new user experience.
IRC is no longer a good experience for new users and
a couple times a year #lobsters rehashes a discussion on IRC’s features and prospects.
I finally realized I should collect my notes/logs into something linkable even if it’s only a braindump.
- Most of this is me comparing Discord to IRC because it’s the alternative that’s most-used by current chatters, but the Rebuttal section is pretty universal to any discussion of IRC’s shortcomings.
- I’m not seriously considering moving Lobsters chat to Discord, and the possibility is less attractive now that I’ve collected a list of its problems, which has built a compelling case it’s a bad culture fit.
- This is all pretty rough and contains a significant amount of frustrated venting.
- Items are not in priority order.
- Nothing here is urgent.
- We’ll use a chat for decades so any decision is less about current parity and more about trend lines.
- I’m compiling many discussions so we can rehash less in the future, whatever happens.
Desirable Discord Features
- good new user experience
- GUI
- familiar signup
- if user already has an account, joining server is a link to a one-click join dialog
- scrollback on join so the channel doesn’t look dead unless the new user joins in the ten seconds before an existing user hits enter
- doesn’t leak IP
- desktop streaming (1080p)
- I want to resume streaming Lobsters coding + office hours (esp for queries)2024-10-15: I’ve been streaming as hoped for a few months.
- My attempts to contact Twitch eng about their login bug failed 2024-07-18: Found it: Twitch’s login is broken if Firefox’s fingerprinting protection is on. I have to make a separate profile to use on-stream anyways, so it’s easy enough to leave off there.
- text formatting: links, bold, underline, italic, code blocks
- security - MFA, alert emails, active login list
- message editing
- emoji reactions (and allergic users can hide them)
- mod tools
- reasonable banning (+b is garbage; separation of kick is misdesign)
- no @ on mod names (https://libera.chat/guidelines/#channel-operators-are-users-too)
- highlight/filter on keywords w great default lists
- many high-quality 3rd-party tools (eg https://carl.gg/)
- public modlog (might req carl.gg, I forget)
- mobile app
- good UI for muting channels/groups/users
- threads for breaking out overlapping/side conversations
- good user docs with screenshots
- per-server user profiles w bio, links
- I can pay for it and it improves over time
- can oauth to link account from lobsters profile
- file attachments
- higher discoverability/much better new user onboarding
- #lobsters gets traffic from being ~25th in libera’s webchat top channel list
- but discord is staggeringly popular and has 3p public directories
Discord Downsides
big stuff, potentially blockers:
- might not be able to disable donations (reasoning)
- mobile client sends a notification by default for any activity
- painfully user-hostile and inappropriate for Community Servers
- slow even for a desktop GUI
- a loading interstitial! takes seconds on a fast connection and powerful desktop
- changing servers/channels takes x00ms and regularly much more
- animated placeholders during delays
- mobile app is noticeably slower at everything
- countless distracting animations, mouseover popouts, and mystery meat
- broken activity UI
- not clear whether a channel is selected or has activity, both use bold
- very flaky about marking channels as read (much worse on web than mobile)
- messages from blocked users still highlight channel as active
- actively hostile to 3rd party clients/general hackery
- a serious culture clash that prompts most of the UI problems
- Discord is oriented to mass-appeal to passive consumption of games, gossip, and memes
- Lobsters is about creating, learning, sharing experiences/expertise
smaller stuff, antifeatures:
- no active ruby bot library
- so almost every integration and workaround requires a 3rd-party service
- I’m sick of trying to keep a js service running, but maybe I’m just underwhelmed by the IRC library
- 355e3b notes webhooks get us ~all current functionality so I demoted this out of blockers
- threads/replies are clunky af
- feels like they were bolted on the UI and never really integrated; even slack is better
- much more spam
- stickers, inline images, animated emoji, link preview cards (can delete by bot)
- intrusive upsells in clients (these go away on paid servers, right?)
- can’t turn off external link warnings even solely for our own site (sharing links is a core activity; we have sophisticated users)
- big company support (vs a libera admin is a lobsters user and active in the channel)
- forum is overwhelmed by support requests/mental health crises
- no chance of reporting bugs or influencing features
- complicated subscription structure with unclear pricing (but probably <$20/m)
- users can’t export logs
- no TUI
- no Reactions page collecting emoji reactions to own posts
- can’t disable X integration on profiles
- it’s so slow I have to list it a second time
IRC Rebuttals
- Fix/script your client
- This is “baby why do you make me hit you” levels of helpful.
- I would rather have one reasonable UI than have every user fail to reinvent the wheel.
- Bad out-of-the-box UI is why IRC has rounds-to-100% new user churn
- So the server/client split…
- I am a user, not an implementer. This is a technical decision that seems to have permanently hamstrung development.
- It’s about as interesting and useful as a customer support line that refuses to help because you have the wrong department.
- Nickserv/chanserv/etc
- Bolting on features/services via chatbot is powerful but bad UI (even when Discord does it!)
- The big difference is that IRC never integrates these into the core product
- IRC is open source/open standard.
- It’s nice and I’m willing to take a haircut for it, but I’m ready to take off the hair shirt.
- But maybe being a protocol instead of a product is why it’s so far behind and not improving.
- IRC is volunteers/PRs welcome
- IRC is a heroic accomplishment and should not be one
- My time is more valuable than my money. For our non-toy usage $50/month barely registers as a cost.
- Especially compared to the cost of joining a multi-stakeholder consensus-mandatory process about the redesign of legacy software.
- IRCv3
- Mostly technical underpinnings with little addressing the feature gap.
- IRC is not closing the gap. Discord is very actively widening the gap.
- Discord is a single service run by a VC-funded business
- Lots of big, familiar privacy/sustainability/control risks here
- This also prompts lots of the UI problems
- VC B2C orients to growth metrics, so quality will nosedive hard when growth plateaus and the established processes can’t adapt to that “failure”
Underinformed Pontificating
Libera Chat isn’t at fault, incompetent, foolish, or anything else negative. Neither is the broader IRC community (well, aside from that one infamous guy, who is all of those things and more).
Most of IRC’s problems are structural. Network effects make chat valuable. But feature development has stalled beacuse it’s brutally hard to reach consensus. Maybe email and the web managed it because of competitive commercial use. Maybe the protocol isn’t as extensibile because it’s not as forgiving of unsupported features. There’s probably an amazing book waiting to be written about how open protocols and standards thrive or die.
Text-oriented group chat has products like Discord, Slack, Zulip, WhatsApp, Telegram, Messenger, WeChat, iMessage, GChat, Skype, Teams, Kik, Mattermost, Snapchat, Wickr, and then, you know, some small ones that only have tens of millions of active users. Nearly every human with a phone uses at least one. That’s a lot of room for open source and standards, and IRC seems to have attracted and extinguished potential development. Maybe the pressing thing to design is not a revised protocol but a process for sustaining consensus over revisions.
2024-07-12 Edit: Chat discussion has pointed out to me that Matrix is an open standard. I really only know it from the not-so-pleasant bridge to Libera Chat. I feel pretty good about putting “underinformed” in this section heading.
2024-07-26 Edit: When I published this blog post, the feed-reading bot shared it in the Recurse Center Chat. I had wandered away from it after my batch, mostly because Zulip was unpleasantly slow and janky. That’s been fixed in the years since, it’s a smooth and polished experience. I think it has all of the features listed here and none of the downsides (even an official TUI!), this is a plausible alternative. Zulip 9.0 was released today.