We Are Finally Off Discord

We are finally off discord and on a self-hosted system that should be better suited.

By Zed A. Shaw

We Are Finally Off Discord

I have spent the last month researching alternatives to Discord that will suit us better, and I feel I finally have a simple solution that will let people get help with programming while also allowing you to chat about programming. We are going with:

You can try out the new server at:

https://help.learncodethehardway.com/

Some quick notes before I talk about how and why I did this:

  1. Look for the "Join the Chat" and "Join the Lo-Fi Chat" buttons to try the two IRC clients.
  2. If you have your own favorite IRC client then just point it at help.learncodethehardway.com port 6697.
  3. Your IRC client must support IRCv3 and TLS encryption to work. If you use irssi then you need the -tls option or it will fail and probably crash.
  4. Signups are open for anyone, and the chat is very new. I'll be refining it as we work out its quirks and figure out how to run it.

Here's some answers to a few of your questions you may have about this move:

Why Leave Discord?

I've mentioned last month that I want off Discord since it really doesn't fit, and then Discord announced that at the end of this month they're rolling out mandatory ID worldwide. They make a few easily falsifiable claims:

  1. They won't save your ID. So? Once they've fully identified you with the ID they don't need it. They can feed that information to the data brokers run by their investors.
  2. They are only rolling it out for NSFW content. Sure, and they also said it was only in certain regions, so what's to stop them from continuing to expand it?
  3. It's to protect children. Sure, they have totally cared about that this whole time. No, this is purely to identify people to create everything from ad targeting to police state monitoring and censorship.
  4. It will be safe and secure. They already got hacked during the pilot program https://proton.me/blog/discord-age-verfication-breach

Given the urgency of the problem I had to speed up my timeline to get everyone off Discord and make that a priority. I also have felt our situation doesn't really fit Discord's model.

How Did You Move Everyone Off?

I actually didn't. The problem is that if I close the server then someone else can come behind me and start a new one, which would give them the ability to take advantage of anyone thinking it's me. Instead of closing it I did this:

  1. Spammed everyone with annoying @everyone this week so they knew the server was closing and left the server on their own.
  2. Deleted all the channels except #this-server-is-dead.
  3. I'll later take the time to ban everyone, but I'm not sure if banning someone will be a hit on their reputation.

I highly recommend that you get off Discord too.

What Did You Try?

Here's a list of each thing I tried and what I found out:

  1. Stoat -- They bit off way more than they can chew by trying to create a full Discord competitor, rather than a Discord exodus system. This means that you don't just get a single community server that you self-host. No, you actually get a whole Discord that anyone can join and start making their own Servers (that are inside a Server so that's logical). They also copied every dumb UI idea in Discord they could, like Servers have Servers and Right-Click-Mystery-Meat UI. I'd say if you are a large org with a lot of servers then Stoat may be for you. If you're one community who just wants your one Server (in Discord's Server) then Stoat will be a nightmare. Also their install instructions are plain wrong in a few places like Docker install (just use Docker's install instructions).
  2. Zulip -- I didn't explicitly set this up, but did try the demo, and I will say it is probably nice if you're a user of Slack for work purposes. It's way easier to catch up on conversations that happen async. For the purposes of helping students I don't think it'd work as well, since a big motivation for getting off chat is to have a collection of knowledge build up over time from QA. I also don't really want to host any more Python web apps since managing them is far more difficult than a similar Go app.
  3. Apache Answer -- This is a Stack Overflow clone that's far simpler and works as the usual gamified QA site. I'm not so interested in the gamification, but the QA format tends to work better for...answering questions.
  4. ErgoIRC -- This is a very modern very well done IRC server written in Go. It supports nearly every modern thing you'd want, from IRCv3+TLS to SASL and JWT authentication. It also features built-in things like ChanServ, NickServ, channel ownership, and admin rights.
  5. Discourse -- I ran discourse before and it's got serious problems with how it does upgrades, and I don't particularly like the forum model. The main problem with Discourse is the update process frequently fails because they went Rails-Crazy and use every single thing Rails has plus extra, so updates will often have slightly wrong versions, schemas don't update, etc. I find this is true with most "Docker Only" software.
  6. RocketChat and Mattermost -- Looked briefly at these but they look like they're really just Military contractors and probably not open source anymore.
  7. Campfire -- Seems to not be maintained and I'm not using anything by DHH.
  8. Galene -- This one's pretty interesting, but it's more for virtual video/audio lectures than say a replacement for Discord. I'd say if you use Discord for the video/chat then check this out. Also in Go and super easy to setup. I might use this in the future for live classes.
  9. Matrix -- I predict Matrix is going the way of Discord, but also it looks way too hard to manage. I'm looking at hosting at most a few thousand people, not an entire federated community of millions trying to run various dark web operations.
  10. Mumble -- Looked at this briefly but not really what I need. As mentioned before, a key thing I think we need is collected persistent knowledge. I could see Mumble working for a kind of large scale "phone in class" of sorts?
  11. XMPP -- Another solution I'm not particularly interested in hosting. All of the servers seems really weird to run, and seems to be overly complex, however if the ErgoIRC chat server doesn't hold up to use then this would be the 2nd thing I try.
  12. Jitsi -- I tried this a while ago and it mostly also doesn't fit what we need. It's more of a Zoom replacement, so if you rely on Discord's voice/video chat then check it out.

If you want a big list of alternatives then check out this wiki:

https://wiki.alopex.li/DitchingDiscord

Most of what's written here matches with my experiences, but I highly recommend you actually run things to see how they actually deploy.

What Did You Choose?

In the end I went with Apache Answer and ErgoIRC. Both are very easy to setup, with ErgoIRC being the standout so far. Here's my detailed thoughts on each:

How Is It Setup?

The setup is very simple. If you go here:

https://help.learncodethehardway.com/

You can signup and ask a question. It does require verifying email, but that's all. I've configured it so anyone can ask, but only very high reputation people can manage.

On that page you'll see two buttons labeled Join the Chat and Join the Lo-Fi Chat. These will take you to a simple Gamja WebIRC chat client (lo-fi) that's ultra small and works on anything, and a big React based but nicer looking ObsidianIRC chat for those of you with billionaire level computers that can load a 3.5MB React app (300k compressed).

Next, the IRC is on the same host, but uses IRCv3 with TLS. So, point your favorite IRC client at help.learncodethehardway.com:6697 (that's port 6697) and it should just work. There are fixed channels for each topic and I'll be controlling them, but if you have a suggestion just mention it to me in chat. I'm zed on the server and should own every channel.

The ErgoIRC server supports registering your name with a password (that's encrypted with bcrypt or similar) so you can use this to complete your registration:

/ns register <password>

To register and reserve your name. I'll have a whole guide on IRC shortly with links to information and how to use it. For most people just join the WebIRC client, pick a temporary name, and ask your questions.

Why Apache Answer?

It's the simplest solution that will work, and being in Go means I can fix it, alter it, or replace it easily.

Why Ergo and Why IRC?

Everyone I mentioned IRC to really raved about it and a ton of existing programmers are all using IRC. It's kind of got that "Hack the Planet" aura as the kids would say, so I think it'll set the right tone. It also doesn't support images and that will probably make it easier to host and manage.

Ergo is also amazing software so far, and being written in Go means I can hack on it and make it do new stuff if I need, but honestly I can't think of too many things I'd need to do to it. Ergo's good stuff.

How Do I Report Problems?

Reply to this email is probably the best currently, but I may be in chat as zed. If you have a question on how to use things then go ahead and use the Answer system to ask.

Coming Soon!

Finally, stay tuned for another email next week announcing a few simple changes to the UI of the site to prepare for the "Big Rewrite" coming soon. I plan on doing a full rewrite of the site from JavaScript to Go and recording the whole process so you can watch it to see how I'd do it.

Conclusion

Hopefully that answers questions you have and I'm looking for feedback on the chosen projects. I'm also contemplating starting an open source project that's only open to beginners to recreate the WebIRC chat front-end and the Apache Answer server. If that sounds interesting, let me know as well.


More emails we've sent.

The Great Rewrite Announcement

Announcing the Great Rewrite and some small changes to the UI.

UpdatePublished Feb 23, 2026

We Are Finally Off Discord

We are finally off discord and on a self-hosted system that should be better suited.

UpdatePublished Jan 18, 2026

2026 Winter Sale Almost Over -- Save 15%

Winter Sale Almost Over -- Save 15%

UpdatePublished Jan 14, 2026

2026 New Year Sale, and A Ton of Videos

First batch of Learn Go the Hard Way Videos are Live

UpdatePublished Jan 1, 2026