Naming things is hard - DNS for the Federated Web

The multicoloured interlocking lines of the Fediverse logo.

How should I design my personal DNS for all the cool new Federated Services and IndieWeb protocols? Way back in the early 2000s, I started this website - A few years later, I added a blog. I could have used the main domain, or created a subdomain like In the end, I chose […]

Continue reading →

Snowflake IDs in Mastodon (and Unique IDs in the Fediverse more generally)

Hundreds of snowflakes - each one unique and beautiful.

Computer Science has two canonical "hard problems": cache invalidation naming things off-by-one errors Let's talk about how we name unique items in Federated services - for example, posts on a social media service. If you have only one service, it's pretty easy. Every time a new entry is created in a database, give it a […]

Continue reading →

How much decentralisation is too much?

The Mastodon logo. It sort of looks like a smiling elephant.

Twitter's over, my dudes! And now everyone is on Mastodon! But Mastodon isn't a site, it is a federated network running an interoperable protocol! Yay for ActivityPub1! Anyway, that means there isn't one Mastodon website. There are many. There is only one Twitter. There is only one Facebook. There is only one Instagram. If you […]

Continue reading →

The ethics of syndicating comments using WebMentions

The WebMention logo is a stylised letter W with an arrow at the end.

This blog uses WebMention technology. If you write an article on your website and mention one of my blog posts, I get a notification. That notification can then be published as a comment. It usually looks something like this: This means readers of my post can see where it has been mentioned around the web. […]

Continue reading →

Create a "Share To Mastodon" Button for WordPress

A WordPress Popup.

Everyone1 is decamping from Twitter to Mastodon! The great thing about the Federated Internet (hereafter the "Fediverse") is that it is distributed. The bad thing is… it is distributed! What do I mean by that? Here's an example of the problems with decentralised systems. If I want to create a link on a website which […]

Continue reading →