Skip to content
0
  • Categories
  • Recent
  • Tags
  • Popular
  • World
  • Users
  • Groups
  • 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
Brand Logo

fedi wiki

  1. Home
  2. Technical Discussion
  3. So I usually hate sending over bluesky links anywhere since I'm not a fan, but Rob Ricci highlights some important distinctions between #activitypub and #atproto

So I usually hate sending over bluesky links anywhere since I'm not a fan, but Rob Ricci highlights some important distinctions between #activitypub and #atproto

Scheduled Pinned Locked Moved Technical Discussion
activitypubatprotomastodonblueskybsky
23 Posts 6 Posters 6 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.
  • innocentzero@social.tchncs.deI This user is from outside of this forum
    innocentzero@social.tchncs.deI This user is from outside of this forum
    innocentzero@social.tchncs.de
    wrote last edited by
    #1

    So I usually hate sending over bluesky links anywhere since I'm not a fan, but Rob Ricci highlights some important distinctions between #activitypub and #atproto

    Fundamentally, activitypub is designed to be useful with a partial view of the network. (Narrowing down to #mastodon here) Likes are communicated, mentions are communicated, and so on.

    Over at atproto land, you have no option but to write to your repo, and so you have no choice but to view the entire network to say, find replies and such (narrowing to #bluesky here). So the only way you can get your data is to read the network and filter it yourself, or have someone else do it for you, which doesn't solve the problem, only shift it.

    https://bsky.app/profile/ricci.io/post/3mooua5znk225

    #bluesky #bsky #atproto #mastodon #fediverse #activitypub

    innocentzero@social.tchncs.deI thisismissem@activitypub.spaceT 2 Replies Last reply
    0
    • innocentzero@social.tchncs.deI innocentzero@social.tchncs.de

      So I usually hate sending over bluesky links anywhere since I'm not a fan, but Rob Ricci highlights some important distinctions between #activitypub and #atproto

      Fundamentally, activitypub is designed to be useful with a partial view of the network. (Narrowing down to #mastodon here) Likes are communicated, mentions are communicated, and so on.

      Over at atproto land, you have no option but to write to your repo, and so you have no choice but to view the entire network to say, find replies and such (narrowing to #bluesky here). So the only way you can get your data is to read the network and filter it yourself, or have someone else do it for you, which doesn't solve the problem, only shift it.

      https://bsky.app/profile/ricci.io/post/3mooua5znk225

      #bluesky #bsky #atproto #mastodon #fediverse #activitypub

      innocentzero@social.tchncs.deI This user is from outside of this forum
      innocentzero@social.tchncs.deI This user is from outside of this forum
      innocentzero@social.tchncs.de
      wrote last edited by
      #2

      https://overreacted.io/there-are-no-instances-in-atproto/

      While having an extremely snobbish and arrogant tone, I think it makes some good points about separating hosting from viewing, which I think the usual #fediverse sort of conflates. And while the doesn't doesn't cover it, #atproto also has the unique feature of your data being relatively portable, largely absent in #fediverse.

      #fediverse #atproto #bluesky #mastodon #lemmy #activitypub

      innocentzero@social.tchncs.deI 1 Reply Last reply
      0
      • innocentzero@social.tchncs.deI innocentzero@social.tchncs.de

        https://overreacted.io/there-are-no-instances-in-atproto/

        While having an extremely snobbish and arrogant tone, I think it makes some good points about separating hosting from viewing, which I think the usual #fediverse sort of conflates. And while the doesn't doesn't cover it, #atproto also has the unique feature of your data being relatively portable, largely absent in #fediverse.

        #fediverse #atproto #bluesky #mastodon #lemmy #activitypub

        innocentzero@social.tchncs.deI This user is from outside of this forum
        innocentzero@social.tchncs.deI This user is from outside of this forum
        innocentzero@social.tchncs.de
        wrote last edited by
        #3

        On the other hand, the post largely glosses over the actual cost of running it, which Rob addresses above.

        In fact, it entirely skips relays, which are so fundamental now, and in particular, that every #atproto app effectively needs to consume one.

        (If your atproto app doesn't consume from a relay, it HAS an embedded relay, and in that case, god help your app's compute consumption).

        #atproto #bluesky

        innocentzero@social.tchncs.deI ricci@discuss.systemsR 2 Replies Last reply
        0
        • innocentzero@social.tchncs.deI innocentzero@social.tchncs.de

          On the other hand, the post largely glosses over the actual cost of running it, which Rob addresses above.

          In fact, it entirely skips relays, which are so fundamental now, and in particular, that every #atproto app effectively needs to consume one.

          (If your atproto app doesn't consume from a relay, it HAS an embedded relay, and in that case, god help your app's compute consumption).

          #atproto #bluesky

          innocentzero@social.tchncs.deI This user is from outside of this forum
          innocentzero@social.tchncs.deI This user is from outside of this forum
          innocentzero@social.tchncs.de
          wrote last edited by
          #4

          Having said that, and also disliking the fact that it came out of corpo billionaire creators of twitter, I genuinely believe there's some good stuff to pick up from that protocol.

          In particular, I think the coolest part of the architecture is server-independent (more like server-migratable) identity, which is kind of amazing.

          Activitypub/fediverse should adopt https://helge.codeberg.page/fep/fep/ef61/ soon, and I feel like that'd be even better than what atproto has if I understand correctly.

          #activitypub #fediverse #atproto #bluesky #mastodon #federated #protocols

          innocentzero@social.tchncs.deI smallcircles@social.coopS 2 Replies Last reply
          1
          0
          • innocentzero@social.tchncs.deI innocentzero@social.tchncs.de

            Having said that, and also disliking the fact that it came out of corpo billionaire creators of twitter, I genuinely believe there's some good stuff to pick up from that protocol.

            In particular, I think the coolest part of the architecture is server-independent (more like server-migratable) identity, which is kind of amazing.

            Activitypub/fediverse should adopt https://helge.codeberg.page/fep/fep/ef61/ soon, and I feel like that'd be even better than what atproto has if I understand correctly.

            #activitypub #fediverse #atproto #bluesky #mastodon #federated #protocols

            innocentzero@social.tchncs.deI This user is from outside of this forum
            innocentzero@social.tchncs.deI This user is from outside of this forum
            innocentzero@social.tchncs.de
            wrote last edited by
            #5

            Hate to mention people out of the blue, but @ricci @cwebber if you can vet this info it'd be great. You two seem like the experts in these two topics, and I don't want to get stuff wrong. Thanks.

            ricci@discuss.systemsR cwebber@social.coopC 2 Replies Last reply
            0
            • innocentzero@social.tchncs.deI innocentzero@social.tchncs.de

              Hate to mention people out of the blue, but @ricci @cwebber if you can vet this info it'd be great. You two seem like the experts in these two topics, and I don't want to get stuff wrong. Thanks.

              ricci@discuss.systemsR This user is from outside of this forum
              ricci@discuss.systemsR This user is from outside of this forum
              ricci@discuss.systems
              wrote last edited by
              #6

              @innocentzero @cwebber

              FWIW, I didn't personally find this article to be particularly snobbish or arrogant. I think it's quite well written, and while it does have a particular viewpoint and is written with a strong voice, I think it's making a good faith attempt to explain something that is a frequent point of confusion/contention when people are discussing the fediverse and atmosphere.

              However, I think it uses a metaphor that's flawed enough that it's not really helping; here's my part of the thread on that:

              https://bsky.app/profile/ricci.io/post/3moogiuvkjc2e

              In short, article positions the data storage (PDS) as the blog in its analogy, but I think the PDS is actually more like the backend database for the blog. When people familiar with the fediverse and Web in general ask "why are there not more atproto instances" they are not asking why there are not more databases with people's raw blog posts in them, they are asking why all the blogs are served through a small number of websites.

              This particular exchange, I think, helps to clearly explain the difference in how Dan and I are looking at these networks:

              https://bsky.app/profile/danabra.mov/post/3moovf2g2dk2u

              https://bsky.app/profile/ricci.io/post/3moovkbywnc2t

              ricci@discuss.systemsR wjmaggos@liberal.cityW 2 Replies Last reply
              0
              • innocentzero@social.tchncs.deI innocentzero@social.tchncs.de

                On the other hand, the post largely glosses over the actual cost of running it, which Rob addresses above.

                In fact, it entirely skips relays, which are so fundamental now, and in particular, that every #atproto app effectively needs to consume one.

                (If your atproto app doesn't consume from a relay, it HAS an embedded relay, and in that case, god help your app's compute consumption).

                #atproto #bluesky

                ricci@discuss.systemsR This user is from outside of this forum
                ricci@discuss.systemsR This user is from outside of this forum
                ricci@discuss.systems
                wrote last edited by
                #7

                @innocentzero Relays are often described as an optimization in the network, and I think Dan left them out out of a legitimate attempt to keep the article relatively simple and digestible.

                However, I would argue that they are a load-bearing optimization; in a version of the atproto network without them, running a PDS would be vastly more expensive because you'd have to be maintain open websockets to every single application (which is actually what Dan has drawn); this is fine if there are only a couple of applications, but scales poorly.

                innocentzero@social.tchncs.deI 1 Reply Last reply
                0
                • ricci@discuss.systemsR ricci@discuss.systems

                  @innocentzero @cwebber

                  FWIW, I didn't personally find this article to be particularly snobbish or arrogant. I think it's quite well written, and while it does have a particular viewpoint and is written with a strong voice, I think it's making a good faith attempt to explain something that is a frequent point of confusion/contention when people are discussing the fediverse and atmosphere.

                  However, I think it uses a metaphor that's flawed enough that it's not really helping; here's my part of the thread on that:

                  https://bsky.app/profile/ricci.io/post/3moogiuvkjc2e

                  In short, article positions the data storage (PDS) as the blog in its analogy, but I think the PDS is actually more like the backend database for the blog. When people familiar with the fediverse and Web in general ask "why are there not more atproto instances" they are not asking why there are not more databases with people's raw blog posts in them, they are asking why all the blogs are served through a small number of websites.

                  This particular exchange, I think, helps to clearly explain the difference in how Dan and I are looking at these networks:

                  https://bsky.app/profile/danabra.mov/post/3moovf2g2dk2u

                  https://bsky.app/profile/ricci.io/post/3moovkbywnc2t

                  ricci@discuss.systemsR This user is from outside of this forum
                  ricci@discuss.systemsR This user is from outside of this forum
                  ricci@discuss.systems
                  wrote last edited by
                  #8

                  @innocentzero @cwebber One of the things I consistently see in these discussion is a conflation of "is cheap to run now" with "scales". This evening, when I pushed a bit more on this, the point that I got to is that people using and running this infrastructure don't seem to expect the network to grow a lot; they seem to think that it has basically reached the order of magnitude that it will be for the foreseeable future. I think this is a fine position to take, and I agree with them that things like relays and jetstreams will remain relatively affordable to run at even 10x the current network size.

                  But this is at odds with the more aggressive boosters who treat this as the way to build all social applications going forward.

                  If you think atproto will support a collection of applications that are, in aggregate, 10x the current size, sure, community infrastructure will continue to be cheap to run and the large amounts of data *someone* has to ingest for your small app or community is fine. If you think it will get to Twitter size (100x), I think you are probably wrong about this. If you think it will get to Facebook size, no way.

                  1 Reply Last reply
                  0
                  • ricci@discuss.systemsR ricci@discuss.systems

                    @innocentzero Relays are often described as an optimization in the network, and I think Dan left them out out of a legitimate attempt to keep the article relatively simple and digestible.

                    However, I would argue that they are a load-bearing optimization; in a version of the atproto network without them, running a PDS would be vastly more expensive because you'd have to be maintain open websockets to every single application (which is actually what Dan has drawn); this is fine if there are only a couple of applications, but scales poorly.

                    innocentzero@social.tchncs.deI This user is from outside of this forum
                    innocentzero@social.tchncs.deI This user is from outside of this forum
                    innocentzero@social.tchncs.de
                    wrote last edited by
                    #9

                    @ricci Yeah, that's sort of what I meant when I said 'every app has an embedded relay'

                    The apps have to pull in from the PDS in that case, which makes the app (appview?) itself vastly more compute-intensive, since relays are inherently costly, so to speak.

                    ricci@discuss.systemsR 1 Reply Last reply
                    0
                    • innocentzero@social.tchncs.deI innocentzero@social.tchncs.de

                      @ricci Yeah, that's sort of what I meant when I said 'every app has an embedded relay'

                      The apps have to pull in from the PDS in that case, which makes the app (appview?) itself vastly more compute-intensive, since relays are inherently costly, so to speak.

                      ricci@discuss.systemsR This user is from outside of this forum
                      ricci@discuss.systemsR This user is from outside of this forum
                      ricci@discuss.systems
                      wrote last edited by
                      #10

                      @innocentzero mmmm.... I think in a world without relays, it's actually the PDSes that suffer more, unless there are very few apps/appviews. The total bandwidth the app has to ingest (assuming it wants the whole network view) is basically the same whether you are pulling from a relay or from a bunch of individual PDSes; it's more websockets, which has a cost, but manageable.

                      However, right each PDS only has to *upload* to a fairly small number of relays and a few oddball applications that connect to it directly (actually I run my own PDS, I should check this :). Without a relay, the PDS has to serve every app individually.

                      I think one thing that has become clear to me in discussions this evening is that many atproto developers are assuming a world with not very many apps, why is why they are not very concerned about this.

                      innocentzero@social.tchncs.deI 1 Reply Last reply
                      0
                      • ricci@discuss.systemsR ricci@discuss.systems

                        @innocentzero mmmm.... I think in a world without relays, it's actually the PDSes that suffer more, unless there are very few apps/appviews. The total bandwidth the app has to ingest (assuming it wants the whole network view) is basically the same whether you are pulling from a relay or from a bunch of individual PDSes; it's more websockets, which has a cost, but manageable.

                        However, right each PDS only has to *upload* to a fairly small number of relays and a few oddball applications that connect to it directly (actually I run my own PDS, I should check this :). Without a relay, the PDS has to serve every app individually.

                        I think one thing that has become clear to me in discussions this evening is that many atproto developers are assuming a world with not very many apps, why is why they are not very concerned about this.

                        innocentzero@social.tchncs.deI This user is from outside of this forum
                        innocentzero@social.tchncs.deI This user is from outside of this forum
                        innocentzero@social.tchncs.de
                        wrote last edited by
                        #11

                        @ricci Ah, that makes sense, I was thinking more along the lines of relays collecting all that data and then aggregating it (do relays do it?)

                        Also, I have this eternal confusion on whether relays pull from PDSes or PDSes push to relays. If it's the latter, how do new relays advertise themselves to the PDSes?

                        ricci@discuss.systemsR 2 Replies Last reply
                        0
                        • innocentzero@social.tchncs.deI innocentzero@social.tchncs.de

                          @ricci Ah, that makes sense, I was thinking more along the lines of relays collecting all that data and then aggregating it (do relays do it?)

                          Also, I have this eternal confusion on whether relays pull from PDSes or PDSes push to relays. If it's the latter, how do new relays advertise themselves to the PDSes?

                          ricci@discuss.systemsR This user is from outside of this forum
                          ricci@discuss.systemsR This user is from outside of this forum
                          ricci@discuss.systems
                          wrote last edited by
                          #12

                          @innocentzero It's probably better to think of them as streaming rather than push or pull; a relay connects to a PDS, says "hey what's going on", and from that point on, every record created on the PDS (posts, likes, etc.) gets sent along that stream.

                          You *can* do what's called backfill, where the relay fetches older stuff too, so that the relay's clients can get that older data straight from the relay. However, this is expensive. Real expensive. So expensive that even the official Bluesky relays don't support it anymore. This is one point of common misunderstanding; back when this was the way relays worked, they were up in the ream of VC-money-required. However, this is no longer the case.

                          People still do backfill for some purposes. However, now, they do it by contacting the PDSes directly.

                          1 Reply Last reply
                          0
                          • innocentzero@social.tchncs.deI innocentzero@social.tchncs.de

                            @ricci Ah, that makes sense, I was thinking more along the lines of relays collecting all that data and then aggregating it (do relays do it?)

                            Also, I have this eternal confusion on whether relays pull from PDSes or PDSes push to relays. If it's the latter, how do new relays advertise themselves to the PDSes?

                            ricci@discuss.systemsR This user is from outside of this forum
                            ricci@discuss.systemsR This user is from outside of this forum
                            ricci@discuss.systems
                            wrote last edited by
                            #13

                            @innocentzero Relays do relatively little work, in the sense that they "just" take in records from a bunch of PDS streams on one side, and spit them out on a single stream on the other side. (Actually, they spit out multiple streams, one per client; but the basic work is the same.)

                            Something to be aware of is that in addition to relays, there are jetstreams; these are services that *filter* the events for you. So, if you want to run a small app, one that doesn't care about all the Bluesky posts the relay is sending you, or that only wants events for a few users, or whatever, a jetstream consumes the output of a relay, and outputs just the subset you asked for.

                            These services have more work to do, because they have to output a different stream for every client. They also do some things that make developers' lives easier, like convert the CBOR binary format to plain JSON, and check a bunch of the crypto for you.

                            At current scales? Jetstreams are still not too expensive, especially if you have few clients. If you think that the atproto network is approximately done growing, all is good. If you think it's the future of all social applications, good luck running community ones in that future.

                            innocentzero@social.tchncs.deI 1 Reply Last reply
                            0
                            • ricci@discuss.systemsR ricci@discuss.systems

                              @innocentzero Relays do relatively little work, in the sense that they "just" take in records from a bunch of PDS streams on one side, and spit them out on a single stream on the other side. (Actually, they spit out multiple streams, one per client; but the basic work is the same.)

                              Something to be aware of is that in addition to relays, there are jetstreams; these are services that *filter* the events for you. So, if you want to run a small app, one that doesn't care about all the Bluesky posts the relay is sending you, or that only wants events for a few users, or whatever, a jetstream consumes the output of a relay, and outputs just the subset you asked for.

                              These services have more work to do, because they have to output a different stream for every client. They also do some things that make developers' lives easier, like convert the CBOR binary format to plain JSON, and check a bunch of the crypto for you.

                              At current scales? Jetstreams are still not too expensive, especially if you have few clients. If you think that the atproto network is approximately done growing, all is good. If you think it's the future of all social applications, good luck running community ones in that future.

                              innocentzero@social.tchncs.deI This user is from outside of this forum
                              innocentzero@social.tchncs.deI This user is from outside of this forum
                              innocentzero@social.tchncs.de
                              wrote last edited by
                              #14

                              @ricci ah thanks, I think I mixed relays with jetstreams. That makes sense.

                              ricci@discuss.systemsR 1 Reply Last reply
                              0
                              • innocentzero@social.tchncs.deI innocentzero@social.tchncs.de

                                @ricci ah thanks, I think I mixed relays with jetstreams. That makes sense.

                                ricci@discuss.systemsR This user is from outside of this forum
                                ricci@discuss.systemsR This user is from outside of this forum
                                ricci@discuss.systems
                                wrote last edited by
                                #15

                                @innocentzero yeah, there are a bunch of pieces to keep track of.

                                ricci@discuss.systemsR 1 Reply Last reply
                                0
                                • ricci@discuss.systemsR ricci@discuss.systems

                                  @innocentzero yeah, there are a bunch of pieces to keep track of.

                                  ricci@discuss.systemsR This user is from outside of this forum
                                  ricci@discuss.systemsR This user is from outside of this forum
                                  ricci@discuss.systems
                                  wrote last edited by
                                  #16

                                  @innocentzero By the way, Jetstreams were not, and still are not, officially standardized atproto objects. In fact, they don't speak atproto to their clients. They were originally a side project by one of the Bluesky team members, and have become a load-bearing side project for many of the apps that are not Bluesky.

                                  In much the same way that some people are kind of irked at Mastodon for adopting some of its own APIs or doing other ActivityPub things in non-standard ways, jetstream is sort of a hack that solves real problems but does so off-protocol.

                                  1 Reply Last reply
                                  0
                                  • innocentzero@social.tchncs.deI innocentzero@social.tchncs.de

                                    Having said that, and also disliking the fact that it came out of corpo billionaire creators of twitter, I genuinely believe there's some good stuff to pick up from that protocol.

                                    In particular, I think the coolest part of the architecture is server-independent (more like server-migratable) identity, which is kind of amazing.

                                    Activitypub/fediverse should adopt https://helge.codeberg.page/fep/fep/ef61/ soon, and I feel like that'd be even better than what atproto has if I understand correctly.

                                    #activitypub #fediverse #atproto #bluesky #mastodon #federated #protocols

                                    smallcircles@social.coopS This user is from outside of this forum
                                    smallcircles@social.coopS This user is from outside of this forum
                                    smallcircles@social.coop
                                    wrote last edited by
                                    #17

                                    @innocentzero

                                    Nice thread. Note that it is better to refer to the official FEP location at https://fediverse.codeberg.page/fep/fep/ef61/

                                    innocentzero@social.tchncs.deI 1 Reply Last reply
                                    0
                                    • ricci@discuss.systemsR ricci@discuss.systems

                                      @innocentzero @cwebber

                                      FWIW, I didn't personally find this article to be particularly snobbish or arrogant. I think it's quite well written, and while it does have a particular viewpoint and is written with a strong voice, I think it's making a good faith attempt to explain something that is a frequent point of confusion/contention when people are discussing the fediverse and atmosphere.

                                      However, I think it uses a metaphor that's flawed enough that it's not really helping; here's my part of the thread on that:

                                      https://bsky.app/profile/ricci.io/post/3moogiuvkjc2e

                                      In short, article positions the data storage (PDS) as the blog in its analogy, but I think the PDS is actually more like the backend database for the blog. When people familiar with the fediverse and Web in general ask "why are there not more atproto instances" they are not asking why there are not more databases with people's raw blog posts in them, they are asking why all the blogs are served through a small number of websites.

                                      This particular exchange, I think, helps to clearly explain the difference in how Dan and I are looking at these networks:

                                      https://bsky.app/profile/danabra.mov/post/3moovf2g2dk2u

                                      https://bsky.app/profile/ricci.io/post/3moovkbywnc2t

                                      wjmaggos@liberal.cityW This user is from outside of this forum
                                      wjmaggos@liberal.cityW This user is from outside of this forum
                                      wjmaggos@liberal.city
                                      wrote last edited by
                                      #18

                                      @ricci @innocentzero

                                      yes people are really asking about the "small number of websites" or "copies of the app" phrasing used in the thread.

                                      I believe @cwebber said it before but the power lies in who runs the websites/apps and lessening the concentration of power is why we care about decentralization. the choices they make affect everyone using their services. and even if switching is possible, defaults persist for most users. and their experience changes them, and we share a society with them.

                                      1 Reply Last reply
                                      0
                                      • smallcircles@social.coopS smallcircles@social.coop

                                        @innocentzero

                                        Nice thread. Note that it is better to refer to the official FEP location at https://fediverse.codeberg.page/fep/fep/ef61/

                                        innocentzero@social.tchncs.deI This user is from outside of this forum
                                        innocentzero@social.tchncs.deI This user is from outside of this forum
                                        innocentzero@social.tchncs.de
                                        wrote last edited by
                                        #19

                                        @smallcircles welp, thanks! Mb on that

                                        1 Reply Last reply
                                        0
                                        • innocentzero@social.tchncs.deI innocentzero@social.tchncs.de

                                          Hate to mention people out of the blue, but @ricci @cwebber if you can vet this info it'd be great. You two seem like the experts in these two topics, and I don't want to get stuff wrong. Thanks.

                                          cwebber@social.coopC This user is from outside of this forum
                                          cwebber@social.coopC This user is from outside of this forum
                                          cwebber@social.coop
                                          wrote last edited by
                                          #20

                                          @innocentzero @ricci somewhat relevant https://social.coop/@cwebber/116782178524774816

                                          1 Reply Last reply
                                          0
                                          • silverpill@mitra.socialS silverpill@mitra.social 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 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