Federated, decentralised chat that speaks plain IRC. Run your own instance for your domain; talk to anyone as user@domain from irssi or any IRC client.

324 points•davidcollantes•3 days ago•190 comments•

190 comments

advisedwang2 days ago
> No channel modes and no channel operators, which is a decision rather than a gap: a global channel is owned by nobody, so there is nobody to be an operator of it. Blocking is per person and per instance instead

That's completely unworkable. Lets say I create #some_minority, and people from many different servers join. Some shithead comes and starts screaming slurs at us. Now the admin for every server must block that person. Multiply that by every channel, and every admin is responsible for moderating the entire ecosystem. The only way they can do this is with shared blocklists, which have been a nightmare on mastodon.

xingped2 days ago
If this is really distributed, then off the top of my head I imagine you could possibly make some sort of reputation-based filter list wherein trusted admins can subscrbe to each other's filter lists such that when one admin blocks are user, it quickly propagates to other admins' lists. Somewhat similar to how email domain spam block lists work.
esseph2 days ago
That would quickly get abused and cartels would form over the larger servers about who has access and where.
conorcleary2 days ago
[seemingly negative thing] which is a decision (after hindsight), rather than a gap [scope creep]
edflsafoiewq2 days ago
> which have been a nightmare on mastodon

Why?

advisedwang2 days ago
I get the impression that every attempt to make block lists ends up getting used to target people an admin of the block list doesn't like. I think the root of it is that the admins consuming the blocklist don't want to have to spend time on moderation and are remote from communities where the blocklist is happening. Also the scope of the blocklist is the instance. Compare that to community internal moderation (e.g. channel mods), where someone close to the community is invested in the health of the community and the scope of the block is the relevant community.
someonebaggy2 days ago
If you tweet something controversial once and the wrong person sees it, they can automatically tag you as a nazi across half the fediverse
conorcleary2 days ago
gestures broadly is going to be one of the common answers from anyone trying to ward off spam
blamestross2 days ago
Ownership of namespaces is such a hard problem, our society has had to form global organizations and some of our most secure distributed systems to make it happen.

Working in the p2p space, scalable namespace ownership that doesn't get instantly ruined by perverse incentives is the holy grail. I don't think it is actually tractable in any "central authority free" system. Don't get me started on blockchains that tether names to the most perverse systems available and call it victory.

advisedwang2 days ago
Given that this system already uses DNS for namespacing of user identifiers (via instances), it seems like it could use DNS for namespacing of channels too
xena2 days ago
How do you plan to handle bad actors creating biblical amounts of servers dynamically and then spamming at line rate from all of those servers?
someonebaggy2 days ago
Why would they need to "create servers" instead of just throwing UDP packets at you like a normal DDOS?
Retr0id2 days ago
Because throwing UDP packets requires a bandwidth advantage (aside from reflection attacks), whereas application-layer attacks can impose an outsized cost on the victim.
arm322 days ago
That sounds pretty load-bearing.
y-curious2 days ago
Actually it’s a footgun gate
malcolmxxx2 days ago
And then, all galaxies move away from us.
cromka2 days ago
This is why we can no longer have nice things...
warkdarrior2 days ago
Online communities are meant to be pharmed..
singpolyma33 days ago
So rooms are "global" between whatever hosts your host happens to know about? So it's one giant netsplit party forever and only your server admin can ban someone?
davidcollantes3 days ago
Bans are per server (for what I have seeing). Federated rooms continue to exist if a server drops off, as no server "owns" them.
stackghost2 days ago
Relearning the lessons from the old days, I see. This situation is what created the Eris-Free Network.
esseph2 days ago
> Federated rooms continue to exist if a server drops off

That doesn't answer the question.

How are you resolving things like... user name collisions when the servers reconnect?

davidcollantes3 days ago
Parley is a chat network with no centre.

Every person (or team) runs a small instance for their own domain. Instances find each other through DNS and well-known identity documents, exchange signed messages over HTTPS, and present the whole federated network to ordinary IRC clients such as Lurker, Mango, mIRC, WeeChat, Textual, etc., without the need of any plugins.

someonebaggy3 days ago
This is an AI-generated summary of TFA?
BonerWiener2 days ago
It's a copy paste of the readme intro. Don't know why it's left as a comment here
altilunium3 days ago
can any layman user simply use it without running their own instance?
davidcollantes3 days ago
Yes, you will need to know someone running an instance to create an account for you.
Conlectus3 days ago
There’s a specific downside to LLM-based development that people can get neck deep in a new project without interfacing with the existing work in the field.

In this case, this is basically a poorly specified implementation of half of XMPP. Of course, I half expect the LLM would have mentioned that at some point, but the repository does not.

dale_glass2 days ago
Unfortunately XMPP is an absolutely terrible protocol. IRC's not much good either, but at least it has the excuse of being ancient and limited in what it wanted to achieve.

I don't know how it just happens that sending text messages to people can manage to result in specs that are painful to implement.

oooyay2 days ago
IRC is good in that it is open, durable, and slow moving. All of those points are intentional features that make it a stable cockroach in a nuclear world.

I briefly entertained building a modern chat experience on top of IRC when I came to this realization.

monkeywork2 days ago
>Unfortunately XMPP is an absolutely terrible protocol

Can you provide more details here? I've never seen an issue with the protocol at all, more issues with feature difference between servers depending on what they have decided to implement or not.

alwaysthiserror2 days ago
I once implemented the presence and basic messaging functionality of XMPP for a web site, using a braindead bridge (that I also wrote; so, the meaningful logic lived in the browser).

Considering I'd never hosted an XMPP daemon and didn't know anything about the protocol (I'd used XMPP clients a little bit, but had never looked at the protocol) and got a server (that part, I didn't write), an auth connector for our website's authentication system (so the daemon would authenticate against that instead), prod-ready and the features I wanted all working smoothly and reliably in maybe three weeks of very part-time work (this'd be, like, 3-4 part-time days with LLMs now, tops, from the same starting point)... seems decent to me? I mean I did direct work with the protocol, didn't just glue together libraries, and it was pretty damn good. Also (and I know browsers seem to be retreating on this front, which sucks) being XML made it very nice to work with in a Web context, since you can just ask the browser to turn ~any XML into a DOM for you, and get a bunch of functionality for free.

What's wrong with it?

ryandrake2 days ago
> I don't know how it just happens that sending text messages to people can manage to result in specs that are painful to implement.

This is what boggles my mind. We're talking: Text. Over the Internet. It should not be a complex, difficult problem! We've been sending text over the Internet from the moment the Internet went online. So how is it that 10 companies have managed to find 30 different ways to do it, which are all incompatible with each other? You have to TRY to fail this badly.

edhelas2 days ago
Why is it terrible?
dewey2 days ago
That is currently still the differentiator between people producing code and shipping something and people who care and actually have years of experience shipping. At the current state how well you steer the LLM and which questions you ask still matters, maybe in the future "build me an app" will give amazing results, but right now you still need to know what you are doing.

In this case, it's just a waste of tokens as something not very unique was generated that doesn't have a real use case, or solves anyone's problem. As with many AI generated projects, I'm willing to bet that OP themselves will not using it any more in a month.

orangedog2 days ago
You guys are way too critical and about the wrong things. "Waste of tokens"? Perhaps the author know of the tradeoffs and just wanted to build something.

How you went from seeing somebody's post to deciding they don't care is a pretty big jump, one that isn't warranted. This kind of post seems like the old but now more elaborated form of hating on something that you don't even know what it is.

It just isn't fair to the work that has been put in.

MisterMunchkin2 days ago
If telling people “build me an app” with no knowledge of technology worked, project managers would be good at their jobs already
segmondy2 days ago
or maybe they know about XMPP and prefer IRC. I have always wanted to build one of these on top of IRC. I grew up on IRC and sometimes just the nostalgia of familiar tech is what drives us to build towards it not how good it is.
jeremyjh2 days ago
That’s where we’d expect a mention in the README to play a part.
RGS18112 days ago
I've done this a few times. If I had to gesture at the root cause I'd say: LLMs lack curiosity and are trained to complete assignments, not to question their validity, so both the research phase and the questioning of intent tend to get short shrift prior to building anything.
sugarkjube2 days ago
I'm not sure I agree. Seems to me to depend a lot on how one interacts with an LLM.

If you tell it to "build me an application X to do Y using programming language Z", it will comply.

If you interactively ask "I need X, can you suggest some options? use an existing product ? or build something using a library ? or build entirely myself ? can you suggest alternatives with pro's and con's ? Anything I should think of before deciding ?" then you will get an entirely different answer.

Maybe we need additional modes, aside from thinking mode, agentic mode etc. we need e.g. "sparring mode" ? or does such a thing already exist ?

jeremyjh2 days ago
Agreed, you have to ask them to look for prior work. But then they will do a good job finding it in most cases. I think it’s partly their universal tunnel vision and partly sycophancy.
general_reveal2 days ago
”There’s a specific downside to LLM-based development that people can get neck deep in a new project without interfacing with the existing work in the field.”

That’s because it’s a paradigm shift, not meant to be planned or organized by humans. The prior paradigm was that there were subject-matter experts who were human. The new paradigm is that the only author of all code is to be a machine. This new paradigm requires removing all prior authors (who happen to be human), and removing them simply requires overcrowding their output such that it’s not locatable or trustworthy.

Sit back, grab some popcorn.

Read the full thread on Hacker News →

Related stories