Largest challenge nowadays is just getting someone to use it.
I've run a server for the past few years, and I plan to continue for the foreseeable future. And of all the things that lead to an issue, its just getting someone to not immediately throw their hands in the air and flop around. It's not hard, and I'm fully willing to help those people, yet for some reason, it never sticks.
I don't even know if a lot of people these days can grasp/enjoy the concept. I don't know of any popular social media that just throws you into a community of people that don't know, except for Discord, which still has a way different feel.<p>It's strange, and there isn't much I would say I could do personally. But I'll keep my server going as long as I physically can, out of stubbornness if not anything else.
Interesting to see how this compares to how we run things for EsperNet.<p>- We don't use much cloud technology at present. That means we run our own DNS nameservers (using PowerDNS and a single MySQL node - AXFR and slave nameservers give us redundancy [1]). We implement Let's Encrypt renewals on top of this using the DNS challenge and have some custom software to securely push certificates to the IRC servers. This keeps costs down.<p>- We've replaced our old Iris webchat with The Lounge in public mode, which is fully containerised.<p>- We have some additional infrastructure for staff: our LDAP directory, an IdP which runs on top and provides SAML & OIDC auth, Git for code and some internal web services for pooling/depooling servers and monitoring.<p>- Some of the staff have written services and IRCd modules to help control spam and support connection limit exemptions (for e.g. bouncers).<p>[1] This allowed us to continue operating with no user-visible impact when we had a hardware failure on the primary DNS box.
> Unfortunately, no workable solution for mobile connections has been found yet.<p>I've come to the conclusion that trying to get the irc protocol to handle this is a dead end. A better solution would be to make the server handle multiple protocols. I'm using quassel for over a year now, and it makes irc usable from mobile. It does so by being split into a core and a GUI, so basically like a bouncer, but the protocol between them is designed from scratch, to handle connection drops and even connecting with multiple quassel clients to a single core while syncing up everything properly.<p>Now the big question would be if it were feasible to support the quassel protocol directly on the irc server, in parallel to irc. This way the hardcore irc fans can keep using it the way they always did, while at the same time making it easy for the kids these days to get started, by not having to set up a quassel core somewhere first. Just grab the app and go.
Containerising the IRCD would probably broaden the pool of people willing to host the network, due to not needing root on their boxes anymore.<p>Shameless plug for anyone who just wants their own IRCD: <a href="https://github.com/LukeB42/Psyrcd" rel="nofollow">https://github.com/LukeB42/Psyrcd</a>
For me, a major pain point about IRC is that I, as a user, need to use a bouncer in order to not miss messages. And even then, you still risk missing <i>some</i> messages if the bouncer needs to disconnect from the IRC server (e.g. due to updates to the bouncer software or to the hosting OS).
As a client I've been happily using <a href="https://www.irccloud.com/" rel="nofollow">https://www.irccloud.com/</a> for the last few years. Does what I need: decent mobile and web client.
If the problem is that Slack/Discord are proprietary, isn't the solution to build an FLOSS alternative to Slack/Discord that anyone can run a server for? Do such projects exist?<p>While I loved using IRC 10-15 years ago, the user experience is simply terrible by our standards today (and adding emoji reactions isn't going to solve that imo).
"Until about a year ago, we instead used a self-hosted PowerDNS on the back-end. PowerDNS was backed by a MySQL (later MariaDB) database. MySQL/MariaDB had been chosen for its support for streaming replication."<p>This is completely unnecessary (to say nothing of how MySQL silently corrupts data): PowerDNS can be configured for regular AXFR's between servers and that works exactly as one would expect, irrespective of what the back-end storage engine is.<p>The most effective, simplest, robust and therefore cheapest way to run PowerDNS is with the SQLite back-end as the storage engine and AXFR's between master and the slaves configured (PowerDNS BV run it with SQLite themselves); this inter-database replication is nonsense, just asking for trouble due to fragility and complexity. When I see such crazy unnecessarily complex solutions, I often wonder: what the hell went through those people's minds? Aren't they able to reason it out logically? What the hell were they thinking and why the hell were they thinking it??? This solution is so irrational, that it has to be ignorance.