Posts List

A Guide to Implementing ActivityPub in a Static Site (or Any Website) - Part 8

A Guide to Implementing ActivityPub in a Static Site (or Any Website) - Part 8

Find the index and earlier parts of this series here. We’re almost there! Thanks for sticking with me on this journey. In this final part, we’ll integrate replies and comments into your static website. Motivation Integrating replies is quite similar to how we handled subscriptions. Since our posts now exist in the Fediverse, we want to treat them as first-class citizens. This means replies to our posts should appear on our site.

A Guide to Implementing ActivityPub in a Static Site (or Any Website) - Part 7

A Guide to Implementing ActivityPub in a Static Site (or Any Website) - Part 7

You can find the index and other parts of this series here. We are almost done! Thank you for coming all the way into this journey. In this part we will learn how to broadcast (aka federate) your site posts to your folowers. Overview The federation of your posts (aka. sending your posts to live infitely in the fediverse) is pretty straighforward: sequenceDiagram BroadcastTool->>Storage: Retrieve followers (actor uris) BroadcastTool->>Follower-instance: Get actor info (including inbox uri) BroadcastTool->>Filesystem: Get note json (post) BroadcastTool->>Follower-inbox: Send a create action (wrapper of note) In a few words, you will iterate your list of followers, get their inbox url, and send a request to such url to create an fediverse object (note, article, etc.).

A Guide to Implementing ActivityPub in a Static Site (or Any Website) - Part 6

A Guide to Implementing ActivityPub in a Static Site (or Any Website) - Part 6

You can find the index and other parts of this series here. Let’s dig in into the most controversial part of my guide: the inbox. As far as I know, there is no way to make this inbox static. However, thanks to the fact that ActivityPub does not require the inbox to share the same domain as the other elements, we can host it anywhere. I believe it could be controversial for two reasons. First, it is not truly static; you require a backend somewhere running on some kind of server. The second reason is that I am using Azure, and I know from the get-go that will put some of you off. But I believe this guide is still valid, as you can easily deploy to AWS, GCP, or even Vercel. I am writing this in .NET, but as you may already know, translating the logic should be trivial for most modern languages. I will actually encourage people to contribute these implementations to my repo and make it our repo.

Implementing Subscribing to Your Site Feature with Mastodon/Fediverse Accounts

Implementing Subscribing to Your Site Feature with Mastodon/Fediverse Accounts

We will take a break from discussing ActivityPub concepts, and I’ll explain how I implemented a very simple “Subscribe” feature for this blog using Mastodon/Fediverse accounts. You don’t need to have your site/blog ActivityPub enabled for this; you will only need a Fediverse account and basic html/css knowledge. You can also navigate the other parts of this series here. The Motivation The motivation behind this simple feature is quite strong:

A Guide to Implementing ActivityPub in a Static Site (or Any Website) - Part 4

A Guide to Implementing ActivityPub in a Static Site (or Any Website) - Part 4

In this blog post, we will explain how to generate the outbox and notes, ready to be shared in the Fediverse. You can also navigate the other parts of this series here. Overview In the previous blog post, we created the actor endpoint as a static file. As explained there, this file has a pointer to the outbox, which is a collection of notes. A note in the ActivityPub protocol represents an activity, such as a toot, photo, comment, etc. (hence the “Activity” in ActivityPub), and in our case, it will be the representation of a blog post.

A Guide to Implementing ActivityPub in a Static Site (or Any Website) - Part 3

A Guide to Implementing ActivityPub in a Static Site (or Any Website) - Part 3

In this blog post, we will explain how to make your blog discoverable in the Fediverse as an account, and also address some of the annoying pitfalls I encountered. So let’s get started. You can also navigate the other parts of this series here. Overview To enable discovery, we need to implement the webfinger endpoint and the actor file. As shown in the diagram, Mastodon will first reach the webfinger, which points to the actor file. The actor file, in turn, points to other endpoints such as outbox, inbox, followers, and following. I have included this diagram so you can refer back to it for visual cues while reading this post.

A guide to implement ActivityPub in a static site (or any website) - Part 2

A guide to implement ActivityPub in a static site (or any website) - Part 2

In Part 2, we will delve into the design of my implementation. If you want to read about why you should bring your site to the Fediverse, check out Part 1. You can also navigate the other parts of this series here. So, you’ve decided to bring your blog to the social web, the Fediverse. That’s cool! This guide might be just what you need. And if you’ve got this or any other method working, shoot me a message on the social web, and I’ll gladly follow. But first, a word of caution: if you’re considering adding ActivityPub to your static site (or any site), I strongly suggest you look for existing implementations that could make your life easier:

Bringing your site to the Fediverse: A practical guide for static sites - Part 1

Bringing your site to the Fediverse: A practical guide for static sites - Part 1

You can find the index and other parts of this series here. This blog is on the fediverse! You can discover and follow the blog (@blog@maho.dev) and comment on its posts from your Mastodon app. I spent the last couple of weeks getting this blog onto the social web (aka fediverse), investing an hour here and there (I hope you are reading this from Mastodon, btw). It was fun and a very exciting learning experience, and I want to share not only my reflections but also create a guide so others can do the same, to move the needle a little bit in the right direction.

A guide to implement ActivityPub in a static site (or any website)

A guide to implement ActivityPub in a static site (or any website)

Hi! I have created this index for easy navigation. In Part 1, we will discuss why it is important to bring your site to the Fediverse. In Part 2, we will delve into an overview of the design of my implementation. In Part 3, we will make your blog discovereable in the fediverse. In Part 4, we will generate our notes and outbox, which contains posts ready to be shared in the Fediverse. Part 5, is an interlude to implement a subscribing to your site feature with fediverse accounts.

I miss the algorithm, I want something for MY Mastodon

I miss the algorithm, I want something for MY Mastodon

I miss the algorithm in my fediverse. I miss the algorithm. The algorithm—a term that has become a buzzword in the realm of social media, and one that stirs a mixture of nostalgia and frustration within me. Like many, I recall the days when Twitter’s chronological timeline was the norm, a straightforward feed that allowed me to seamlessly follow my friends and acquaintances in real-time. Yet, as social platforms evolved, so did the mechanics governing our digital interactions. Enter the algorithm to Twitter, (now “X”, what an awful rebranding), that mechanism that generates a timeline who drives engagement. In this age of algorithmic timelines, I find myself oscillating between yearning and disdain.