Rendered at 14:43:07 GMT+0000 (Coordinated Universal Time) with Cloudflare Workers.
bratsche 2 hours ago [-]
The website says it's released under a permissive open source license, but it doesn't say what that license is. And when you look at the GitHub repo[1] there is no LICENSE file and no mention of license.
Cloning discord is easy. Convincing everyone in a particular circle to move to a new solution is the challenge. You have to force a partition in the social network unless everyone in your group is happy to run both applications side by side (they won't be).
I was there when teamspeak was forced out by the demands of the group. There was no fighting it. My individual ideological preferences cannot defeat those of a collective. These people just want to play games. They don't want to take up arms in my weird nerd battle against COTS software, closed platforms or buggy applications.
zaneyard 11 minutes ago [-]
Our community is actively looking for an alternative that we can control. I'd love for an open source, self-hosted clone to pop up that keeps the user experience of Discord, but there is no other. Having a mobile app is a big blocker, and I suspect it will get harder with how Google is locking down the play store.
Bender 2 hours ago [-]
Is anyone tracking all these open source Discord clones? I ask because I have seen about a dozen of them advertised by Youtube influencers. New chat clients seem to be showing up almost daily. I think it would be interesting to have a table that shows features, OS/phone support, E2EE, federation, scale how many clients per server per resources, etc...
As bob1029 said, making apps is easy especially now but getting friend groups to move is the real challenge so I think a column in the table should include a score for how easy it is to import Discord server history, chat history, invite friends and so on. I think there would have to be next to no friction or risks. If self hosted then backups would have to be encrypted and automated so that the servers can be treated as mostly ephemeral. Operating and maintaining Discord takes a rather large team so these open source alternatives would have to be able to show they have automated most tasks in a secure and fault tolerant manor that is hard to get wrong.
tptacek 2 hours ago [-]
Why would you use Olm/Megolm for your chat protocol? Even Matrix doesn't want to be using it anymore (they're in theory planning a transition to IETF MLS, last I checked). Group E2E is incredibly hard to get right, not just because of the underlying cryptographic constructions, but because all the metadata and signaling that rides on top of and alongside the group encrypted messaging layer also influences key distribution.
If you're literally just doing a front end to Matrix, I get why you have to use the current Matrix protocol. But if you're doing something that isn't Matrix, you should avoid Olm.
hiimkeks 1 hours ago [-]
I agree, but.
The thing with MLS is that it basically requires a central server for ordering the commits. For Matrix' interpretation of federation, this doesn't really work because a group isn't really owned by a server, it is a DAG of events, which, as is the nature of DAGs, does not have the total order needed for MLS commit ordering.
So either you introduce a central party that does ordering, or you do BFT-style consensus, or you try to get some idea of branching an merging of group states into MLS, which isn't really possible with what RFC 9420 offers.
My impression also is that the Matrix community really loves their DAGs and the group state management that they built, and from an MLS perspective it makes more sense to store that in the group context (either as extensions or as components as defined in draft-ietf-mls-extensions-10).
There is draft-xue-mls-decentralized which proposes two ways to MLS offer some foundations, one of which (IMO) only solves half the problem and the other (IMO) doesn't make sense.
Roughly speaking, the concrete disadvantages of Olm and Megolm are:
* In the current Matrix implementation, server tells the clients what the group membership is, so a server could spoof an invite to add a malicious user to a room and you'd have to rely on social mechanisms to spot it.
* There's no way to force everyone to rotate the sender key at the same time.
* On the plus side, it decentralises relatively well.
The concrete disadvantages of MLS are:
* Vanilla MLS needs a centralised sequencing function for changing group membership.
* The key bundles are much larger.
* On the plus side, only clients within the group can add new users/devices, and everyone in a given epoch shares the same group secret, so when someone rotates everyone has to rotate to participate in the new epoch.
Now, the server-controlled membership problem can be solved with Olm/Megolm if you instead have the client control the membership, using Matrix itself to define which users are authorised to be in the room, by running the Matrix DAG merge resolution on the client as well as the server. I did this a few weeks ago (in prep for The Matrix Conference next week) to show viability; it works, and has the advantage that you don't have to blow up the whole crypto implementation.
On the other hand, MLS can also be made to decentralise. DiMLS (draft-xue-mls-decentralized) isn't the only option here; DeMLS is the one we've been working with (using the Phoenix DeMLS OpenMLS fork) on the Matrix side - and works by letting MLS epochs fork and then merge again later, using puncturable functions to avoid undermining forward secrecy. This is a much bigger change; we experimented with it a few months back; details here: https://www.youtube.com/watch?v=jc7yfec3iIQ. It's promising, it works, but is much more complex and experimental.
So, TL;DR: it's possible to use olm/megolm securely (even if it's had a mixed record); I doubt strafe is doing fancy client-controlled group membership though. Separately, MLS can be used too, but it is way more complex and has its own complications. On the Matrix side we're still pursuing both (and finally making some progress, although it's a very slow burn).
NikxDa 4 hours ago [-]
I also want to highlight Chatto here: https://chatto.run/
Very lightweight and self-hostable. Not e2ee, though.
I've been exploring Chatto as a self-hosted chat UI in my homelab for interfacing with durable agents and it works pretty well so far, although the API is (by the author's own admission) not fully stable yet.
Fidelix 2 hours ago [-]
Unfortunately Chatto is not accepting contributions
npodbielski 2 hours ago [-]
Yes I am running it now, it is pretty nice though custom, not related to the original developer, mobile application, have few annoying problems. I.e. it does not allow you to connect to your own server right away. It does not have notifications working on stable version. I had to ask an agent to do some changes first before it was usable.
On the other hand Strafe does not have it at all, so it is not really a competition.
There’s a GitHub but it was all the way at the bottom of the page behind a tiny icon in a group of other socials. At least on mobile it was.
Stitch4223 5 hours ago [-]
Previous alternatives for discord never included video, so they were no alternatives. So: great to see this!
Nitpick: the bottom row on the front page shows a discord link, but not their own strafe link. I hope they can add this because of dogfooding.
aldyernesto 2 hours ago [-]
[flagged]
jeromechoo 2 hours ago [-]
Another Discord alternative that still lacks an iOS app. I personally don’t mind but if I am to switch my entire friend group to an alternative, native apps on mobile is a fundamental requirement.
import 4 hours ago [-]
Links to docs, resources, GitHub is non existent. Also no screenshots. Waste of time.
sbarre 3 hours ago [-]
What site were you looking at? All those things are on the page.
themaninthedark 4 hours ago [-]
Great project, glad to see something like this!
Also all links under the resources heading are broken.
fuckff 6 hours ago [-]
Claims to be done right, vibecoded bs from last week that can't even get the links on their page right, who cares
Fidelix 2 hours ago [-]
I thought you were a little harsh, but after looking further I don't disagree.
It's way too early for this to be in HN.
pampas 6 hours ago [-]
No reaction emojis?
lynx97 6 hours ago [-]
Means "punishment" in german, weird name.
TheDong 5 hours ago [-]
And "discord" means "disagreement", "lack of harmony", "arguments" in English. Even weirder name for a chat application in an even more commonly used language.
"Slack" associates pretty strongly with "slack off" (get no work done) too, so that one's also strange.
I think "Zulip" has the best naming of all these.
r_lee 3 hours ago [-]
Zulip definitely is the worst naming if you don't go off of what the name means literally
slack and discord are very good household names, same with twitter (rip) and google etc.
nobody's gonna say "hop on Zulip"
chrysoprace 4 hours ago [-]
I figured Slack referred to slack in task time estimation i.e. the amount of extra time allowed in a task. Collaborating on Slack would count towards that time.
abirch 3 hours ago [-]
Discord is on brand for many of the "discussions" on there.
What does Zulip mean?
ButlerianJihad 5 hours ago [-]
The only explanation I can offer for “Slack” is that its founders and top brass have been adherents of the “parody religion” Church of the SubGenius, and have successfully interposed themselves into the everyday business machinations of a wide swath of Western businesses.
Meanwhile, “Discord” wouldn’t surprise me if it were a product of the Discordians themselves, a similarly disorganized “parody religion”.
taybin 3 hours ago [-]
Also see: Slackware.
I always preferred Discordianism over CofSG, but both were cool.
Leynos 4 hours ago [-]
Slack is also allowance in budgets (time, finance, materials) to allow for unplanned pressures, demands or constraints.
anonym29 4 hours ago [-]
Slack stands for Searchable Log of All Conversations and Knowledge. Prior to that, it was going to be "linefeed".
ButlerianJihad 3 hours ago [-]
Did you read that on the English Wikipedia or something? Have you ever heard of "backronyms"?
anonym29 2 hours ago [-]
I read it directly from the founder and former CEO, who included a screenshot from November 2012, about 9 months before the August 2013 release, of him using that acronym as a code name. https://xxcancel.com/stewart/status/780906639301812225
3 hours ago [-]
Dilettante_ 5 hours ago [-]
"Discord becomes strife cause that means kinda the same thing, strife becomes strafe cause that's a gamer term"
is the completely german-less train-of-thought I could imagine leading to this name
formerly_proven 3 hours ago [-]
Building strafe.chat and expecting people to not expect it’s a D/s chat app is hilarious.
Also “strafe on your desktop”. Plus this is obviously entirely vibecoded.
3 hours ago [-]
sharebeam 2 hours ago [-]
[flagged]
popalchemist 10 hours ago [-]
[dead]
TZubiri 6 hours ago [-]
Horrible idea, Discord is an app for videogames, which means it's an app for kids.
E2E is just not appropriate for handling childrens' messaging.
x3ro 5 hours ago [-]
Can you elaborate on why E2E encryption is not "appropriate for childrens' messaging"? Does this imply that we should be able to surveil what children say to each other, or..?
r_lee 3 hours ago [-]
yes, because most HNers are already old so none of that applies to them, thus it's either no internet, no phone or you have to have all kinds of spyware watching what your kids (right up until 18) do 24/7
I bet everyone would've loved to live like that when they were younger. right?
Muromec 4 hours ago [-]
E2E or not, as a parent you can always surveil it on-device. Or just don't give the damn phone at all.
TZubiri 1 hours ago [-]
I could spend some cognitive effort explaining in concise terms what should bea very obvious reality. But you know how at one point you stop letting some stuff be open for debate, and spend that effort making jokes instead?
I had no clue videogames were for kids, silly me. I'd better uninstall Steam right now, and move to Microsoft Teams to talk to my friends while I'm at it.
RandomGerm4n 5 hours ago [-]
Games aren't just for kids. Furthermore, children also have a right to privacy and should be protected, especially from the big tech companies.
master-lincoln 4 hours ago [-]
> Discord is an app for videogames
Children shouldn't be using the internet unsupervised.
Games are also played by adults.
Discord is just a communication platform that isn't inherently tied to gaming.
throwawayy6767 5 hours ago [-]
This post genuinely made me laugh in anticipation of the replies it'd trigger, have an upvote friend
VoidWhisperer 3 hours ago [-]
Not to claim that Discord has like copyright over their layout, but do you not anticipate eventually running into problems with them due to using pretty much the same layout/visuals verbatim? It is to the point where one could easily be visually mistaken for the other unless a much closer look is taken
That's silly. Neither is Discord the only one with that layout (Slack and even things like Gajim have similar layouts) nor would/should it count as something that cannot be copied.
The fact that Apple back in the early iOS days thought it invented desktop icons is still absolutely ridiculous.
dd8601fn 2 hours ago [-]
> The fact that Apple back in the early iOS days thought it invented desktop icons is still absolutely ridiculous.
[1]. https://github.com/StrafeChat/web.strafe.chat
I was there when teamspeak was forced out by the demands of the group. There was no fighting it. My individual ideological preferences cannot defeat those of a collective. These people just want to play games. They don't want to take up arms in my weird nerd battle against COTS software, closed platforms or buggy applications.
As bob1029 said, making apps is easy especially now but getting friend groups to move is the real challenge so I think a column in the table should include a score for how easy it is to import Discord server history, chat history, invite friends and so on. I think there would have to be next to no friction or risks. If self hosted then backups would have to be encrypted and automated so that the servers can be treated as mostly ephemeral. Operating and maintaining Discord takes a rather large team so these open source alternatives would have to be able to show they have automated most tasks in a secure and fault tolerant manor that is hard to get wrong.
If you're literally just doing a front end to Matrix, I get why you have to use the current Matrix protocol. But if you're doing something that isn't Matrix, you should avoid Olm.
The thing with MLS is that it basically requires a central server for ordering the commits. For Matrix' interpretation of federation, this doesn't really work because a group isn't really owned by a server, it is a DAG of events, which, as is the nature of DAGs, does not have the total order needed for MLS commit ordering.
So either you introduce a central party that does ordering, or you do BFT-style consensus, or you try to get some idea of branching an merging of group states into MLS, which isn't really possible with what RFC 9420 offers.
My impression also is that the Matrix community really loves their DAGs and the group state management that they built, and from an MLS perspective it makes more sense to store that in the group context (either as extensions or as components as defined in draft-ietf-mls-extensions-10).
There is draft-xue-mls-decentralized which proposes two ways to MLS offer some foundations, one of which (IMO) only solves half the problem and the other (IMO) doesn't make sense.
The fediverse folks are also trying to solve this and it just is hard. https://github.com/swicg/activitypub-e2ee/issues/56
Edit: (I work on OpenMLS)
* In the current Matrix implementation, server tells the clients what the group membership is, so a server could spoof an invite to add a malicious user to a room and you'd have to rely on social mechanisms to spot it.
* There's no way to force everyone to rotate the sender key at the same time.
* On the plus side, it decentralises relatively well.
The concrete disadvantages of MLS are:
* Vanilla MLS needs a centralised sequencing function for changing group membership.
* The key bundles are much larger.
* On the plus side, only clients within the group can add new users/devices, and everyone in a given epoch shares the same group secret, so when someone rotates everyone has to rotate to participate in the new epoch.
Now, the server-controlled membership problem can be solved with Olm/Megolm if you instead have the client control the membership, using Matrix itself to define which users are authorised to be in the room, by running the Matrix DAG merge resolution on the client as well as the server. I did this a few weeks ago (in prep for The Matrix Conference next week) to show viability; it works, and has the advantage that you don't have to blow up the whole crypto implementation.
On the other hand, MLS can also be made to decentralise. DiMLS (draft-xue-mls-decentralized) isn't the only option here; DeMLS is the one we've been working with (using the Phoenix DeMLS OpenMLS fork) on the Matrix side - and works by letting MLS epochs fork and then merge again later, using puncturable functions to avoid undermining forward secrecy. This is a much bigger change; we experimented with it a few months back; details here: https://www.youtube.com/watch?v=jc7yfec3iIQ. It's promising, it works, but is much more complex and experimental.
So, TL;DR: it's possible to use olm/megolm securely (even if it's had a mixed record); I doubt strafe is doing fancy client-controlled group membership though. Separately, MLS can be used too, but it is way more complex and has its own complications. On the Matrix side we're still pursuing both (and finally making some progress, although it's a very slow burn).
Read: write your PR. It doesn't say "do not contribute code touched by LLM".
It asks to take accountability for the thing you submit.
Technical output written by LLM is often very hard to read due to the ticks, fillers, fluff and idiosyncrasies. Even with rules or guidance.
This contribution rule ensures crap will be edited out and only the valuable content submitted. Cleaned up LLM code can be very valuable.
Can't use LLMs to contribute code
On the other hand Strafe does not have it at all, so it is not really a competition.
There’s a GitHub but it was all the way at the bottom of the page behind a tiny icon in a group of other socials. At least on mobile it was.
Nitpick: the bottom row on the front page shows a discord link, but not their own strafe link. I hope they can add this because of dogfooding.
Also all links under the resources heading are broken.
It's way too early for this to be in HN.
"Slack" associates pretty strongly with "slack off" (get no work done) too, so that one's also strange.
I think "Zulip" has the best naming of all these.
slack and discord are very good household names, same with twitter (rip) and google etc.
nobody's gonna say "hop on Zulip"
What does Zulip mean?
Meanwhile, “Discord” wouldn’t surprise me if it were a product of the Discordians themselves, a similarly disorganized “parody religion”.
I always preferred Discordianism over CofSG, but both were cool.
is the completely german-less train-of-thought I could imagine leading to this name
Also “strafe on your desktop”. Plus this is obviously entirely vibecoded.
E2E is just not appropriate for handling childrens' messaging.
I bet everyone would've loved to live like that when they were younger. right?
https://www.youtube.com/watch?v=hjtr64ZQUWA
Children shouldn't be using the internet unsupervised. Games are also played by adults. Discord is just a communication platform that isn't inherently tied to gaming.
Incase anyone is wondering, there is a screenshot here: https://github.com/StrafeChat
The fact that Apple back in the early iOS days thought it invented desktop icons is still absolutely ridiculous.
That wasn’t a thing.