blog

So my crazy new blog environment… I don’t really know what to call it

  • It’s a static site generated by Hugo.
  • But it has a forked and tweaked version of [[GoToSocial]] (GTS) sitting over the top of it (next to it? wrapping it?)

ActivityPub Wrapper

The is that each website object (blog article, microblog note, linkblog link) will have a corresponding facilitator / pointer ActivityPub object (a GoToSocial post). But the Posts aren’t syndicated cross-posts, they are just look-ups to push the website objects to the fediverse.

For example, for each blog object created, an ActivityPub object is created from the blog data as below:

Blog Website Object ActivityPub Object
Title Blog Title n/a
Url Blog Url Blog Url
Content Full Content Summery + Blog Url
Description Summery n/a

The important part is the Url of the ActivityPub object being identical to the website object. The blog content is tweaked to better suit the platform and pushed out into the fediverse, but the Url of the post is not gotosocil.server/@user/StatusId because it has been changed, it now points to web.site/blog/title.

This means that both objects point to the same location as their origin. Identifying the blog page as the source of the post. So conceptually they are the same and the ActivityPub object is merely pointing to the real content.

This has 2 practical implications:

  1. If you are browsing ActivityPub streams in a fediverse client, there is always a method of viewing the a post at it’s origin server (usually clicking a timestamp or selecting “view original post”). Doing this will open the blog page itself, not an html representation of the ActivityPub post.
  2. If I search my GTS instance for the blog page Url, it will return the ActivityPub post with that Url. This means that my blog can search GTS for its own Url and find its corresponding ActivityPub post, and fetch and fediverse interactions.

To achieve all this I have had to implement a GoToSocial Hack and I also made a small web service called gitpubhub to push files to GitHub