User being able to follow to remote server hashtag

Some fedi servers allow users to follow a hashtag. This function is cool, but only allows the user to follow the post the server knows about.

My proposal would require multiple things to work.

  • First, we would need an “instance actor”. An actor that would be “hey things go to the instance and not to any user in general”. A field in the nodeinfo for this would also be useful. This feature will be used in other of my proposals [EDIT. Ive been informed that instance actors are a thing]
  • A way of a server telling to another server that it has certain features. As a quick and dirty thing, the nodeinfo field “protocols”, we could add something like “activitypub/follow-hashtags” or something like that. (this would also be useful for another future proposal of mine)
  • We would need to decide on an ap object for this, but would be something like a follow object with extra stuff.

The concept would be simple: If a public post has a hashtag that an user from another server is subscribed to, send this post to this other server, as if this user had followers there.

This make sense in the way that the posts are public, and usually, hashtags are used for better reach.


Friendica supports the .well-known/x-social-relay endpoint. It is defined here: Relay servers for public posts - diaspora* project wiki

On that endpoint a server can define hashtags it is interested in.

When a Friendica admin has enabled the “direct relay” feature, then posts from other Friendica servers will be send to this server. That endpoint is scanned via the regular checks, if a server is still pesent.

1 Like

this feels like the server is polling more than the server is reciving updates, and feels cursed compared to the nature of ap, wich is push and recive and not polling

FWIW instance actors are already a thing. If you wish to retrieve objects from servers that require HTTP signatures on GET (aka “authorized fetch” in Mastodon-land), then you will probably want to make that request using some sort of “generic” instance-level actor.

I suppose you don’t have to, you could just pretend the user making the call is a random user on your instance, but that’s messy.

Anyway, anything can be considered an actor if it contains an inbox and an outbox… so hashtags can just be actors too. Then you can have remote users follow local hashtags and deliver activities as necessary, etc.


That concept originated in the Diaspora world, so it doesn’t use their possibilities. But nonetheless the question is how two systems can exchange this information. For us the polling is no issue, since we do this anyway.

The easiest way to circumvent the polling is of course to use a special relay server. So either one could subscribe to a relay actor per hashtag or you can communicate the your subscription in some other way. For example you could subscribe to a relay server. And that server can then check the endpoint that I mentioned above to see what content to deliver.

+1, this seems to be the most straightforward solution.

@gabboman meanwhile, check out, it works great.

1 Like