There's a lot of energy on the #Fediverse right now to discuss/find a #Federated alternative to #Discord using #ActivityPub.
-
#Roomy currently based on AT Proto but looking to add #ActivityPub soon
https://itsfoss.com/roomy-discord-alternative/Hey, this is pretty interesting. Thanks for sharing!
That would be really cool if they can support Bluesky and ActivityPub at the same time.
The article on the website makes it seem like you’re only signing in with your ActivityPub identity though?
Otherwise, “Fediverse” client support is limited to the Mastodon API, or oft-unimplememted C2S API.
I’ll definitely keep my eyes on this one!
-
Hey, this is pretty interesting. Thanks for sharing!
That would be really cool if they can support Bluesky and ActivityPub at the same time.
The article on the website makes it seem like you’re only signing in with your ActivityPub identity though?
Otherwise, “Fediverse” client support is limited to the Mastodon API, or oft-unimplememted C2S API.
I’ll definitely keep my eyes on this one!
(1/2)
@benpate
> 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;
... 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).
-
(1/2)
@benpate
> 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;
... 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).
(2/2)
If Roomy enabled signing in with a fediverse account as an identity, there's no PDS to use for data. So I'm guessing the plan is to implement the Mastodon API, enabling Roomy to act as a fediverse client, and use a logged in account's home service as the data store?
What would be really intriguing is if Roomy borrowed from the @activitypods approach, allowing a fediverse account to be used as identity, with a Solid pod as the data store.
-
(2/2)
If Roomy enabled signing in with a fediverse account as an identity, there's no PDS to use for data. So I'm guessing the plan is to implement the Mastodon API, enabling Roomy to act as a fediverse client, and use a logged in account's home service as the data store?
What would be really intriguing is if Roomy borrowed from the @activitypods approach, allowing a fediverse account to be used as identity, with a Solid pod as the data store.
@strypey @activitypods Roomy implements its own storage. #ATProto is only really used as an identity / sign-in layer.
-
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 @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)
-
Hey, this is pretty interesting. Thanks for sharing!
That would be really cool if they can support Bluesky and ActivityPub at the same time.
The article on the website makes it seem like you’re only signing in with your ActivityPub identity though?
Otherwise, “Fediverse” client support is limited to the Mastodon API, or oft-unimplememted C2S API.
I’ll definitely keep my eyes on this one!
@benpate @klu9 @strypey 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.
-
@benpate @klu9 @strypey 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.
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)
-
@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).
(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).
(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)