I've never quite understood the appeal of ActivityPub.
Looking at the list of goals in the article, the only benefit in addition to what can easily be done with RSS is knowing who follows me. Maybe its just me, but if I'm writing to a blog or a microblog I just don't really care who follows me or even who reads it.
There are more social features built into ActivityPub, likes and shares for example, but at that point I'm likely not running my own server and am trusting a third party to do it for me. The idea that there are multiple hosts I can choose to trust rather than one centralized one feels more like a principled argument than one based on real benefits of, for example, owning my own content or censorship resistance.
I hate that the conversation online has moved from distributed to federated, I understand that running p2p software is harder for the user, but I feel like actually distributed microblogging / social networks are the right choice going forwards.
Not even microblogging, jut blogging in general. ActivityPub could be a replacement for RSS readers. I consider a platform that allows you to mix microblogs, blogs, podcasts, videos, and livestreams/events the "endgame" - all of which can be done with ActivityPub (albeit with different projects today). Unfortunately this is not the type of project that I would find interesting at all to write.
> if I'm writing to a blog or a microblog I just don't really care who follows me or even who reads it.
- if you want to have comments or backtracks, you can do it with ActivityPub without having people signing up to your site (directly or through some OAuth system)
- If you want to mitigate spam, you can set up your AP blog to only accept messages on the inbox from actors who you whitelist.
- You could have your own Substack where you only send the updates to actors who are paying subscribers.
> if you want to have comments or backtracks, you can do it with ActivityPub without having people signing up to your site (directly or through some OAuth system)
You can do the same thing with RSS+We mention, which is a way simpler stack and predates ActivityPub by years
Webmentions are a spammer's wet dream. There is a reason they were adopted only by the Indieweb crowd.
Anyway, my point was less "ActivityPub can do everything people can do with RSS" and more "having a mechanism to for bidirectional authenticated messages opens up the possibility of new applications".
The real interesting part will happen when/if more developers realize that ActivityPub can do more than "federated versions of popular social media platforms".
I might be misunderstanding what you're saying here. How is ActivityPub more authenticated than Webmention? WM requires the poster to host their content on a website. This is exactly what the AP spec says to do. Now, since the spec was published, most AP implementations also support HTTP signatures[0], but this doesn't provide additional guarantees that you can't get with WM. The authentication is still tied to a URL.
As far as spamming goes, I don't see how WM is any worse than AP. In both protocols your only options are passlists and/or blocklists.
[0]: And an old version that doesn't have an official spec. ActivityPub's issues with spec stagnation and de facto standards is a whole other thing.
I haven't dug into these, so apologies for the naive question, but for a multi-tenant service like WordPress.com, can you effectively limit which WordPress blogs can WebMention you? If the allowlist is formed on the domain, this seems limiting.
Perhaps more advanced URL regex can achieve more fine-grained control but I do still see advantages in pubkey auth (especially if people want to move their content.)
Still, I do find myself wishing for a lighterweight-than-ActivityPub middleground.
You're right, in default configurations ActivityPub definitely has an advantage here, since HTTPsigs are tied to users, not instances, which gives finer grained blocking. I'm not aware of anything like this for Webmention.
I suspect this is because WM is used far less than AP. It also grew out of a community (IndieWeb) where having your own domain is a core tenet.
I think something like Mastodon could work with WM though, since all URLs hang off of user URLs, so you could block by URL prefix, ie "block https://example.com/user1/*".
The OP here specifically wasn't including any auth features, which I was pretty sure would mean backtracks and comments aren't supported but maybe that's wring. It is possible with ActivityPub, but I'd personally be hesitant to run my own OAuth server just for a microblog.
Regardless, my underlying point really is about what I expect of a microblog. If I'm hosting it myself I just want it to be my little corner of the internet, not a full fledged social media site that I have to maintain. That doesn't mean I'm right or that others don't expect more.
> If I'm hosting it myself I just want it to be my little corner of the internet, not a full fledged social media site that I have to maintain.
I think the problem is that OP is focused on developing a framework for AP, and he is dogfooding it by developing an application that other people can understand without too many new concepts.
The appeal, at least for me, is having a social layer on top of your own stuff. Are you familiar with POSSE (Publish (on your) Own Site, Syndicate Elsewhere)? With AP you skip the whole second part because it's automatically syndicated everywhere the moment you post on your own site.
I'm having good results with the WordPress ActivityPub plugin on my blog[1].
I used to think running my own server for blog stuff was a waste as well. But it’s incredible what can be done with local mini server running Ubuntu and cloud flare tunnels.
With the rising VPS costs I'm starting to wonder if it's better to move my VPS in-house(:D). Electricity-wise I might be break-even but I wonder if the bandwidth I get from my ISP will be the same, not that my services are high-traffic anyway.
Sure, I have a small homelab and use Tailscale for a similar setup to CF tunnels.
That's a bit besides the point though. I'm not saying hosting ActivityPub yourself seems unnecessary, I'm saying that ActivityPub itself seems unnecessary (or at least not worth the costs and overhead).
I've added ActivityPub to my blog system (https://h4kor.github.io/owl-blogs/) as just another way of subscribing to the blog, but found that it is a good model to support interactions.
One of my issues with ActivityPub is that there is no such thing as a cut-down completely static AP feed for blogs. I want Mastodon users to be able to follow my static blog but I don't want to implement the machinery to have full interactivity.
Basically an RSS bridge would work fine. I know such things already exist but it would be cool if it was built into AP.
Right now I just manually post my blog post to my Mastodon account which is perfectly fine.
ActivityPub can be implemented as static files. You do end up with a lot of duplication because activities contain objects, and you need separate URLs for each.
This is an issue with Mastodon (and most of other software that implements only the push-based processing of inbox), but there is nothing on ActivityPub that prevents a client to directly read the actor's outbox.
As a matter of fact, I am working on a fork of a elk right now that is meant to function as a pull-based reader of AP data, so pretty soon you will be able to have your SSG generate an outbox for you and I would get all updates, boost it, etc
I've recently been playing around selfhosting a small single user activitypub server to see how it works. I can't understate how satisfying it's been to wallow in compared to a static site or serverless setup. It unexpectedly tickled that special "oooh, a _system_" part of my brain, a lot.
> To simplify the tutorial, we'll impose the following feature constraints:
> There is no search functionality.
This makes sense for the tutorial, but search functionality would be awesome for discovery, both in terms of people finding your blog as well as finding other interesting blogs to follow. Niche blogs seem more difficult to find these days when Google only seems to surface websites with the right keywords.
Google offers Programmable Search Engine [0], a service where you can create site-specific search box. That's probably good enough for most small personal websites.
RSS is around, but Google successfully relegated it to a grave yard, when they stopped supporting it in a big way. RSS is such a simple and powerful thing, it's a shame it's almost nonexistant. Even ActivityPub should've been "built around and on top of RSS" rather than as a separate thing. Same is true of Nostr. Nostr could've been an extension to RSS and let RSS be the least operative fallback for the entire protocol, but yet the format for all delivery nonetheless.
On a related note, see Hollo: https://github.com/fedify-dev/hollo
I've never quite understood the appeal of ActivityPub.
Looking at the list of goals in the article, the only benefit in addition to what can easily be done with RSS is knowing who follows me. Maybe its just me, but if I'm writing to a blog or a microblog I just don't really care who follows me or even who reads it.
There are more social features built into ActivityPub, likes and shares for example, but at that point I'm likely not running my own server and am trusting a third party to do it for me. The idea that there are multiple hosts I can choose to trust rather than one centralized one feels more like a principled argument than one based on real benefits of, for example, owning my own content or censorship resistance.
I hate that the conversation online has moved from distributed to federated, I understand that running p2p software is harder for the user, but I feel like actually distributed microblogging / social networks are the right choice going forwards.
Not even microblogging, jut blogging in general. ActivityPub could be a replacement for RSS readers. I consider a platform that allows you to mix microblogs, blogs, podcasts, videos, and livestreams/events the "endgame" - all of which can be done with ActivityPub (albeit with different projects today). Unfortunately this is not the type of project that I would find interesting at all to write.
> if I'm writing to a blog or a microblog I just don't really care who follows me or even who reads it.
- if you want to have comments or backtracks, you can do it with ActivityPub without having people signing up to your site (directly or through some OAuth system)
- If you want to mitigate spam, you can set up your AP blog to only accept messages on the inbox from actors who you whitelist.
- You could have your own Substack where you only send the updates to actors who are paying subscribers.
> if you want to have comments or backtracks, you can do it with ActivityPub without having people signing up to your site (directly or through some OAuth system)
You can do the same thing with RSS+We mention, which is a way simpler stack and predates ActivityPub by years
Webmentions are a spammer's wet dream. There is a reason they were adopted only by the Indieweb crowd.
Anyway, my point was less "ActivityPub can do everything people can do with RSS" and more "having a mechanism to for bidirectional authenticated messages opens up the possibility of new applications".
The real interesting part will happen when/if more developers realize that ActivityPub can do more than "federated versions of popular social media platforms".
I might be misunderstanding what you're saying here. How is ActivityPub more authenticated than Webmention? WM requires the poster to host their content on a website. This is exactly what the AP spec says to do. Now, since the spec was published, most AP implementations also support HTTP signatures[0], but this doesn't provide additional guarantees that you can't get with WM. The authentication is still tied to a URL.
As far as spamming goes, I don't see how WM is any worse than AP. In both protocols your only options are passlists and/or blocklists.
[0]: And an old version that doesn't have an official spec. ActivityPub's issues with spec stagnation and de facto standards is a whole other thing.
I haven't dug into these, so apologies for the naive question, but for a multi-tenant service like WordPress.com, can you effectively limit which WordPress blogs can WebMention you? If the allowlist is formed on the domain, this seems limiting.
Perhaps more advanced URL regex can achieve more fine-grained control but I do still see advantages in pubkey auth (especially if people want to move their content.)
Still, I do find myself wishing for a lighterweight-than-ActivityPub middleground.
You're right, in default configurations ActivityPub definitely has an advantage here, since HTTPsigs are tied to users, not instances, which gives finer grained blocking. I'm not aware of anything like this for Webmention.
I suspect this is because WM is used far less than AP. It also grew out of a community (IndieWeb) where having your own domain is a core tenet.
I think something like Mastodon could work with WM though, since all URLs hang off of user URLs, so you could block by URL prefix, ie "block https://example.com/user1/*".
The OP here specifically wasn't including any auth features, which I was pretty sure would mean backtracks and comments aren't supported but maybe that's wring. It is possible with ActivityPub, but I'd personally be hesitant to run my own OAuth server just for a microblog.
Regardless, my underlying point really is about what I expect of a microblog. If I'm hosting it myself I just want it to be my little corner of the internet, not a full fledged social media site that I have to maintain. That doesn't mean I'm right or that others don't expect more.
> If I'm hosting it myself I just want it to be my little corner of the internet, not a full fledged social media site that I have to maintain.
I think the problem is that OP is focused on developing a framework for AP, and he is dogfooding it by developing an application that other people can understand without too many new concepts.
This is good if you want people to get experiments, but it is terrible as a way to present the true potential of the protocol: https://cosocial.ca/@evan/113143389340566731
The appeal, at least for me, is having a social layer on top of your own stuff. Are you familiar with POSSE (Publish (on your) Own Site, Syndicate Elsewhere)? With AP you skip the whole second part because it's automatically syndicated everywhere the moment you post on your own site.
I'm having good results with the WordPress ActivityPub plugin on my blog[1].
[1] https://manualdousuario.net/en/
Is this [1] the actual plugin you're using?
[1] https://wordpress.org/plugins/activitypub/
ATProto may be more beneficial to integrate, Bluesky seems more active than Mastodon... For blogging, there's WhiteWind:
https://whtwnd.com/
I used to think running my own server for blog stuff was a waste as well. But it’s incredible what can be done with local mini server running Ubuntu and cloud flare tunnels.
With the rising VPS costs I'm starting to wonder if it's better to move my VPS in-house(:D). Electricity-wise I might be break-even but I wonder if the bandwidth I get from my ISP will be the same, not that my services are high-traffic anyway.
Sure, I have a small homelab and use Tailscale for a similar setup to CF tunnels.
That's a bit besides the point though. I'm not saying hosting ActivityPub yourself seems unnecessary, I'm saying that ActivityPub itself seems unnecessary (or at least not worth the costs and overhead).
I've added ActivityPub to my blog system (https://h4kor.github.io/owl-blogs/) as just another way of subscribing to the blog, but found that it is a good model to support interactions.
One of my issues with ActivityPub is that there is no such thing as a cut-down completely static AP feed for blogs. I want Mastodon users to be able to follow my static blog but I don't want to implement the machinery to have full interactivity.
Basically an RSS bridge would work fine. I know such things already exist but it would be cool if it was built into AP.
Right now I just manually post my blog post to my Mastodon account which is perfectly fine.
ActivityPub can be implemented as static files. You do end up with a lot of duplication because activities contain objects, and you need separate URLs for each.
This is an issue with Mastodon (and most of other software that implements only the push-based processing of inbox), but there is nothing on ActivityPub that prevents a client to directly read the actor's outbox.
As a matter of fact, I am working on a fork of a elk right now that is meant to function as a pull-based reader of AP data, so pretty soon you will be able to have your SSG generate an outbox for you and I would get all updates, boost it, etc
This is really useful, thanks.
I've recently been playing around selfhosting a small single user activitypub server to see how it works. I can't understate how satisfying it's been to wallow in compared to a static site or serverless setup. It unexpectedly tickled that special "oooh, a _system_" part of my brain, a lot.
> To simplify the tutorial, we'll impose the following feature constraints:
> There is no search functionality.
This makes sense for the tutorial, but search functionality would be awesome for discovery, both in terms of people finding your blog as well as finding other interesting blogs to follow. Niche blogs seem more difficult to find these days when Google only seems to surface websites with the right keywords.
Google offers Programmable Search Engine [0], a service where you can create site-specific search box. That's probably good enough for most small personal websites.
[0] https://developers.google.com/custom-search/
This is interesting, thanks for sharing.
I miss RSS.
It's still around
I've hosted an RSS feed on my blog for 20 years, in the vain hope that it is still being consumed by someone.
I think the only use case keeping RSS alive is podcast feeds.
RSS is around, but Google successfully relegated it to a grave yard, when they stopped supporting it in a big way. RSS is such a simple and powerful thing, it's a shame it's almost nonexistant. Even ActivityPub should've been "built around and on top of RSS" rather than as a separate thing. Same is true of Nostr. Nostr could've been an extension to RSS and let RSS be the least operative fallback for the entire protocol, but yet the format for all delivery nonetheless.
Completely agree! We already had a perfectly good protocol for content federation.
[dead]