Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • World
  • Users
  • Groups
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (No Skin)
  • No Skin
Collapse
We Distribute
  1. Home
  2. General Discussion
  3. There's a lot of energy on the #Fediverse right now to discuss/find a #Federated alternative to #Discord using #ActivityPub.

There's a lot of energy on the #Fediverse right now to discuss/find a #Federated alternative to #Discord using #ActivityPub.

Scheduled Pinned Locked Moved General Discussion
fediversefederateddiscordactivitypubemissary
38 Posts 9 Posters 0 Views
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • benpate@mastodon.socialB benpate@mastodon.social

    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.

    maddyunderstars@aus.socialM This user is from outside of this forum
    maddyunderstars@aus.socialM This user is from outside of this forum
    maddyunderstars@aus.social
    wrote last edited by
    #7

    @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

    https://github.com/MaddyUnderStars/shoot

    benpate@mastodon.socialB 1 Reply Last reply
    0
    • benpate@mastodon.socialB benpate@mastodon.social

      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!

      @klu9 @strypey

      zicklag@mastodon.socialZ This user is from outside of this forum
      zicklag@mastodon.socialZ This user is from outside of this forum
      zicklag@mastodon.social
      wrote last edited by
      #8

      @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.

      zicklag@mastodon.socialZ 1 Reply Last reply
      0
      • zicklag@mastodon.socialZ zicklag@mastodon.social

        @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.

        zicklag@mastodon.socialZ This user is from outside of this forum
        zicklag@mastodon.socialZ This user is from outside of this forum
        zicklag@mastodon.social
        wrote last edited by
        #9

        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!

        https://blog.muni.town/leaf-0-3-the-server-behind-roomy/

        @benpate @klu9 @strypey

        strypey@mastodon.nzoss.nzS 1 Reply Last reply
        0
        • maddyunderstars@aus.socialM maddyunderstars@aus.social

          @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

          https://github.com/MaddyUnderStars/shoot

          benpate@mastodon.socialB This user is from outside of this forum
          benpate@mastodon.socialB This user is from outside of this forum
          benpate@mastodon.social
          wrote last edited by
          #10

          @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@aus.socialM 1 Reply Last reply
          0
          • benpate@mastodon.socialB benpate@mastodon.social

            @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@aus.socialM This user is from outside of this forum
            maddyunderstars@aus.socialM This user is from outside of this forum
            maddyunderstars@aus.social
            wrote last edited by
            #11

            @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!

            benpate@mastodon.socialB 1 Reply Last reply
            0
            • zicklag@mastodon.socialZ zicklag@mastodon.social

              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!

              https://blog.muni.town/leaf-0-3-the-server-behind-roomy/

              @benpate @klu9 @strypey

              strypey@mastodon.nzoss.nzS This user is from outside of this forum
              strypey@mastodon.nzoss.nzS This user is from outside of this forum
              strypey@mastodon.nzoss.nz
              wrote last edited by
              #12

              @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?

              https://mastodon.nzoss.nz/@strypey/116066950694720465

              > 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?

              @benpate @klu9

              zicklag@mastodon.socialZ 1 Reply Last reply
              0
              • fentiger@mastodon.socialF fentiger@mastodon.social

                @strypey @activitypods Roomy implements its own storage. #ATProto is only really used as an identity / sign-in layer.

                @erlend @zicklag

                strypey@mastodon.nzoss.nzS This user is from outside of this forum
                strypey@mastodon.nzoss.nzS This user is from outside of this forum
                strypey@mastodon.nzoss.nz
                wrote last edited by
                #13

                @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;

                https://mastodon.social/@zicklag/116069496831677674

                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.

                @erlend

                fentiger@mastodon.socialF 1 Reply Last reply
                0
                • strypey@mastodon.nzoss.nzS strypey@mastodon.nzoss.nz

                  @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;

                  https://mastodon.social/@zicklag/116069496831677674

                  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.

                  @erlend

                  fentiger@mastodon.socialF This user is from outside of this forum
                  fentiger@mastodon.socialF This user is from outside of this forum
                  fentiger@mastodon.social
                  wrote last edited by
                  #14

                  @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.)

                  zicklag@mastodon.socialZ 1 Reply Last reply
                  0
                  • benpate@mastodon.socialB benpate@mastodon.social

                    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.

                    strypey@mastodon.nzoss.nzS This user is from outside of this forum
                    strypey@mastodon.nzoss.nzS This user is from outside of this forum
                    strypey@mastodon.nzoss.nz
                    wrote last edited by
                    #15

                    @benpate
                    > We could probably rebuild most of Discord's features as an Emissary inbox without doing a lot of back end code

                    One 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)

                    #Discord

                    strypey@mastodon.nzoss.nzS crft@mastodon.socialC 2 Replies Last reply
                    0
                    • strypey@mastodon.nzoss.nzS strypey@mastodon.nzoss.nz

                      @benpate
                      > We could probably rebuild most of Discord's features as an Emissary inbox without doing a lot of back end code

                      One 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)

                      #Discord

                      strypey@mastodon.nzoss.nzS This user is from outside of this forum
                      strypey@mastodon.nzoss.nzS This user is from outside of this forum
                      strypey@mastodon.nzoss.nz
                      wrote last edited by
                      #16

                      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)

                      fluffy@plush.cityF mick_collins@toot.communityM 2 Replies Last reply
                      0
                      • strypey@mastodon.nzoss.nzS strypey@mastodon.nzoss.nz

                        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)

                        fluffy@plush.cityF This user is from outside of this forum
                        fluffy@plush.cityF This user is from outside of this forum
                        fluffy@plush.city
                        wrote last edited by
                        #17

                        @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.

                        fluffy@plush.cityF 1 Reply Last reply
                        0
                        • fluffy@plush.cityF fluffy@plush.city

                          @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.

                          fluffy@plush.cityF This user is from outside of this forum
                          fluffy@plush.cityF This user is from outside of this forum
                          fluffy@plush.city
                          wrote last edited by
                          #18

                          @strypey I'm not sure it would be *better* than ActivityPub but it'd be a fun thing to experiment with, at least.

                          strypey@mastodon.nzoss.nzS 1 Reply Last reply
                          0
                          • fluffy@plush.cityF fluffy@plush.city

                            @strypey I'm not sure it would be *better* than ActivityPub but it'd be a fun thing to experiment with, at least.

                            strypey@mastodon.nzoss.nzS This user is from outside of this forum
                            strypey@mastodon.nzoss.nzS This user is from outside of this forum
                            strypey@mastodon.nzoss.nz
                            wrote last edited by
                            #19

                            @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 access

                            Knock yourself out. Let a thousand flowers bloom! ; )

                            fluffy@plush.cityF 1 Reply Last reply
                            0
                            • strypey@mastodon.nzoss.nzS strypey@mastodon.nzoss.nz

                              @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 access

                              Knock yourself out. Let a thousand flowers bloom! ; )

                              fluffy@plush.cityF This user is from outside of this forum
                              fluffy@plush.cityF This user is from outside of this forum
                              fluffy@plush.city
                              wrote last edited by
                              #20

                              @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.

                              strypey@mastodon.nzoss.nzS 1 Reply Last reply
                              0
                              • strypey@mastodon.nzoss.nzS strypey@mastodon.nzoss.nz

                                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)

                                mick_collins@toot.communityM This user is from outside of this forum
                                mick_collins@toot.communityM This user is from outside of this forum
                                mick_collins@toot.community
                                wrote last edited by
                                #21

                                @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

                                strypey@mastodon.nzoss.nzS 1 Reply Last reply
                                0
                                • strypey@mastodon.nzoss.nzS strypey@mastodon.nzoss.nz

                                  @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?

                                  https://mastodon.nzoss.nz/@strypey/116066950694720465

                                  > 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?

                                  @benpate @klu9

                                  zicklag@mastodon.socialZ This user is from outside of this forum
                                  zicklag@mastodon.socialZ This user is from outside of this forum
                                  zicklag@mastodon.social
                                  wrote last edited by
                                  #22

                                  Roomy does have a client and a server. The server has it's own protcol that isn't Roomy specific.

                                  If we let you login with Mastodon it would just be for login still keep all of the data hosted on our server and wouldn't need to implement any Mastodon / AP APIs.

                                  We do use the PDS for some storage / integrations, but once we get a tiny new feature in our server those can all be optional, and all the we need can be hosted on our server.

                                  @strypey @benpate @klu9

                                  zicklag@mastodon.socialZ 1 Reply Last reply
                                  0
                                  • zicklag@mastodon.socialZ zicklag@mastodon.social

                                    Roomy does have a client and a server. The server has it's own protcol that isn't Roomy specific.

                                    If we let you login with Mastodon it would just be for login still keep all of the data hosted on our server and wouldn't need to implement any Mastodon / AP APIs.

                                    We do use the PDS for some storage / integrations, but once we get a tiny new feature in our server those can all be optional, and all the we need can be hosted on our server.

                                    @strypey @benpate @klu9

                                    zicklag@mastodon.socialZ This user is from outside of this forum
                                    zicklag@mastodon.socialZ This user is from outside of this forum
                                    zicklag@mastodon.social
                                    wrote last edited by
                                    #23

                                    > So "channels" and "servers" (as Discord uses these terms) would be tied to the originating server, like MUC in XMPP?

                                    Yes.

                                    If I understand XMPP right, we have an advantage also in that we can have chat spaces use domains like handles for discovery, but it's possible to change the handle and the hosting server without everybody having to re-join.

                                    @strypey @benpate @klu9

                                    strypey@mastodon.nzoss.nzS 1 Reply Last reply
                                    0
                                    • fentiger@mastodon.socialF fentiger@mastodon.social

                                      @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.)

                                      zicklag@mastodon.socialZ This user is from outside of this forum
                                      zicklag@mastodon.socialZ This user is from outside of this forum
                                      zicklag@mastodon.social
                                      wrote last edited by
                                      #24

                                      Yeah, we don't have backups yet, but probably will have them soon.

                                      Those will be optional though. It's just to give the user more data security, while many ATProto users will trust their PDS more than our server.

                                      There actually is pretty good chances we could do a similar integration with Solid pods, but we've only got so much we can take on as a small team and I'm not sure what we'll be able to get to when.

                                      @FenTiger @strypey @benpate @activitypods @erlend

                                      zicklag@mastodon.socialZ 1 Reply Last reply
                                      0
                                      • zicklag@mastodon.socialZ zicklag@mastodon.social

                                        Yeah, we don't have backups yet, but probably will have them soon.

                                        Those will be optional though. It's just to give the user more data security, while many ATProto users will trust their PDS more than our server.

                                        There actually is pretty good chances we could do a similar integration with Solid pods, but we've only got so much we can take on as a small team and I'm not sure what we'll be able to get to when.

                                        @FenTiger @strypey @benpate @activitypods @erlend

                                        zicklag@mastodon.socialZ This user is from outside of this forum
                                        zicklag@mastodon.socialZ This user is from outside of this forum
                                        zicklag@mastodon.social
                                        wrote last edited by
                                        #25

                                        The RDF / JSON-LD approach of Solid could possibly be bypassed reasonably by just storing blobs with some metadata, but I'm not very familiar with Solid.

                                        For backups we'd mostly be storing bundled archives of events anyway, so it isn't super important that thhose archives be semantically indexed as long as we can just store our serialized archive blobs.

                                        @FenTiger @strypey @benpate @activitypods @erlend

                                        strypey@mastodon.nzoss.nzS 1 Reply Last reply
                                        0
                                        • zicklag@mastodon.socialZ zicklag@mastodon.social

                                          > So "channels" and "servers" (as Discord uses these terms) would be tied to the originating server, like MUC in XMPP?

                                          Yes.

                                          If I understand XMPP right, we have an advantage also in that we can have chat spaces use domains like handles for discovery, but it's possible to change the handle and the hosting server without everybody having to re-join.

                                          @strypey @benpate @klu9

                                          strypey@mastodon.nzoss.nzS This user is from outside of this forum
                                          strypey@mastodon.nzoss.nzS This user is from outside of this forum
                                          strypey@mastodon.nzoss.nz
                                          wrote last edited by
                                          #26

                                          @zicklag
                                          > chat spaces [can] use domains like handles for discovery, but it's possible to change the handle and the hosting server

                                          Ah, so the answer to my question above is more like yes *and* no. Your spaces aren't distributed across participating servers like @matrix spaces. But they can move servers, unlike in @xmpp. I had a skim through both the MUC and spaces specs and can't see anything about portability;

                                          https://xmpp.org/extensions/xep-0045.html

                                          https://xmpp.org/extensions/inbox/spaces.html

                                          @benpate @klu9

                                          1 Reply Last reply
                                          0

                                          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 Login
                                          Reply
                                          • Reply as topic
                                          Log in to reply
                                          • Oldest to Newest
                                          • Newest to Oldest
                                          • Most Votes


                                          • Login

                                          • Don't have an account? Register

                                          • Login or register to search.
                                          Powered by NodeBB Contributors
                                          • First post
                                            Last post
                                          0
                                          • Categories
                                          • Recent
                                          • Tags
                                          • Popular
                                          • World
                                          • Users
                                          • Groups