Live data from Hacker News

Ergo Chat – A modern IRC server written in Go

github.com

141–150 of 163 posts

Re: Ergo Chat – A modern IRC server written in Go

#141
post #132
post #2

I've been running Ergo for the past year for my friends/family chat. I went this route because of the ease of hosting, very low resource requirements and a protocol and codebase that I feel I can understand and debug if needed. The v3 chathistory support and the always-on[1] multi-client[2] features paired with modern clients (like Goguma) go a long way at providing a modern chat environment. Most others on the serve…

You must have a truly mind-boggling amount of social capital to be able to switch your family/friends off of a mega platform like Discord or WhatsApp. Do you just onboard every single person who wants to talk to any of them also? Or do they see your system as "how to reach donio"

You'd be surprised how easy it is to move a group chat to a new platform. Often you'll need to run a couple through, but people expect to be on multiple platforms.

Re: Ergo Chat – A modern IRC server written in Go

#142
post #116

IRC is often romanticized, but after working with its protocol spec, I found it rather unsavory. Its unstructured message format looks like this: :User1 PRIVMSG User2 :Hello, are you receiving this message? While this might look fine at first glance, the lack of more regular structure caused issues. Some messages are easier to parse than others. Each implementation introduced quirks and variations, creating countless…

Something a little more tightened up might be nice, because who likes scanning for line endings, when you could have a byte count, and what's up with the colons, and while you're there, might as well have a single byte command, right? But preferably without having seven layers of byte counts, like TLS. But from my recollection of writing bad IRC client in the 90s (including in mIRC script after they added support for…

> including in mIRC script after they added support for sockets in the scripting language in mIRC v5.3 released December 1997

You could write your own servers and services too :). My mIRC scripts all had s:lines on my network, all running in my mIRC (NoNameScript) environment, which I'm sure were on Hawkee somewhere.

Re: Ergo Chat – A modern IRC server written in Go

#143

Earlier quoted context omitted.

This is not a feature, this is a limitation. It would've been a feature if Signal offered you a choice of whether the history should be synced up or not (perhaps with a default of "no" for existing users, to maintain the established expectation). As it is, this is a limitation.

In order for Signal to provide this history, said history would have to be stored on their servers, massively nerfing one of their core competitive advantages. This “limitation” is the ultimate advantage from the perspective of Signal’s core competency.

Does Signal, in fact, enjoy any competitive advantages?

Where I live (Canada) only a single person I know uses Signal. Everyone else is on Whatsapp and/or iMessage. As far as I am concerned, Signal is a wasteland.

I have received 400% more spam on Signal than I have received real messages.

Re: Ergo Chat – A modern IRC server written in Go

#144
post #122

Earlier quoted context omitted.

The protocol isn't really an issue for the use-case you talk about. I founded the Snikket project, which aims squarely at the family-and-friends use case you mention (after all, it was made to scratch my own itch - my family's excessive use of WhatsApp for communicating with each other). I can tell you that my family don't care a bit whether Snikket uses IRC, XMPP or Matrix or some real-time Gemini equivalent. There…

Hey, your project looks interesting, thanks for building and sharing it. One question: are you aware of Jami[1], f.k.a. Ring? If so, how does it compare to Snikket? I see that Snikket requires a server, whereas Jami is P2P. The benefit of a server is probably that messages can be stored centrally and not on each device. But I can see pros and cons of either approach. [1]: https://jami.net/

Hey, thanks! I've been into messaging for quite a long time - network protocols and particularly those involving online communication are among my favourite tech topics :) So yeah, I follow various projects.

You're right that there are pros and cons. Obviously, not having to run a server is a big pro for many. However, the first thing to remember when researching messaging solutions - no matter what anyone tells you - there are always servers! What differs between projects/platforms is what the servers do, and who runs them.

Jami uses a network of public servers that form a distributed hash table (see https://github.com/savoirfairelinux/opendht ). It's a neat design, and they have done a good job tackling the challenges of P2P messaging. Last time I looked in, it still required both users to be connected at the same time for message delivery/sync to work (the devices use the DHT to discover each other, and then exchange messages). This is a fairly common issue for P2P systems, and can be frustrating in a mobile-dominated world. Their DHT software does support push notifications, which helps with that though.

Another project in this category is Briar, which uses the existing network of Tor servers - and therefore adds IP address masking and a layer of metadata protection (as always, there are limitations, e.g. https://code.briarproject.org/briar/briar/-/wikis/FAQ#does-b... ). Briar built the concept of "mailbox" nodes you can run ( https://briarproject.org/download-briar-mailbox/ ) to overcome some of the problems with P2P messaging.

With Snikket, instead of using existing publicly shared infrastructure, you just run your own server (e.g. VPS or Raspberry Pi or whatever) which is responsible just for your users, and your users connect directly to it, improving (meta)data locality. This makes the design very simple, reliable and efficient (e.g. with battery/bandwidth). It also enables some important (for our use case) convenience/UX features, such as the ability to add restrictions on certain accounts (e.g. for children), and server-managed contact lists so all your family members don't have to manually add each other as contacts one-by-one. Things like that.

No approach is universally better than every other, but I much prefer the Snikket model for the family-and-friends use case. Not that we don't have our own challenges. Our iOS app is probably the weakest part right now (in terms of UX and general polish). Something I'm working hard to get fixed in 2025.

Re: Ergo Chat – A modern IRC server written in Go

#146
post #74

Earlier quoted context omitted.

Whatsapp wins because it doesn't require a username and password, that's too complex for many people

> wins because it doesn't require a username and password And lose because you can't give it to a kid that doesn't have a mobile phone number. I have shared custody of my daughter and we communicate via xmpp on a tablet they carry over there when they spend a week at their mother's.

True, but I mean wins in a global "it's now the default platform for most people in the world" sense.

Re: Ergo Chat – A modern IRC server written in Go

#147
post #46

Earlier quoted context omitted.

Unfortunately it's worse than that now. It used to be that everything got siloed into channels, now things get siloed into the new forum system. These forum channels don't automatically appear in the sidebar and you get no indication of anything new added unless you specifically follow the thread. Moving into forum threads is a great way to kill a conversation, perfect even, honestly I wouldn't be surprised if the fe…

I'd rather software chats not be on Discord, but that said I've found the forum feature quite helpful for help channels. You get auto-search for the topic as you type out a title, and if you don't see what you need, you can turn it straight into a topic. It's a lot better than the old system of posting into a rolling scroll and hoping one of the regulars is around, and that you're not asking a question which should b…

It's quite possible the communities I'm active in are using the forums feature wrong if it works well for a QnA/helpdesk scenario haha

Thinking about it that use case makes far more sense than what the communities I'm in are using it for (basically just dynamic #channels that anyone can create) - especially with how nobody is a part of the discussion by default. That does make way more sense for a helpdesk kinda setup rather than misc discussion threads.

Re: Ergo Chat – A modern IRC server written in Go

#148
post #84
post #14

Earlier quoted context omitted.

Not really, I didn't have any delivery-related issues, and didn't get any complaints from other people as well. I have mixed feelings towards Matrix due to; 1. The only stable and maintained implementation is "matrix-synapse" and it is written in Python. 2. The most commonly used client is "element", and it is governed by the same people. So it feels we are the mercy of a single company. I wanted hard to go with a mo…

Have you seen https://snikket.org ?

Yes, Snikket was also one of my failed attempts. Maybe it's me, I don't know.

Re: Ergo Chat – A modern IRC server written in Go

#149
post #26

Earlier quoted context omitted.

yeah, this part itself. How easy it is to get them to do it?

Any app that requires a login will be exactly the same? What's exactly your point? That people can't login to phone apps?

yeah, people definitely don't want to switch to use another app to chat. Is that too hard to understand?

Re: Ergo Chat – A modern IRC server written in Go

#150
post #112

Earlier quoted context omitted.

In order for Signal to provide this history, said history would have to be stored on their servers, massively nerfing one of their core competitive advantages. This “limitation” is the ultimate advantage from the perspective of Signal’s core competency.

It could be saved on devices and supplied as needed from that device history. They wouldn’t need to keep it on their servers. I don’t think you can fault signal for not wanting to do that, but it also means signal is a terrible communications platform if you want that sort of thing.

Exactly, matrix.org has this feature IIRC.
Post reply on HN