#99 – Matthias Pfefferle on ActivityPub, WordPress and Decentralised Social Networks

Jukebox
Jukebox
#99 – Matthias Pfefferle on ActivityPub, WordPress and Decentralised Social Networks
Loading
/
Transcript

[00:00:00] Nathan Wrigley: Welcome to the Jukebox podcast from WP Tavern. My name is Nathan Wrigley.

Jukebox is a podcast which is dedicated to all things WordPress. The people, the events, the plugins, the blocks, the themes, and in this case, how the ActivityPub plugin can make WordPress the center of your social networks.

If you’d like to subscribe to the podcast, you can do that by searching for WP Tavern in your podcast player of choice, or by going to WPTavern.com forward slash feed forward slash podcast. And you can copy that URL into most podcast players.

If you have a topic that you’d like us to feature on the podcast, I’m keen to hear from you and hopefully get you, or your idea, featured on the show. Head to WPTavern.com forward slash contact forward slash jukebox and use the form there.

So on the podcast today, we have Matthias Pfefferle. Matthias started using WordPress in its early stages when it was still known as b2. He became passionate about blogging and the web 2.0 era. Over time he dedicated himself to making blogging relevant and developed various tools to compete with social networks, building communities professionally and working for a European hoster. Matthias ultimately joined Automattic to focus on WordPress and the ActivityPub plugin full-time.

We start off talking about the importance of owning your own content, and how it grants us control over what gets published and when it gets deleted or amended, Matthias introduces us to Mastodon, a social network that operates on a non algorithmic, chronological feed. This means that the content is displayed in the order it was created. Breaking free from possibly addictive patterns we see in other platforms.

We learn about the Fediverse, where users can set up their own servers and customize their own rules. Matthias explains how servers communicate with each other through following and federating, creating a truly decentralized network. He shares insights into how relays can be used to generate traffic and activity on new Mastodon servers should you find your feet a little quiet at the start?

There’s definitely some new workflows to learn using the Fediverse and Matthias highlights the differences between Twitter and the Fediverse, with the latter starting off quiet and gradually growing as users find and interact with others.

He introduces us to the ActivityPub plugin for WordPress, which allows users to publish their blogs on Mastodon, and federate the content to different servers. We get an explanation of how it works, what it does, and where it strays from the way you’re used to interacting with a proprietary platform.

We discussed the various waves of migration to Mastodon and the factors that triggered them, including Reddit’s decision to monetize that API. Matthias sheds light on the challenges faced by decentralized networks, and how wordpress.com has implemented his ActivityPub plugin, albeit in a modified form, making it easier for users to migrate their accounts. The adoption of the plugin has been steadily rising and Matthias expresses his confidence in the plugin’s potential, citing the press coverage and impact of Automattic’s takeover.

He also provides insights on how interactions on Mastodon federate, explaining how likes, comments, boosts, updates or deletions to blog posts are reflected across platforms.

Towards the end, Matthias shares his thoughts on the future of federated social networks and the potential support from existing platforms like Meta. He emphasizes the profound benefits of using protocols like ActivityPub, allowing users to own their own data and have more control over their content, unlike closed platforms that can delete accounts and cause data loss.

If you want to learn more about the Fediverse, Mastodon, ActivityPub, or just want to know how to make WordPress a first-class citizen in social networks, this podcast is for you.

If you’re interested in finding out more, you can find all of the links in the show notes by heading to WPTavern.com forward slash podcast. Where you’ll find all the other episodes as well.

And so without further delay, I bring you Matthias Pfefferle.

I am joined on the podcast by Matthias Pfefferle. Hello, Matthias!

[00:05:03] Matthias Pfefferle: Hello, Nathan.

[00:05:04] Nathan Wrigley: I’m really, really pleased to have you on the podcast today. This topic is something which is actually quite dear to my heart. Sometimes we stray into these topics. But Matthias is here today to talk about ActivityPub.

This may be something that you’re entirely familiar with. It may be something that you have never heard of before. Perhaps a better way to describe it would be the Fediverse, or maybe even Mastodon, that might get your intuitions going.

Before we get stuck into all of that, Matthias, I wonder if you wouldn’t mind just telling us a little bit about your background with WordPress or technology, whichever way you wish to take it. But little bio just to give us an indication of who you are.

[00:05:42] Matthias Pfefferle: Okay. I started with WordPress when it was called b2. So it was really early, and I fell in love with the whole blog thing and the web 2.0 area. I think over the time I tried to keep that momentum and tried to keep blogging relevant. And I think that’s why I built a lot of stuff around WordPress to compete with social networks, and made that in my spare time and liked that and made it my profession.

I started on the bad side, professionally building communities, and then I had a quite long time at a European hoster, and finally I joined Automattic to work full time on WordPress and ActivityPub.

[00:06:36] Nathan Wrigley: How long ago was it that you joined the Automattic crew?

[00:06:40] Matthias Pfefferle: It was this year, it was in April.

[00:06:42] Nathan Wrigley: Yeah. I remember the news coming out, and I was so delighted of this news because of everything that we’re going to talk about today. I was delighted because it enables you to concentrate full time I think, I could be wrong about that, but I think you’ve got the opportunity to work full time on a plugin.

It’s a freely available plugin. It’s called ActivityPub, it’s two words combined as one really. And ActivityPub combines the Fediverse really. It’s the architecture that’s going on behind all things in the Fediverse. It’s the protocol, if you like, which binds all of the different social networks and things which sit on top of it.

I feel it might be a good idea to actually explain what ActivityPub is, and what it does and how it works. Now I realised we haven’t got any screens on, I realise some of it might be a little bit difficult to explain. But broadly speaking, what is the ActivityPub protocol? Not your plugin just yet, but what is the protocol, and how does it sit behind the Fediverse?

[00:07:45] Matthias Pfefferle: I think I would like to start with the Fediverse because that’s even older. The Fediverse is also a word combination between federated and universe, and it’s kind of the idea to have decentralised social networks. It’s not directly equated with ActivityPub, but I think the actual protocol that every social network, every decentralised social network is speaking is ActivityPub. So at least for the time being, you can equate that.

But the idea of the Fediverse is way older than Mastodon and ActivityPub. And ActivityPub is kind of the newest protocol. There were way more over the years. Maybe Diaspora, someone remembers Diaspora back in the days. The Facebook killer.

The actual protocol is ActivityPub. And I think ActivityPub is so famous because of two different things. The one is that it’s fairly easy to implement. And the other thing is that Mastodon made a real good product on top of it. Really nice, usable product. Nice UI, easy to understand.

[00:09:04] Nathan Wrigley: So does the ActivityPub protocol, does it govern things like, for example, this is a piece of text, this is an image, this is a poll, this is published on this particular date. What exactly is it in a sort of technical sense?

[00:09:20] Matthias Pfefferle: Let’s talk about that. ActivityPub is the email version of a social network. Every server has, or every user has, its outbox and inbox at a server. And they’re floating activities from your outbox to the other inboxes and vice versa. And an activity describes every activity you can do on a social network.

It’s follow, create a post, delete a post, unfollow. And everything is described in a unified json object. And it’s really easy to understand and to model these activities. And it’s really only kind of the same modeled activities floating back and forth between the different servers, describing everything you just did or do.

[00:10:15] Nathan Wrigley: Okay, it’s the protocol which sits behind all of the typical things which a social network would need. So in that case, I guess the next question from me would be, who decides what’s in the protocol? Is it an open platform in the same way that WordPress is? And who decides ultimately which ideas get adopted, which ideas don’t get adopted?

Is it a fairly glacial experience working with it? In other words, has it settled down over the years and is basically now not that much flux going on? Or yeah, how movable, how changeable is it, and who is in charge of deciding what goes in it?

[00:10:52] Matthias Pfefferle: That depends. The protocol was defined by the W3C. So it’s well crafted specification. But it wasn’t updated since it first was published. So the initial version was published by the W3C, and back in the days they worked together with different communities, also the IndieWeb community. There were a bunch of people of the IndieWeb community involved, and there were also the authors of a predecessor of the ActivityPub protocol, OStatus, and later ActivityPump I think.

But the original specification doesn’t change over the time. But specification is based on, ActivityPub is based on JSON-LD, and JSON-LD is defined to be extensible. So you do not have to change the spec to add your own kind of flavor to the activities, or to define your own activities.

The actual version we are currently using is mostly defined by Mastodon, because Mastodon is kind of the big player in that area. So the Mastodon community added lot of extra stuff on top of ActivityPub and made their own extensions to the activities. And because they’re the biggest one, and require a lot of these extensions, I think the current used version is highly customised by, or influenced by, Mastodon.

[00:12:40] Nathan Wrigley: Okay, great. Thank you. So that’s really interesting. There’s a lot in there that I didn’t actually know, so thank you for that. How does the use of the ActivityPub protocol, and you described that the Fediverse is older, and it basically means decentralised networks. How does that differ from the networks that we’re all very familiar with?

So I know it’s a very obvious question, but it may very well be that there’s people listening to this who’ve never experienced a decentralised network. So let’s put, say something like Mastodon, let’s just use that as an example, as a social network if you like. Let’s compare it to another incumbent, something like Twitter or Facebook.

How does ActivityPub allow things to be different? What are basically the key differences between an implementation on ActivityPub and some closed system like Facebook or Twitter or something?

[00:13:30] Matthias Pfefferle: I think you can compare that also with email perfectly, because it doesn’t matter where you host your email address. It can be the big player, you can host it on your own. The one you want to send an email to always receives the email.

And that’s kind of the same for Mastodon. It doesn’t matter on which Mastodon server you are, or you registered. You can follow everyone on every other Mastodon server, regardless of the country of the hosting environment. And not even limited to Mastodon, but you can follow everyone that is using, or everyone that is using a platform that uses ActivityPub, if that makes sense.

[00:14:14] Nathan Wrigley: That’s perfect. I think the email analogy is really excellent, in the sense that we’re all using different providers for email, but it would be an entirely pointless enterprise if I could only communicate with you, if you were sharing the same email hosting company that I was. That would make the whole thing completely inoperable.

And I guess at this point, it might be a good idea to explain what you were talking there about Mastodon instances. So we’ve thrown the word instance out there. And if you’ve used social networks before, you’re much more familiar with the notion that you sign up for that network and you’ve got to log in credential for that network. And wherever their computers are stored in the world, it doesn’t matter. You sign in, you go to their homepage, you log in and you are logged in.

Mastodon and all of these other things built on top of ActivityPub, the Fediverse, for want of a better word. They operate on a completely different model, in that you can set up your own instance of Mastodon. You can set one up, I can set one up. In fact I have set one up. And I’m sure you have set one up. In fact, I’m sure you’ve probably set up dozens in your work that we’re going to talk about.

And mine will interoperate with yours. So you will be able to communicate with me. The people from yours will be able to see the people from mine. And it’s a social network, but it’s not housed behind one company. It’s made of hundreds, thousands, tens of thousands, millions of smaller entities all talking to each other. Have I described that correctly?

[00:15:41] Matthias Pfefferle: Perfect.

[00:15:42] Nathan Wrigley: If that’s the case, the way that Mastodon and all these other things are set up, does that cause a bit of friction for people? Because everybody’s so familiar with, you go to the homepage, you create an account, and from that moment on everything’s really straightforward. You log into that service and you start creating your content. Or posting, or communicating, or chatting, whatever it may be.

With Mastodon and other services there’s a little bit of friction there because it’s not that typical workflow. You’ve got to decide on an instance. And I wonder what your intuitions are, as to whether or not that has caused people to be a little bit sceptical of how it works and maybe stopped the growth that we might have had.

[00:16:20] Matthias Pfefferle: That’s a really good question. And I think it’s because of, we are at the beginning of this new federated idea of social networks. And I think in that beginning, it’s really complicated to understand that there are different servers that do the same in the end, and how to choose your server, and how the following process is working. Because it’s not simply searching for the username, because he could be on a different server and not well known on the server you are on.

But I think that’s a problem for the time being. But for the future, if you do not really choose the platform anymore, because the normal platforms you are already using will support ActivityPub. I do not think that this will be a friction in the next five years.

[00:17:18] Nathan Wrigley: Yeah. So maybe it’s just a consequence of the age of it. You’ve got to select a server right at the outset, and maybe somebody will come up with some amazing UX which just solves that problem, and makes that whole thing go away.

[00:17:31] Matthias Pfefferle: Yeah. But not only because of that. But let’s talk a bit about Meta and their new Threads community. They try to build up a microblogging service. And they plan to do that in the open and to support ActivityPub. And if such a big server, and such a big company decides something like that, then a lot of users simply use ActivityPub without knowing.

And others can follow them, and if you take the ActivityPub thing for WordPress. If you simply enable ActivityPub for WordPress, and you simply use WordPress as you always do, publishing posts, writing comments. And I think it’s not that big of a step if now others can follow you in a different way.

At the moment you really have to decide to go into the Fediverse. You have to decide, I want to have an account on this Mastodon service. But I think in the near future, it’s kind of more ubiquitous. It’s kind of the services will support that and you do not have to actively decide to use it. But you simply have to understand that following is a bit different, if that does make sense.

[00:18:52] Nathan Wrigley: Yeah, we can get into all of that in a moment. So you mentioned Meta, Facebook, if you like, and Threads, which is their equivalent platform to something like Twitter or Mastodon or what have you. And the promise that at some point it would in fact interoperate with ActivityPub. Do you know if they followed through with that?

In other words, did it interoperate with ActivityPub from the outset, or are they still in some sort of holding pattern where they’re checking it all worked? Because you’re right, somebody, some giant entity like Meta, Facebook, if they are throwing their weight behind it, it does cause everybody by default to start using ActivityPub without them knowing it.

[00:19:29] Matthias Pfefferle: They’re still experimenting with ActivityPub. There’s nothing published yet.

[00:19:35] Nathan Wrigley: It’s interesting, isn’t it? A company of size of Meta in these sort of experimental phases. Let’s hope that they honour that.

[00:19:42] Matthias Pfefferle: That’s what I meant with, this would be a game changer. Because this would allow my mum or my sister to be part of the Fediverse without knowing it. And they can simply use that without all the technical stuff we are discussing at the moment.

[00:19:59] Nathan Wrigley: So just from your perspective, and this question really is about you and what your thoughts are on it. Why do you prefer using ActivityPub, Mastodon, again these terms are sort of somewhat interoperable. But let’s go with Mastodon for the sake of argument.

Why do you prefer using something like that to a quotes, closed platform like Twitter or LinkedIn or whatever it may be? What are some of the benefits that we may not have thought about before? Some of the consequences of using an open protocol as opposed to a closed protocol.

[00:20:35] Matthias Pfefferle: I think the biggest thing is owning my data, to not be dependent on a closed platform that can make everything with my data and decide if I can use or cannot use the platform. They can decide what I have to show, how my profile looks, and what are the security settings, what are the visibility settings.

I read an interesting article and the title was something like, the privilege of deleting a Facebook account, something like that. You put your whole life into a platform. You have your complete social graph, all your friends there. And if Facebook, for example, decides to ban you because of they decided, then you will lose not only all of your data but connection with your friends.

Back in the days, a lot of events only happened on Facebook. You decide who comes with an invite on Facebook. So if you’re not on Facebook, you will not be invited, in the worst case.

And back in the days I decided that I do not want to depend all of my life on such a closed network, and I want to choose where to publish stuff and if I want to delete it, if I want to share that. Yeah, I want to decide how and what to do with my content. And to be able to migrate platforms, for example, to not depend on a certain hosting environment, for example, or a certain platform.

[00:22:15] Nathan Wrigley: I guess it all sounds, unless that’s actually happened to you, the whole deleting of an account. It sounds almost like an implausible thing which would never happen. But I can definitely say from, not personal experience, but a very, very close friend of mine. For no reason whatsoever his Facebook account was deleted.

And this was fairly catastrophic because a lot of the network of friends that he had established was in Facebook. A lot of the content over the years that he had produced was in Facebook, and it disappeared. And to this day, this was probably about 8 or 9 months ago, to this day it has not come back.

And so I guess, dear listener, you’re probably a WordPress user if you’re listening to this podcast. The argument of owning your own content is not to be underestimated. Having everything that you’ve created at your disposal, when you like. You get to decide whether you delete your content. You get to decide which things get published, when and how it looks. All of that is absolutely the case.

I think for me, just extending what you said there Matthias, some of the things that are important to me on Mastodon as a social network, some of the benefits that I see is the non algorithmic feed. So the protocol in the current implementation at least, who knows what will happen in the future.

The protocol spits out content only based upon the time at which it was created. So it’s a completely chronological feed. So if I don’t log in for six weeks, I will see the thing that was posted five minutes ago, as opposed to the thing which was posted six weeks ago. And it will be my job to scroll back in time.

Plus that feed is not being inspected by any kind of AI or sophisticated technology to punctuate it with advertising or sponsorship. And there’s no gamification about which things will arrive in my feed. So something which is proving to be popular gains no more weight in my feed than something which is not popular.

And so in that way, the whole enterprise is not engineered to keep me addicted to that feed, and keep scrolling, and keep looking, and keep investing more and more time. The purpose is just to serve it up chronologically. And it’s a real breath of fresh air, because you really do suddenly realise, okay, I am not spending a large amount of time on this because I’m not being gamed by the billions of dollars of AI investment that’s gone into making sure that I stay there as long as possible.

So for me, there are a couple of other things there which really were beneficial. Although, maybe on the face of it, they don’t seem like it.

[00:24:50] Matthias Pfefferle: Yeah, exactly. And even if you would like to have some kind of AI powered algorithmic feed, then you can search the platform who supports that. That’s the nice thing about the Fediverse, you can choose the platform for your own preferences.

[00:25:06] Nathan Wrigley: So let’s just dwell on that a little bit. How do these servers communicate with each other? So, for example, I would imagine that the listeners to this are fairly technical. They’ll understand, you know, installing software on a remote server and things like that.

If I wish to set up my own server, I can do that. I can download the software and if I’m prepared to read through the how to articles, I could set myself up with a server. It’s not without its difficulties, but there are also third party hosting companies, which will abstract away the difficulty in exchange for a few US dollars each month.

But I could set up my server and I can come up with my own set of rules. I can invite people, block people, block other servers, allow everything, disallow everything, whatever I like. But, how do they actually communicate with each other? In other words, if I set up a brand new server, how does it even know what the other servers are doing? How does it begin to communicate with them all?

[00:26:01] Matthias Pfefferle: If you simply install a server, there will be no communication at all. So it simply starts with following others on different servers. And then start writing, and then it starts federating. So with the first user or the first follower on a different server, your server starts federating with others.

But if it’s simply you, no followers, or only followers on your server, it will be a very simple and very lonely ecosystem.

[00:26:32] Nathan Wrigley: There would be utility in that though. If you wish to have a server, let’s say that you’ve got a company with a thousand employees, you could set up a server, block it looking out into the wider world and just stay in its own boundary. And in a sense you’ve got yourself a little intranet, if you like. You’ve got yourself social network for your own employees and nobody in that can reach out and discover anything elsewhere. So even that use case has its own purpose.

[00:26:56] Matthias Pfefferle: Yeah. And there’s also a concept of relays. So if you set up a new Mastodon server, and you want to have some traffic, or you want to see some posts in the global timeline, then you can subscribe to relays. And they will start federating without you following someone. So you can decide. You can decide if you want to start simple and start small, or if you want to have at least some kind of activity on your platform.

[00:27:29] Nathan Wrigley: It is quite interesting when you first sign up, because if you sign up for, let’s pick a service, let’s go for Twitter. And you supply them with a username and a password, and you go through the onboarding wizard. The first thing that you see is a full feed. There’s content that they have decided would be appropriate for you, probably based on all sorts of algorithmic ways of keeping it sticky and engaging for you.

But your feed will immediately be full. Whereas the exact opposite is true on the Fediverse. Ignoring all the relays, let’s just imagine that you set up your own instance. You are basically in a vacuum until you start finding people. And then you interact with them and that they are sharing, it’s called a boost. They are boosting other people’s content. And in that way, then you get to see other people.

You can then follow them and this nice organic system of growth, you can imagine it almost like a tree growing out the ground and branches start to appear and further branches and other branches. All of that starts to happen. And it really doesn’t take very long before your feed is, well, as full as you want it to be.

[00:28:29] Matthias Pfefferle: Exactly.

[00:28:30] Nathan Wrigley: And so that whole system, ultimately though, I feel is a quieter system. That feed, because you’re only following people that you wish to pay attention to. And of course, as with all things, you can decide that you no longer want to follow people, or you can decide to block people, or block whole servers and what have you.

Okay, so we’ve spent a little bit of time figuring out what ActivityPub is. Your role at Automattic is working on the ActivityPub plugin. Now am I right in saying, Matthias, this was your brainchild in the beginning? Did you fork this plugin or was this your baby right from the start?

[00:29:04] Matthias Pfefferle: That was my baby right from the start. It was not the first experiment with decentralised social networks. But the most famous in the end I think.

[00:29:15] Nathan Wrigley: It’s all worked out very well. You know, with the benefit of hindsight, oh, all of the bricks were nicely laid to make the wall. But sounds from the conversation that we had before we hit record as if much of this was by chance and it’s just worked out brilliantly. So what does it do?

Obviously it’s a plugin. We install it and activate it in WordPress. What is the intention of the plugin? Now I realise that there may be bits of this that are roadmap. It may be that we only want to talk about the things which are in it in October 2023. But what broadly is the intention? What is it trying to do?

[00:29:47] Matthias Pfefferle: The first intention I had with it was to simply be part of the Fediverse. Others can follow your blog on Mastodon. So it started with a focus on publishing. Not being a full flavored social network, but simply starting with publishing. That means that users can no longer only follow your RSS feeds or Atom feeds, but also can follow your blog users on the Fediverse. And everything you publish on the blog will be federated to the different servers.

[00:30:22] Nathan Wrigley: Can I just interrupt you there? Sorry, just to be clear. You use the word federated as verb, it’s a thing which is being done. But what is being done there? So if I’m on my WordPress website and I go add new post, write a post, click publish. Normally that just publishes the post and people have to find it, you know, through Google or what have you. What’s the additional thing? What’s the federated bit in there? What is happening?

[00:30:44] Matthias Pfefferle: That’s kind of the same thing with Mastodon. If someone on Mastodon follows your blog, then he kind of subscribes to your posts. And every time you write a new post, this post will be sent to the inboxes of all your followers. And they will see your post kind of the same way they see a different Mastodon post. So on Mastodon, you could not see any difference between a WordPress blog post, or a post that was directly posted on Mastodon.

[00:31:17] Nathan Wrigley: So in effect, is it the same as if I had not used the ActivityPub protocol? I published something on my WordPress site, and then I had gone and meticulously copied and pasted, let’s say, the excerpt, the title, carried across the featured image, or what have you, and gone to the social network and posted it. In effect, are we looking at the same thing? It just automates that process of posting it onto Mastodon.

[00:31:41] Matthias Pfefferle: Not directly, because what you mentioned is cross posting. That means what we did in the early days with the WordPress social media things. And that’s copying the post. That means you have to have a profile on Twitter, on Facebook, on Mastodon, you name it. And then this profile was used to publish, to republish your content, or kind of parts of your content.

And the new thing is that you do not cross post anymore. It’s the natural ActivityPub way you do that. So it’s not you need a Mastodon account and then you copy all your stuff, or you publish all your stuff through that Mastodon account. It’s your blog user is the Mastodon account. Others can follow your account or the whole blog directly, without copying stuff. It’s really, the whole ActivityPub, Fediverse following experience.

[00:32:39] Nathan Wrigley: Okay. Let’s explore that a little bit, just to make sure that I’ve understood it. So the first thing to say is, so it’s not cross posting. So if I write something on WordPress, in effect you are just showing the same thing in two different places. You’re showing it on the WordPress blog, for want of a better word. But you’re also showing that on Mastodon, and it’s the same thing. It’s the same entity. So it’s not a cross post, it’s just a post. So first thing, have I got that right?

[00:33:08] Matthias Pfefferle: Technically spoken, in the end it’s kind of a copy because that’s how ActivityPub works. The ActivityPub server, the Mastodon server kind of has a cache of your profile, and has a copy of your post. But in the end, it’s more like you described it. It’s not that you have to use something on the other platform to publish it.

But you can compare that with Mastodon. If you are on Mastodon and if you follow someone else, you see his posts in your stream. And you can see the blog posts, your homepage of WordPress, kind of like the stream you have on Mastodon. And others can subscribe to that kind of stream, and then it will be part of their Mastodon timeline. And every time you publish a post, it will be directly federated to that timeline.

And the thing with cross posting is that, if you post something through a Twitter profile, the whole communication on Twitter will only live on Twitter. To check what others think of your post, or what their ideas to your post are, you have to visit Twitter. The difference between that and Mastodon is that also the interaction on Mastodon or any other platform will federate.

So that means that in the end, comments and boosts and likes will also be part of your WordPress post. So if someone on Mastodon comments your blog article, then it will also show up in the comment section of your blog.

[00:34:53] Nathan Wrigley: That really is an amazing, transformational thing, isn’t it? So again, let me be very clear. I post something on my WordPress site. Let’s imagine that’s the first place I want to do things is, you know, the interface that we love and what have you.

I post it there, it gets federated. It can now be seen, whatever that complicated process is, it can now be seen on Mastodon, let’s say. But there’s a whole bunch of other services which use the ActivityPub protocol, which we haven’t even gotten into. But there’s whole other social networks, in inverted commas, that are built on top of it, which interoperate.

There’s one called Pixelfed, which is primarily for images but let’s not get into that. So it’s visible on Mastodon, but then if people comment on that, those comments come back, they get federated back to my WordPress site, and they would then be visible to me. Or would they be visible to everybody that visited my website? In other words, do they get consumed and added to the database as a comment?

[00:35:49] Matthias Pfefferle: Yeah. In the end we try to reuse every object that’s common in WordPress. So if you write a reply on Mastodon, in the end, it’s simply a comment on your WordPress blog.

[00:36:03] Nathan Wrigley: That’s really amazing. What if I update something? So let’s say, I don’t know, a week later in my WordPress post I spot a gigantic error. Spelling error or just factual error or something like that, and I update it. Does that then get re federated? In other words, if somebody were to stumble across that a week ago in their timeline, would they see the newer version or does the cache mean that you get the original version?

[00:36:28] Matthias Pfefferle: No, it federates also the updates. That was not always the case, but Mastodon supports that for quite some months, I think. They first implemented that you deleted the original post and repost a new one. But now they fully support updates. So if you update your blog post, the update will be federated. And the same with all other activities like delete, or even if you put it in trash, it will deleted first.

[00:37:00] Nathan Wrigley: So this may be a peculiar question, I don’t know. Is it possible to amend things in a different environment that’s not WordPress? Let’s say I’m browsing on the Mastodon interface. Can I edit things over there and they will get re federated back to my WordPress site? Or is this more of an, edit in WordPress, do all the things in WordPress, just make that your first home?

[00:37:22] Matthias Pfefferle: It depends to what you’re referring to. If you write a comment on Mastodon, then you can edit that. But you can’t edit, let’s assume you have a Mastodon account and you follow your blog. And you publish a blog post that will be also federated to your Mastodon account. Then you could not use your Mastodon account to edit your blog post, because technically spoken, it’s a different user.

[00:37:48] Nathan Wrigley: Okay. Can I bring a pre existing Mastodon user into the ActivityPub protocol for WordPress? In other words, can I use an account that I’ve already got and combine it, and then decide to, you know, go forward with WordPress? Or do I, in the process of setting up the plugin, am I creating a new account at that moment?

[00:38:11] Matthias Pfefferle: The first thing you mentioned would be cross posting. So if you register on Mastodon, you will get a Mastodon handle. That means something like mastodon.social/@nathan, something like that. And that’s currently not really portable. At least not that you use the same kind of handle on a different platform.

There are mechanisms where you can kind of move your accounts to a different server. Then all your followers will be pointed to the new server. But technically you have a new handle and using a new server.

That’s currently not possible with the WordPress plugin, because in the end we are not yet a fully comparable social network. So it’s still focusing on the publishing stuff. And you can’t follow others using your WordPress blog. There is no social media stream in the backend, you can consume others posts. So it does not make sense to move your accounts, at least yet.

In the end it’s kind of, with installing the plugin, you will receive new handles. It’s not really a new account, but you have a new handle and others have to follow that new handle to subscribe to your blog posts.

[00:39:38] Nathan Wrigley: So if you’ve got a large following that you’ve worked hard to gain on Mastodon, then there’s definitely some thought to be put into this, and the way that you implement it and so on.

[00:39:48] Matthias Pfefferle: It’s totally fine to maybe use both, kind of to start with. Still cross post to your carefully crafted Mastodon account with hundreds of thousands of followers. And to start with the new identifier besides of that. Or maybe kind of what I’m currently trying to use is that I boost my blog posts. So that’s kind of the easiest way to gain a bit more traction to my blog posts.

[00:40:18] Nathan Wrigley: Got it. Yeah, thank you. I remember over the last, maybe year or so, not to put too fine a point on it. There was a large migration of people over to Mastodon when Elon Musk took on the ownership of Twitter. I think some people had various different concerns about how Twitter would work as a platform.

And it became a really hot topic in the mainstream press actually, over here on the BBC and various news channels, people were talking about Mastodon. And to me it was great because it was something, you know, it was kind of, oh, I was into that before it was cool, kind of thing.

But then it seemed to die off. I don’t know if you’ve got any intuition on this. But just in the last month or two, especially in the WordPress world, it’s really gained a whole new life again because of WordPress.com. And so I wonder if you could tell me what’s happening over at WordPress.com and, trying to answer it at the same time, whether you’ve got any intuitions as to whether it has been a bit of a trough over the last few months? And, you know, whether or not Mastodon is still maintaining the interest that it once did.

[00:41:23] Matthias Pfefferle: I think the movement you mentioned was already the third. So it’s kind of a wave. It’s not a constant movement. There were a lot of different things in the last few months or years that caused a bigger movement. Between these movements, it gets stagnated.

Just recently there was another big movement when Reddit decided to monetise their API. And there was also a big movement, not to Mastodon, but to the platforms that are called Lemmy or kbin. That’s kind of the Reddit of the Fediverse.

It’s not only that it’s only about Twitter and Mastodon and maybe Facebook. But it’s kind of a broader thing. It’s not that it’s that loud, as in the early Musk Twitter days, but I think it’s a constant movement of the time. And what I really like about the WordPress plugin, in the end, is that we discussed the ownership of data in social networks.

Mastodon kind of has the same issues. There were a lot of, in the early days with the big buzz on decentralised networks. There were a lot of admins hosting their own little Mastodon instances. And over the time they had issues with money and payment, and shut down their instances.

So in the end, also with a decentralised social network, you have to choose carefully where you want to host, or where you want to create your account. Because there’s no guarantee that this is even better as in closed networks. There are better mechanisms to move your account. But in the end you’re also depending on the work of others, and that they will keep on hosting the platform.

With WordPress it’s kind of different because you can host your WordPress instance by your own. And even if the hosting provider decides to shut down the hosting, it’s very easy to export or to download your whole WordPress instance and upload it to another hoster.

In the end, if the domain does not change, it doesn’t matter where you host your WordPress instance. And that’s kind of the game changer in my mind. You’re no longer dependent of other’s service in the end.

[00:43:57] Nathan Wrigley: The ability to migrate is fairly trivial. You know, you can really just move to another instance. My understanding is that, let’s say for example, that the server that I run, I decide to shut it down. Hopefully I would have the decency, for want of a better word, to inform the people who are on my server with plenty of time, so that they could go through this process.

But I guess that wouldn’t necessarily always be the case. And probably some people have been stung. But it is possible to go into your account, you can export it, and then go to another server and kind of upload it there. There are some caveats, maybe I’m wrong about this. But my understanding is it will bring your followers with you, but for obvious reasons it won’t bring the posts and the replies that were on that previous instance as well. Is that right?

[00:44:39] Matthias Pfefferle: Yes. And it’s only working properly if you have only Mastodon followers. This is simply a Mastodon thing. It’s not part of the ActivityPub protocol by definition. So this whole moving profiles to different servers is realised really differently on different kind of protocols. So if you can avoid moving your profile.

[00:45:06] Nathan Wrigley: But there is the option there, right? It is at least something, which is nice. It’s interoperable and you can take your social graph elsewhere, if you like.

So .com, WordPress.com probably, I don’t know maybe a month ago, maybe less, I can’t actually remember, decided that they were going to allow this on all of the WordPress.com websites. Is this the plugin that you have created? Is it that, that they’ve implemented? And if so, what has the interest been? Have many people taken WordPress.com up on this, and has it been a smooth experience?

[00:45:39] Matthias Pfefferle: Okay, starting with the plugin. Under the hood it’s the same plugin, but it’s a bit modified to work more smoothly together with the WordPress.com experience. I started the free installable plugin to fit my needs. So a lot of the settings are really geeky, and there are a lot of settings.

So we stripped that down to better match with the product WordPress.com. But in the end, it’s technically the same in the background. It’s from the press it was impressive. I had the month of my life. It was stressy but it was the best time ever.

The adoption is rising steadily. We have not done a lot by now to on board our users properly, and to have maybe kind of a special landing page to directly start. I want to have a federated WordPress. So with all of that, it’s a really good adoption. And if you think about that, we only had one blog post for now.

We are fine with that. And we’re working to make it even easier and even better, and have kind of a more social network like experience in the end. But for now, it’s a nice thing because you could use it without changing your publishing behavior, or your commenting behavior. It’s simply activated, and if someone wants to use it, perfect. If not, also fine.

[00:47:17] Nathan Wrigley: Right. So it’s a fairly stripped down implementation, with less of the geekiness attached. But it worked, and the last time I looked was probably last Friday. So we’re recording this on a Thursday, so that was six days ago. And thousands, plural thousands of people had taken the opportunity to check that box and implement it.

So I don’t know what’s happened in the last week, but presumably it’s gone up from there. And as you say, if you haven’t gone to any great lengths to promote it, just one blog post and, you know, nothing shouting at you in the UI to tell you you can do this. That’s really amazing. That must give you a, well like you said, it’s been one of the most amazing months of your life. That’s great.

[00:47:55] Matthias Pfefferle: And there’s a lot of potential.

[00:47:57] Nathan Wrigley: And I know that obviously, the whole position that you’ve been given at Automattic must give you confidence that WordPress as a whole, the .org side, as well as the .com side. There is real interest in this working with websites hosted with WordPress. This is not a flash in the pan. The fact that you’ve been taken on full time to work on this one plugin, I guess illustrates the fact that they are hoping that this is going to be the future of social networking.

[00:48:24] Matthias Pfefferle: I hope so too, yeah. But Automattic was a game changer in the end. So now that I can work full time on the plugin, it changed a lot. But simply with Automattic announcing that they would take over the plugin, and me as a developer, the press coverage was insane.

And in the end nothing changed really, at least from the technical perspective. So I think having Automattic, not only as a backer of the development, but also kind of a evangelist in that topic, is really game changing.

[00:49:02] Nathan Wrigley: Well let’s hope that in the future, there’ll be lots on the roadmap, lots of interesting new initiatives. Matthias, if somebody wants to reach out to you, I normally say, do you have a Twitter handle or something like that? I’m going to say something different. Do you have a Fediverse handle that you’d like to share? I mean it might be just as simple as your blog. Let us know where people can find you.

[00:49:22] Matthias Pfefferle: Yeah. My blog is German so maybe that’s not the perfect place to follow me. I’m on one of the biggest Mastodon instance, mastodon.social/@pfefferle, my last name.

[00:49:36] Nathan Wrigley: I will write everything in the show notes, but the sake of people who don’t read the show notes and just wish to have it spelled out for them, that would be mastodon.social/@ P F E F F E R L E. That will now be in the transcription as well.

So yeah, Matthias, thank you so much for sharing all of your insights about the Fediverse, Mastodon, ActivityPub. And good luck, I hope that the future is bright.

[00:50:01] Matthias Pfefferle: Thanks a lot, and thanks for having me.

So on the podcast today, we have Matthias Pfefferle

Matthias started using WordPress in its early stages when it was still known as b2. He became passionate about blogging and the web 2.0 era. Over time he dedicated himself to making blogging relevant and developed various tools to compete with social networks, building communities professionally and working for a European hoster.  Matthias ultimately joined Automattic to focus on WordPress and the ActivityPub plugin full-time. 

We start off talking about the importance of owning your own content, and how it grants us control over what gets published and when it gets deleted or amended. Matthias introduces us to Mastodon, a social network that operates on a non-algorithmic, chronological feed. This means that the content is displayed in the order it was created, breaking free from possibly addictive patterns we see in other platforms.  

We learn about the Fediverse, where users can set up their own servers and customise their own rules. Matthias explains how servers communicate with each other through following and federating, creating a truly decentralised network.  He shares insights into how relays can be used to generate traffic and activity on new Mastodon servers should you find your feet a little quiet at the start? 

There’s definitely some new workflows to learn using the Fediverse and Matthias highlights the differences between Twitter and the Fediverse, with the latter starting off quiet and gradually growing as users find and interact with others. 

He introduces us to the ActivityPub plugin for WordPress, which allows users to publish their blogs on Mastodon, and federate the content to different servers. We get an explanation of how it works, what it does, and where it strays from the way you’re used to interacting with a proprietary platform. 

We discussed the various waves of migration to Mastodon and the factors that triggered them, including Reddit’s decision to monetize their API.  Matthias sheds light on the challenges faced by decentralised networks, and how wordpress.com has implemented his ActivityPub plugin, albeit in a modified form, making it easier for users to migrate their accounts. The adoption of the plugin has been steadily rising, and Matthias expresses his confidence in the plugin’s potential, citing the press coverage and impact of Automattic’s takeover.  

He also provides insights on how interactions on Mastodon federate, explaining how likes, comments, boosts, updates or deletions to blog posts are reflected across platforms. 

Towards the end Matthias shares his thoughts on the future of federated social networks and the potential support from existing platforms like Meta. He emphasises the profound benefits of using protocols like ActivityPub, allowing users to own their own data and have more control over their content, unlike closed platforms that can delete accounts and cause data loss.  

If you want to learn more about the Fediverse, Mastodon, ActivityPub, or just want to know how to make WordPress a first-class citizen in social networks, this podcast is for you.

Useful links

ActivityPub plugin

Mastodon

W3C

IndieWeb

OStatus

ActivityPump

JSON-LD

Threads

Pixelfed

Lemmy

kbin

Matthias on Mastodon


1

One response to “#99 – Matthias Pfefferle on ActivityPub, WordPress and Decentralised Social Networks”

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.

Latest Podcast

  • 117 – Maestro Stevens on Inclusivity in Website Design Decisions

    On the podcast today we have Maestro Stevens. Maestro is an international speaker and managing director of The Iconic Expressions. His areas of expertise include digital marketing, brand strategy, web development, and project leadership. In this episode Maestro lays out the case for how inclusivity is not just something that we need to be concerned about…

    Listen Now

Newsletter

Subscribe Via Email

Enter your email address to subscribe to this blog and receive notifications of new posts by email.