OK, I've got a question for #ActivityPub developers. I'm working on an extended example for the O'Reilly Media book I'm writing, focusing on the federation protocol. I'm going to cover using HTTP Signature, handling and sending the important set of Activity types defined in the AP spec (Follow, Create, Add, ...).
My problem is that creating a real social network application requires a lot more than just the federation part. Registration, signup, login, settings, email verification -- it's a lot of code. And I'm writing a book specifically about the protocols and APIs, not about how to make a social network app.
So, instead of making a full-fledged social network account server, I'm thinking of having the actors be bots. They can be useful bots, so it's not a completely toy project, but they wouldn't need to be as carefully managed as accounts for real people.
My question for you, software developer, is: if you were reading this book, would you understand what was going on here -- as long as it's carefully explained in the text? Would you be able to make the leap of mapping the actors to real users of your CMS, photo sharing app, or gaming network?
@evan I'm currently about to implement HTTP Signature, and it's the first time since I started working on ActivityPub features that I feel lost, mainly due to the fact that it looks like people are implementing a patched older version of the standard rather than the most recent one, or I'm really confused (I asked about it on Mastodon's GitHub discussions since I'm following their implementation, but never got an answer: https://github.com/mastodon/mastodon/discussions/28123 ).
So yeah, I understand HTTP Signature and Webfinger are not ActivityPub, yet they're needed to write Fediverse compatible apps, and if I was reading a book about ActivityPub and I end up not being to build something actually useful with it in the end, I would feel really disappointed (I'm severely biased toward learning by building, though, maybe it's just me).
My other option is including an implementation of the ActivityPub API, but it would still need to do all the interesting stuff necessary to make a working account.
I think the other downside of this plan is that this is probably the hard way to make a bot. The right way is to make a script that calls the ActivityPub API or Mastodon API. Using an implementation of the ActivityPub protocol is definitely the hard way around.
@evan when I write systems that conform to protocols what I find the most distressing is no way to test except pointing it at various production services. This is a problem that can be solved and is the sort of thing that would help people like me who poke at things in a deep sort of way.