There's a lot of energy on the #Fediverse right now to discuss/find a #Federated alternative to #Discord using #ActivityPub.
-
@benpate @strypey@mastodon.nzoss.nz I'm building Shoot, a discord-like federated instant messenger with activitypub! I would always appreciate any help with development, my pins has any more info as well
GitHub - MaddyUnderStars/shoot: ActivityPub federated instant messaging server
ActivityPub federated instant messaging server. Contribute to MaddyUnderStars/shoot development by creating an account on GitHub.
GitHub (github.com)
@maddyunderstars Looks cool! I'm starring and following your work.
It looks like you're using Typescript. All of my E2EE work is in Typescript, so there's a good chance you could use the library I'm making when you want to do encrypted groups.
Let me know when I can help

-
@maddyunderstars Looks cool! I'm starring and following your work.
It looks like you're using Typescript. All of my E2EE work is in Typescript, so there's a good chance you could use the library I'm making when you want to do encrypted groups.
Let me know when I can help

@benpate Thanks! Your e1ee library will be helpful! Is it public right now? I had started playing with libsignal after seeing @HolosSocial use it
Edit: Ah I see your comments on GitHub, thanks!
-
We figure we don't need to replicate the chats to different servers, we just need to forward requests to the servers hosting the chat spaces that you've joined.
There's more technical details in this blog post and I'm always open to questions!
Leaf 0.3 - The Server Behind Roomy
For the last couple months we've been iterating on Roomy with its brand-new architecture, and we're finally ready to talk in more detail about the not-so-secret sauce that will power Roomy moving forward.
Muni Blog (blog.muni.town)
@zicklag
> I'm always open to questions!How far off the mark was I in this pair of posts, about how Roomy uses ATProto and what that suggests for how it might use ActivityPub?
Strypey (@strypey@mastodon.nzoss.nz)
(1/2) @benpate@mastodon.social > youβre only signing in with your ActivityPub identity though? The article is light on specifics, but it seems like Roomy is a client app, not a server+client app like Mastodon. So in ATProto jargon; https://dustycloud.org/blog/how-decentralized-is-bluesky/ ... Roomy is an AppView, using the PDS for a logged in ATProto account as a data store (not sure if or how it uses Relays). @klu9@ohai.social
Mastodon - NZOSS (mastodon.nzoss.nz)
> we don't need to replicate the chats to different servers
So "channels" and "servers" (as Discord uses these terms) would be tied to the originating server, like MUC in XMPP? Not replicated using the data storage of the participating accounts, as Matrix does?
-
@strypey @activitypods Roomy implements its own storage. #ATProto is only really used as an identity / sign-in layer.
@FenTiger
> Roomy implements its own storage. ATProto is only really used as an identity / sign-in layer.@zicklag's reply to @benpate suggests it's both/and;
Zicklag (@zicklag@mastodon.social)
@benpate @klu9@ohai.social @strypey@mastodon.nzoss.nz ATProto is used only for authentication, optional integrations, and optional backups. We have our own somewhat generic event streaming server that we use for chat spaces, where each chat space could be migrated to another server without the permission of the current host. It's "federated" in that each chat space will be able to be hosted on a different server and the client will still be able to join them all from the same app.
Mastodon (mastodon.social)
The Roomy server has a copy of the data, and backs it up to PDS for people logged in with ATProto accounts. Not sure what implications this has for people logging in with ActivityPub accounts. But Solid pods could, in theory, be used like PDS a la @activitypods.
-
@FenTiger
> Roomy implements its own storage. ATProto is only really used as an identity / sign-in layer.@zicklag's reply to @benpate suggests it's both/and;
Zicklag (@zicklag@mastodon.social)
@benpate @klu9@ohai.social @strypey@mastodon.nzoss.nz ATProto is used only for authentication, optional integrations, and optional backups. We have our own somewhat generic event streaming server that we use for chat spaces, where each chat space could be migrated to another server without the permission of the current host. It's "federated" in that each chat space will be able to be hosted on a different server and the client will still be able to join them all from the same app.
Mastodon (mastodon.social)
The Roomy server has a copy of the data, and backs it up to PDS for people logged in with ATProto accounts. Not sure what implications this has for people logging in with ActivityPub accounts. But Solid pods could, in theory, be used like PDS a la @activitypods.
@strypey @zicklag @benpate @activitypods @erlend As far as I know, the "backup to PDS" thing is seen as "something we could do in principle, but haven't implemented yet".
As I understand it, Solid uses a strictly "RDF / JSON-LD" approach, and I doubt that Roomy's current data model would fit into this very well.
(I'm not directly involved in Roomy development, but I've been hanging out in their internal chats, and following their evolution really quite closely.)
-
There's a lot of energy on the #Fediverse right now to discuss/find a #Federated alternative to #Discord using #ActivityPub.
@strypey suggested that I put this out there to anyone who's thinking about it. We could probably rebuild most of Discord's features as an #Emissary inbox without doing a lot of back end code.
I'm too swamped to start on this right now. But if you're a great HTML+CSS designer, I'm able to give some time to a team who wants to take this on.
@benpate
> We could probably rebuild most of Discord's features as an Emissary inbox without doing a lot of back end codeOne way to rapid prototype this would be to cheat. Copy as much as Discord's HTML/CSS/JS as you can get hold of. Chuck it in a private repo, accessible only to you/ your team.
Then you only need to build a layer of scripting glue and gaffer tape between that and an existing AP back-end (#Emissary, @Bonfire, dealer's choice). Published under a free license.
(1/2)
-
@benpate
> We could probably rebuild most of Discord's features as an Emissary inbox without doing a lot of back end codeOne way to rapid prototype this would be to cheat. Copy as much as Discord's HTML/CSS/JS as you can get hold of. Chuck it in a private repo, accessible only to you/ your team.
Then you only need to build a layer of scripting glue and gaffer tape between that and an existing AP back-end (#Emissary, @Bonfire, dealer's choice). Published under a free license.
(1/2)
After a few days/ weeks of furious hacking, you'll either give up in disgust and tombstone your repo, or a get a PoC working. If you do, celebrate and announce the fact.
Then you can recruit web/app designers who've never had access to the private repo (with the Discord layout code). They can then build Free Code interfaces on top of your glue and gaffer tape layer. Voila, a fully libre service with all the key features of Discord
Rinse, repeat for other DataFarms we'd like to replace.
(2/2)
-
After a few days/ weeks of furious hacking, you'll either give up in disgust and tombstone your repo, or a get a PoC working. If you do, celebrate and announce the fact.
Then you can recruit web/app designers who've never had access to the private repo (with the Discord layout code). They can then build Free Code interfaces on top of your glue and gaffer tape layer. Voila, a fully libre service with all the key features of Discord
Rinse, repeat for other DataFarms we'd like to replace.
(2/2)
@strypey Personally I'd be much more interested in seeing what could be done using a more IndieWeb approach. atom or mf2 for publishing, WebSub+WebMention for push, bearer tokens exchanged via TicketAuth for private access.
I'm not sure it would be *better* than ActivityPub but I do like the idea of building protocols on top of the web and which don't rely on .well-known paths to function.
-
@strypey Personally I'd be much more interested in seeing what could be done using a more IndieWeb approach. atom or mf2 for publishing, WebSub+WebMention for push, bearer tokens exchanged via TicketAuth for private access.
I'm not sure it would be *better* than ActivityPub but I do like the idea of building protocols on top of the web and which don't rely on .well-known paths to function.
@strypey I'm not sure it would be *better* than ActivityPub but it'd be a fun thing to experiment with, at least.
-
@strypey I'm not sure it would be *better* than ActivityPub but it'd be a fun thing to experiment with, at least.
@fluffy
> what could be done using a more IndieWeb approach. atom or mf2 for publishing, WebSub+WebMention for push, bearer tokens exchanged via TicketAuth for private accessKnock yourself out. Let a thousand flowers bloom! ; )
-
@fluffy
> what could be done using a more IndieWeb approach. atom or mf2 for publishing, WebSub+WebMention for push, bearer tokens exchanged via TicketAuth for private accessKnock yourself out. Let a thousand flowers bloom! ; )
@strypey Yeah, the problem I run into with that is that developing things for the sake of trying them out ends up eating into my limited energy and pain budget which is hard to feel worthwhile when nobody else wants to do the same thing.
I have so many projects that I built because they felt like they served a need but then nobody else wanted to actually use them, and it ends up feeling not worth it given my disabilities.
-
After a few days/ weeks of furious hacking, you'll either give up in disgust and tombstone your repo, or a get a PoC working. If you do, celebrate and announce the fact.
Then you can recruit web/app designers who've never had access to the private repo (with the Discord layout code). They can then build Free Code interfaces on top of your glue and gaffer tape layer. Voila, a fully libre service with all the key features of Discord
Rinse, repeat for other DataFarms we'd like to replace.
(2/2)
@strypey
I Am Not A Coder, but @laurenshof pointed out that all the pieces that make up a Discord replacement are already in the Fediverse (article here: https://connectedplaces.online/reports/fr153-what-does-a-discord-replacement-look-like/), just not in one app. It occurs to me that someone could write a front-end that calls those apps as if they were the same app, and the end user wouldn't need to know -
P Seth of the Fediverse shared this topic
Hello! It looks like you're interested in this conversation, but you don't have an account yet.
Getting fed up of having to scroll through the same posts each visit? When you register for an account, you'll always come back to exactly where you were before, and choose to be notified of new replies (either via email, or push notification). You'll also be able to save bookmarks and upvote posts to show your appreciation to other community members.
With your input, this post could be even better π
Register LoginWelcome To Podcasting.Chat!
This forum is for podcasters, podcast guests, and podcast enthusiasts alike to share tips, tricks, and their love of the medium.
This forum is fully federated, so you are able to contribute to any discussion here through your own software of choice (e.g. Mastodon, Misskey, Lemmy, Piefed, etc.). So you can sign up for an account here and it federates around the Fediverse. You can also follow feeds and topics from your other Fedi-enabled accounts.