Jan-Lukas Else

Thoughts of an IT expert

Tags: ActivityPub


Published on in 💬 Micro
Updated on

Achievement for today: I can finally correctly reply to Mastodon/Fediverse/ActivityPub posts. 🥳

P.S.: And I can mention ActivityPub actors and they will get a notification (at least on Mastodon).

View

Published on in 💬 Micro

I reworked the current ActivityPub implementation of GoBlog, fixed ActivityPub replies to posts and also added support for reply updates and deletions. Under the hood it’s using the comment system. 🥳 Using the go-ap/activitypub library, working with ActivityPub is much easier (but still more complicated than I wish it would be).

View

Published on in 💬 Micro

Some IndieWeb protocols are complicated and there are sometimes no programming libraries to simplify the use of them, but ActivityPub is another beast. Although the standard is documented, the way the specific implementations (Mastodon etc.) work often isn’t and it’s hard to debug. So huge respect for the big rework. 👍

View

Published on in 💬 Micro

GoToSocial seems like a promising alternative to Mastodon. It’s written in Go (👍 in my opinion), lightweight and pretty good documented so far. It’s still “alpha software” but seems to make great progress. In the past, I self hosted a microblog.pub instance and then after some time without any Fediverse profile other than my blog, which has ActivityPub support as well, signed up at Fosstodon to be able to reply to blog comments from the Fediverse. I already set up an instace of GTS, but will probably wait to use it as my primary Fediverse profile until GTS enters the beta stage sometime in 2023 according to the roadmap.

Yesterday, I fixed GoBlog to be able to be followed by GoToSocial users. I didn’t know that some ActivityPub servers require requests to get information about the remote actor to be signed. But that should work now. 😄

View

Published on in 💬 Micro

Mastodon 3.5 finally supports the Update ActivityPub activity. GoBlog supports sending updates for quite a while already, but only Pleroma showed the updated posts and not Mastodon. That would have been useful recently, when I posted “Spaces!” but wanted to post “Tabs!” and updated my post. 😅

View

Published on in 💬 Micro

Finally I have implemented a kind of trash in GoBlog. When I delete a post, it is first marked as deleted and can be restored within 7 days. Unfortunately the integration with ActivityPub is not that easy. ActivityPub allows to Undo a Delete activity, but Mastodon doesn’t support that, just like Mastodon doesn’t support Updates. 🙄

View

Published on in 💬 Micro

Because ActivityPub instances can go offline from time to time and it’s general best practice to retry failed requests, I just added a new queueing system for ActivityPub requests to GoBlog using this nice library named “dque”. There’s always a bug or sub-optimal solution I need to fix before I want to release GoBlog (or whatever I will name it in the end) to the wide world. But the frequency of the discovery of improvable things is decreasing, so I hope I will be able to write documentation soon.

View

Published on in 💬 Micro

The ActivityStreams module for Hugo should work with image attachments too. This is a test post to see how they are displayed on Mastodon.

But I want to take the opportunity to introduce my readers to Unsplash, where you can find many nice photos for free use. Like this picture from NASA.

🖼️ View

Published on in 💬 Micro

Mastodon doesn’t support “Article” posts and only shows the summary from them. But not only that, it doesn’t seem to unescape escaped HTML and that’s why articles from my blog looked so weird on Mastodon, while they worked fine on Pleroma and Microblog.pub. I now fixed the escaping. My Hugo module for ActivityStreams representation is available on Codeberg.

View

Adding ActivityStreams representations to Hugo

Published on in 👨‍💻 Dev
Updated on

I promised and people already asked, so here is the first part of the documentation about how I enabled ActivityPub support on my Hugo-based blog:

View

Next

Jan-Lukas Else