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 (Cyborg)
  • No Skin
Collapse
Brand Logo

CIRCLE WITH A DOT

  1. Home
  2. Uncategorized
  3. When I first started working with #ActivityPub, before #Fedify existed, it felt like writing web apps in Perl and CGI in the late '90s.

When I first started working with #ActivityPub, before #Fedify existed, it felt like writing web apps in Perl and CGI in the late '90s.

Scheduled Pinned Locked Moved Uncategorized
fedifyfedidevfediverseactivitypub
10 Posts 6 Posters 1 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.
  • hongminhee@hollo.socialH This user is from outside of this forum
    hongminhee@hollo.socialH This user is from outside of this forum
    hongminhee@hollo.social
    wrote last edited by
    #1

    When I first started working with #ActivityPub, before #Fedify existed, it felt like writing web apps in Perl and CGI in the late '90s. Interesting, even exciting—but never comfortable. That era where your business logic and your protocol plumbing were just… the same thing:

    print "HTTP/1.1 200 OK"
    print "Content-Type: text/html"
    print
    print "Hello, world!"
    

    Decades of web development have given us layers of abstraction we now take for granted. Nobody hand-parses application/x-www-form-urlencoded query strings anymore. Nobody writes their own JSON codec, or manually constructs HTTP request/response messages. These things just aren't your problem when you're building an app.

    ActivityPub development still feels like they are your problem. What do you do when the https://www.w3.org/ns/activitystreams#actor property comes in as a string instead of an array? What about when https://www.w3.org/ns/activitystreams#object is an embedded entity rather than a URI? How exactly do you implement HTTP Signatures? And wait—what's Linked Data Signatures, and do you need that too?

    The real issue isn't that ActivityPub is complicated per se. It's that you can't get away with understanding it at a high level. You have to know it the way an implementor knows it—every edge case, every inconsistency in how different servers serialize JSON-LD, every signature scheme that exists in the wild. That's a lot to learn before you can even start thinking about your actual app. And when developers understandably cut corners on the protocol to focus on their product, it quietly becomes an interoperability problem for the whole ecosystem.

    What I want ActivityPub development to feel like: you spend a day understanding the big picture, and then you just… build your app. That was the goal when I started Fedify, and honestly, we're not fully there yet. But it's where I want to get.

    #fedidev #fediverse

    1 Reply Last reply
    1
    0
    • R relay@relay.an.exchange shared this topic
    • julian@activitypub.spaceJ This user is from outside of this forum
      julian@activitypub.spaceJ This user is from outside of this forum
      julian@activitypub.space
      wrote last edited by
      #2

      @hongminhee@hollo.social I think you're completely right, and this is coming from somebody who went deep into the weeds of ActivityPub when building out his own implementation.

      Generic C2S servers offload the server side aspects to a trusted third party.

      Generic S2S servers give you even more control.

      We need both! We need fewer idiots like me who decided to implement the entire protocol from the ground up 🤣

      Do it @hongminhee@hollo.social! DEPRECATE ALL MY HARD WORK ALREADY!!!

      1 Reply Last reply
      1
      0
      • rick@rmendes.netR This user is from outside of this forum
        rick@rmendes.netR This user is from outside of this forum
        rick@rmendes.net
        wrote last edited by
        #3
        With Fedify & Claude code it took me just 1 few hours to develop a indiekit plugin to exist on the Fediverse with @rick@rmendes.net I spent more time on creating the AP reader to consume data from the Fediverse than anything else that's for sure! Thanks for your absolutely amazing foundational work with Fedify!
        hongminhee@hollo.socialH 1 Reply Last reply
        0
        • ? Offline
          ? Offline
          Guest
          wrote last edited by
          #4

          @hongminhee Better developer tooling is the only correct answer to rising complexity. Getting 200 different servers to smoothly interoperate is impossible, but we can do that with 10 libraries.

          1 Reply Last reply
          0
          • hongminhee@hollo.socialH This user is from outside of this forum
            hongminhee@hollo.socialH This user is from outside of this forum
            hongminhee@hollo.social
            wrote last edited by
            #5

            @julian@activitypub.space Haha, most ActivityPub implementers have their own frameworks, they just haven't separated them out! It would be really great if there were full-featured ActivityPub frameworks for each of the major programming languages.

            1 Reply Last reply
            1
            0
            • rick@rmendes.netR rick@rmendes.net
              With Fedify & Claude code it took me just 1 few hours to develop a indiekit plugin to exist on the Fediverse with @rick@rmendes.net I spent more time on creating the AP reader to consume data from the Fediverse than anything else that's for sure! Thanks for your absolutely amazing foundational work with Fedify!
              hongminhee@hollo.socialH This user is from outside of this forum
              hongminhee@hollo.socialH This user is from outside of this forum
              hongminhee@hollo.social
              wrote last edited by
              #6

              @rick@rmendes.net Great work, Ricardo! And thank you for using Fedify!

              1 Reply Last reply
              1
              0
              • quaff@thecanadian.socialQ This user is from outside of this forum
                quaff@thecanadian.socialQ This user is from outside of this forum
                quaff@thecanadian.social
                wrote last edited by
                #7

                @hongminhee Is there no official reference SDK for AP?

                liaizon@social.wake.stL 1 Reply Last reply
                0
                • quaff@thecanadian.socialQ quaff@thecanadian.social

                  @hongminhee Is there no official reference SDK for AP?

                  liaizon@social.wake.stL This user is from outside of this forum
                  liaizon@social.wake.stL This user is from outside of this forum
                  liaizon@social.wake.st
                  wrote last edited by
                  #8

                  @quaff @hongminhee nope, theres not an official anything...

                  quaff@thecanadian.socialQ 1 Reply Last reply
                  1
                  0
                  • liaizon@social.wake.stL liaizon@social.wake.st

                    @quaff @hongminhee nope, theres not an official anything...

                    quaff@thecanadian.socialQ This user is from outside of this forum
                    quaff@thecanadian.socialQ This user is from outside of this forum
                    quaff@thecanadian.social
                    wrote last edited by
                    #9

                    @liaizon @hongminhee speaks to the nature of truly open protocols. but would be cool if there was one that devs could rally behind because it's got the best coverage of the spec.

                    liaizon@social.wake.stL 1 Reply Last reply
                    0
                    • quaff@thecanadian.socialQ quaff@thecanadian.social

                      @liaizon @hongminhee speaks to the nature of truly open protocols. but would be cool if there was one that devs could rally behind because it's got the best coverage of the spec.

                      liaizon@social.wake.stL This user is from outside of this forum
                      liaizon@social.wake.stL This user is from outside of this forum
                      liaizon@social.wake.st
                      wrote last edited by
                      #10

                      @quaff @hongminhee thats the main issue, "the spec" doesn't have the coverage to have an implementation to cover it all. there are a ton of things that are under defined in it or that you need to point to some other spec that points to some other spec etc. thats sorta at the heart of this whole meta conversation thats been taking place recently

                      1 Reply Last reply
                      1
                      0
                      Reply
                      • Reply as topic
                      Log in to reply
                      • Oldest to Newest
                      • Newest to Oldest
                      • Most Votes


                      • Login

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