Open Channels FM
Open Channels FM
Decentralized Social Networks and WordPress
Loading
/

In this episode host Matthias Pfefferle introduces the show and chats with Alex Kirk about decentralized social networks and the open web.

They dive into the Friends plugin, which allows WordPress to follow various types of feeds and gives users control over private and public publishing.

Alex describes how the Friends plugin has evolved to include ActivityPub support and integration with Mastodon apps, turning a WordPress blog into a decentralized social network node.

They also discuss the potential of personal websites within the Fediverse and the future of self-hosting social media on WordPress.

Since 2005, Automattic has built tools for the open web including WordPress.com, WooCommerce, and Jetpack that are used by millions of people to create, sell, and publish online. They believe in ownership, flexibility, and open source and we’re grateful for their support. Learn more at automattic.com.


InMotion Hosting brings over 25 years of experience, NVMe-powered speed, and 99.99% uptime to every plan they offer. When you need help, you get a real human, not a bot, and they’ll migrate your site for free. We’re happy to have them in our corner supporting the conversations we have here at Open Channels FM. Find your plan at inmotionhosting.com


Logo of Omnisend featuring a stylized 'i' icon and the brand name in lowercase letters.

Omnisend just dropped SMS pricing to $0.007, and their migration team moves your automations, templates and contacts in five days, free. That means you could be saving up to 35% in less than a week. We’re glad to have them supporting the show and the community we’re building around it. Use the code OpenChannels and get 30% off your first 3 months of any paid plan.

Key Takeaways

  • WordPress Can Be a Decentralized Social Hub: The Friends plugin allows WordPress users to follow other sites, aggregate content, and even act as a social network using ActivityPub.
  • RSS Is Still Powerful: Many modern decentralized networks function similarly to an RSS feed, and Friends embraces that by letting users follow any RSS-based content source.
  • ActivityPub Integration Expands Possibilities: By adding ActivityPub support, Friends makes WordPress a fully federated platform, allowing users to connect with Mastodon, PixelFed, and other Fediverse services.
  • Mastodon Apps Can Work with WordPress: The Enable Mastodon Apps plugin lets users log into their WordPress site from Mastodon apps, effectively turning WordPress into a decentralized social network with a familiar interface.
  • Personalized Content Aggregation is Possible: Friends acts as a self-hosted feed reader, allowing users to curate their own content sources and even filter, block, or prioritize topics.
  • Private Blogging and Sharing is an Option: Users can post private content that is shared only with trusted friends through authenticated RSS feeds, similar to private social network posts.
  • E-Readers and Offline Reading Integration: The Friends plugin can export content to an e-reader, allowing users to read curated articles offline in an EPUB format.
  • Self-Hosting Preserves Digital Independence: Owning your own content, hosting your own social interactions, and controlling what you follow ensures privacy and longevity in the Fediverse.
  • WordPress is More Than a Publishing Tool: With plugins like Friends and ActivityPub, WordPress can also be used as a personal knowledge base, family history archive, or even a decentralized social network.
  • More People Need to Know About These Tools: Many WordPress users are unaware of the potential to turn their blog into a federated platform, and greater awareness could encourage wider adoption.

Connect

  • Friends Plugin (A Decentralized Social Networking Tool) – This WordPress plugin enables you to follow content from other WordPress sites and interact seamlessly, allowing for private publishing and friend connections. 🔗 https://wordpress.org/plugins/friends/
  • Enable Mastodon Apps Plugin (Integrate Mastodon Clients with WordPress) –This plugin allows your WordPress site to be accessed using Mastodon clients, enabling you to use mobile and desktop Mastodon apps with your own site 🔗 https://wordpress.org/plugins/enable-mastodon-apps/
  • Alex Kirk’s Personal Blog (Insights on WordPress and Decentralization) Alex shares his thoughts and developments related to WordPress, including discussions on integrating WordPress with the Fediverse and creating decentralized social network. 🔗 https://alex.kirk.at/

Links and Resources

  • Fraidycat (Content Aggregator) – Fraidycat is a desktop app or browser extension for Firefox or Chrome that allows you to follow people across various platforms, including Twitter, blogs, YouTube, and even public TiddlyWikis. 🔗 https://fraidyc.at
  • RSS-Bridge (RSS Feed Generator) – RSS-Bridge is a PHP web application that generates web feeds for websites that don’t have one, enabling users to stay updated with content from sites lacking native RSS feeds. 🔗 https://github.com/RSS-Bridge/rss-bridge
  • ActivityPub Plugin for WordPress (Federation Plugin) – The ActivityPub plugin allows your WordPress blog to function as a federated profile, enabling readers to follow your posts on platforms like Mastodon and other federated networks that support ActivityPub. 🔗 https://wordpress.org/plugins/activitypub/
  • Pterotype (Fediverse Integration for WordPress) – Pterotype expands your audience by giving your blog an ActivityPub stream, making it a part of the Fediverse. 🔗 https://wordpress.com/plugins/browse/activitypub/
  • RSSHub (RSS Routing Service) – RSSHub is a versatile RSS feed generator that allows users to create feeds from various sources, especially useful for sites that do not provide native RSS feeds. 🔗 https://github.com/DIYgod/RSSHub
  • Miniflux (Minimalist RSS Reader) – Miniflux is a minimalist and opinionated feed reader that can fetch the full content of articles, providing a clean reading experience. 🔗 https://miniflux.app
  • FreshRSS (Self-Hosted RSS Aggregator) – FreshRSS is a self-hosted RSS feed aggregator that offers a user-friendly interface and supports multiple users, allowing for a personalized RSS reading experience. 🔗 https://freshrss.org

Timestamps and Chapter Titles

  • 0:00 Introduction
  • 00:38 Welcome to the Open Web Conversation Show
  • 01:25 Meet Alex Kirk: WordPress and Decentralization Enthusiast
  • 02:29 The Friends Plugin: Origins and Concept
  • 03:47 Challenges and Successes with the Friends Plugin
  • 07:54 Expanding the Friends Plugin: Following Non-WordPress Sites
  • 17:47 Integrating ActivityPub with Friends Plugin
  • 23:15 The Ultimate Feed Reader: Exporting to E-Readers
  • 26:18 Exploring E-Readers and Their Functionalities
  • 28:48 The Rise of Activity Pub and Mastodon
  • 29:44 Integrating Mastodon API with WordPress
  • 30:49 Enable Mastodon Apps for WordPress
  • 31:40 Private Blogging for Family and Friends
  • 32:37 Combining Plugins for a Custom Mastodon Instance
  • 36:58 Managing WordPress Feeds and Posts
  • 39:09 The Future of Self-Hosting with WordPress
  • 47:09 Final Thoughts
Episode Transcript

Matthias:
Hello and welcome to Do the Woo, and also welcome to the first episode of the newly announced Open Web Conversation Show. At least, I think it’s the first one, but for sure, it’s my first one. So I am super excited and a bit nervous. I hope I can make it through with proper English . Otherwise, Alex will correct me. My name is Matthias Pfefferle, and in this show, I will talk with my guests about the Fediverse, decentralized social networks, and the open web—but not necessarily about WordPress. And my very first guest is Alex Kirk, who fits perfectly into all of these topics. I think that’s why he is my first guest. Welcome, Alex.

Alex:
Hi, thanks for having me.

Matthias:
Yeah, thanks for being on the show as the first one. Should we make a short introduction before we start, Alex?

Alex:
Yeah, of course.

Matthias:
It’s your stage.

Alex:
So, I’m Alex Kirk. I’m from Austria, from Vienna, and yeah, I’ve been in the WordPress space for many years. I’m working for Automattic, and I’ve been there in several roles around translation and Matrix, WordPress Playground, things like that. But I’ve got this hobby that is very much centered around decentralized things, often with a WordPress background. So yeah, I think this is why I’ve gathered a bit of expertise in the field, and I’m trying some things that WordPress might not have been designed for .

Matthias:
So we got in contact years ago. Is it already double-digit?

Alex:
I don’t know, maybe.

Matthias:
Yeah, because you have a lovely little plugin called Friends, and I was working on some similar plugins. I always focused only on the publishing part but not on the friendship part because I thought, okay, that’s too tricky, and it’s a spare-time project. Then I stumbled over your plugin, and “Friends” is very self-descriptive, so I thought, okay, he already did that, so why not contact him and join ventures? So that was years ago, and it turned out very successful, I would say. So why not talk a bit about the Friends plugin? I think that’s the oldest and most successful one, isn’t it?

Alex:
Maybe, I don’t know. It’s always a bit hard to determine the success of clients when you’re not really trying to gather too many stats and rely on maybe WordPress.org stats. But I think, in the end, for me, the number of people using it is something you can feel through interactions. So yeah, I think it was in 2018 that I started Friends. I was coming from the perspective that, you know, I’m not the biggest fan of how Facebook has been treating users and user data, but I think the concept is quite interesting—that you can get a feed of your friends and family, seeing what they’re up to. I was thinking that actually, WordPress might be a suitable place to do something similar but in a decentralized way, where no single company would have all the social network data and control everything.

So my thought was, could you also do something similar, but instead of having something centralized, can we connect different WordPress sites using friendships? And then, you wouldn’t even have to publish something publicly; you could also do it privately. That’s one thing I think is good about Facebook’s approach—you can post something just for a limited circle of people. And this is actually where I ran into my first little problems with WordPress because WordPress is really designed for publishing. At its heart, when you want to save a post and publish it, there’s a button, and it will publish. It will naturally transition from draft to publish, but you can’t really make it transition from draft to private. As soon as you choose that a post should be private, it’s saying it’s now published—but within your private group.

Matthias:
So was the private thing built into Friends from the first version on, or very early on?

Alex:
Okay. So one big idea of the Friends plugin was that if you connect two WordPress sites, there can be a trusted communication path between them. Behind the scenes, there would be authenticated RSS feeds that would also include private posts that you make, and your WordPress would gather the private posts from your friends into your own feed. So if I publish something privately, all my friends would receive those private posts. That was the whole point of it—so that you could do private publishing, and your friends, who are connected to you, would have a feed of your posts, while I would have a feed of my friends’ posts.

Matthias:
That is really awesome because you invented a protocol based on everything that WordPress already supports. This is amazing. How did that turn out?

Alex:
What do you mean? Like, it works. It’s maybe a bit of a hack in some areas of WordPress, but yeah, the basic concept works.

Matthias:
But aside from it just working, do you have any experience with how many people rely on it or follow the WordPress-style principle?

Alex:
No, I don’t gather any stats. I don’t really know. I know that sometimes people ask about it, but it certainly isn’t the biggest selling point of Friends at this point. It turned out to be a bit of a niche thing. I mean, even I have more friends who don’t have WordPress than friends who do. And I think, to this day, with the federated web or Fediverse, we’re still running into this problem where, for some people, it’s just easier to sign up somewhere rather than trying to own part of their experience. I think we’ll go into that a bit later as well.

Matthias:
Okay, but that’s an interesting point. Now that you say that, I would assume that Friends can also follow non-WordPress sites because I think we are very similar in that we, at least initially, build things for our own purposes. So if most of your friends aren’t WordPress users, I would assume this changed Friends a bit or its core protocol?

Alex:
To a certain degree, yes. The Friends plugin also started as a bit of a selfish plugin for my own needs.

Matthias:
Those are the best ones!

Alex:
Yeah, that’s what makes you use it . So one thing that was also built deeply into Friends is the ability to follow any RSS feed. Not only WordPress sites generate RSS feeds. But, unlike other RSS readers, Friends is very much focused on people. One person might have multiple blogs, but they might also have multiple other outlets where they’re posting—like social media. When I started Friends, I had this concept of “feed parsers,” where one person could have many feeds attached to them.

Actually, initially—controversially—a friend would be a user on your own WordPress.

Matthias:
Oh, that’s very…

Alex:
A low-permission user, yeah. Which didn’t… I don’t know. To this day, I think it’s a non-issue, and it’s actually a pretty elegant way of saying that if I receive a post from outside, I can associate it with a user inside WordPress. That user has a password that nobody knows, so they can’t log in.

Matthias:
That’s so bad that users don’t have the same feeling about what technically makes the most sense .

Alex:
For some reason, people are very conscious of who is on the users list on their WordPress when, in reality…

Matthias:
Yeah, well, anybody. It was one of the things that most people didn’t like initially about the Friends plugin, and also something that I heard and changed. But well, at that point—I mean, we’re still a bit in the history—so initially, I added some basic open feed standards, like RSS and Atom, of course, but also JSON Feed and microformats, so that you could follow people who had their blog or website marked up with those microformats that are basically embedded in HTML attributes to make the site parsable, so to speak.

And then, I also created additional plugins to extend the Friends plugin with some kind of hacky ways of following people on other platforms as well. For example, there is this project called RSS Bridge, where people have written custom parsers for all sorts of websites. There’s a Friends plugin that allows you to feed those parsed sources into your Friends feed so you can follow people on other platforms.

Matthias:
So it’s kind of bridging the proprietary Twitter API to…

Alex:
Exactly.

Matthias:
…a format that Friends understands.

Alex:
Yeah, and at the time, there was also a quite interesting extension called FraidyCat.

Matthias:
Okay.

Alex:
It had its own custom JavaScript parser called FraidyScrape, which could scrape things like Twitter, Instagram, SoundCloud, Pinboard, and YouTube. I ported it to PHP so that I could use it in WordPress. Initially, the Friends plugin was mostly centered around getting parsable data from people publishing things across the web.

Matthias:
Now that you talk about all this history, I remember why I stumbled upon your plugin. Do you remember NoseRub?

Alex:
I don’t recall.

Matthias:
It was one of the earlier decentralized social networks. The nice thing about NoseRub was that they didn’t really rely on just one protocol—they tried to use a URL and find something to scrape, whether it was an RSS feed or some other format. They kind of built a timeline out of that.

I had the idea to bring at least that concept to WordPress, and while researching, I stumbled upon your plugin and thought, “Okay, someone already did all the work!” I was a bit sad—but also impressed. In the end, the early version of Friends was essentially a way to follow other WordPress sites with a kind of custom protocol that also supported private, almost direct messages.

Alex:
Well, it was RSS, right? So not a custom protocol.

Matthias:
Yeah, but with some authentication—some kind of hidden RSS feed or…

Alex:
Well, basically, you had a special URL for Friends on your blog, and if someone had access to that, they could get private posts as well.

Matthias:
And then, the follow-up feature allowed users to also follow non-WordPress sites and proprietary or closed social networks through other formats like RSS, Atom, JSON Feed, or through the bridging solutions, which is amazing.

So, in the end, it’s still possible to follow my blog, and aside from that, if I had an Instagram account, my Instagram feed, my Mastodon feed, and my Twitter feed—all of that could be aggregated. So, in your system, “I” as a person would be unique, and people could follow all of my content, even if it’s spread across the internet.

Alex:
Right! Well, maybe not Instagram because they’re pretty strict on limiting IP addresses quickly as soon as you try to do anything automated.

Matthias:
We shouldn’t use Instagram and Facebook as examples.

Alex:
Yeah, but what you’re saying is quite interesting from the perspective that people might have different types of content. That’s something I built into Friends pretty deeply—something that had already been kind of deprecated from WordPress at the time, which was post formats.

There was originally this idea in WordPress that you could post different types of content—like statuses, images, or videos—but post types are something else entirely. Post formats were things like standard posts, status updates, images, and videos. I was coming from the idea that if you look at any social network, technically, it’s just subscribing to a feed and publishing content that gets distributed. So, in the end, it could all be done with RSS.

All you need to do is categorize content into different formats again when you receive it, then display those received pieces grouped either by friend or by content type. For example, if you group by images, you have something similar to Instagram. If you group by videos, you have something similar to YouTube.

Matthias:
If Dave Winer were to hear this podcast, he would applaud the idea that most modern decentralized protocols are really just RSS feeds in disguise. But you’re right, in the end.

So, yeah, okay. And you didn’t stop there.

Alex:
No, it didn’t stop there. Actually, I looked it up just before this conversation—it was in 2022 when I first seriously worked with ActivityPub.

Matthias:
Okay.

Alex:
I probably discovered your plugin before that, the ActivityPub plugin for WordPress. I poked you a lot, and it took some time until things clicked. You know how sometimes you have this idea that something sounds similar, but you don’t see just the right way to connect them in a way that feels like a perfect fit?

But yeah, at that point, I actually contributed a pull request to your plugin because, the way I was doing things with RSS Bridge and FraidyCat, I wanted another plugin to extend the Friends plugin and provide its own feed parser. So, I added an ActivityPub feed parser for the Friends plugin to your ActivityPub plugin.

I think I pushed you into some areas where you were like, “I didn’t intend to do this.”

Matthias:
Yeah, it was funny because I merged that, and then, some months later, we did the complete opposite! We removed it and implemented it inside Friends instead.

But maybe we should take a step back and talk about ActivityPub a bit, so everyone understands what it is and what it means.

Alex:
Yeah. Wouldn’t you want to do that? You’re the expert here.

Matthias:
You’re the guest—it’s your stage!

Alex:
Well, yeah, I mean, to this day, I probably don’t know ActivityPub as well as you do. But I know enough to fit the pieces together so that you can do most of what a social network does—distribute activities to followers and allow users to register as followers, even if they’re on different servers.

At its core, ActivityPub is a protocol based on HTTP that submits activities to the inboxes of followers. They can respond by posting back to your inbox, and there’s also the concept of outboxes, where you can fetch what somebody else has been doing. It’s a push-pull system that lets you build your own feed based on who you follow.

In some ways, you can even compare it to email—if social networks were built on email, every time I posted something, I’d send an email to all my followers. The ActivityPub server helps keep track of who to send things to.

Matthias:
Yeah, it’s even the same wording with “Inbox” and “Outbox.” I like the analogy with email a lot because it feels like the social web version of email in the end.

Alex:
I think in general, for explaining federation to people, this comparison works well. I’ve also been active in the Matrix space, and even there, the concept of email helps explain how federation works. There’s a server that can receive stuff on your behalf, and that server can be shared by many people. At its heart, that’s federation. And while people think it’s something very new, we’ve actually had it with email for a really long time.

Matthias:
That’s also a very nice comparison because the hosting aspect is similar to email. You could use one of the big providers, you could go to a hosting service and set up your own domain, or you could even use it on a shared hosting environment with WordPress. That’s very similar to how email works.

So now we have the custom protocol that lets you subscribe to something, we have decentralized protocols like ActivityPub that work with Friends. What’s missing?

Alex:
Yeah, I think what makes other platforms interesting to people is that they offer very nice ways to browse content. There are all sorts of different ways to access them—through web apps, mobile apps, and more. That’s something people enjoy about centralized platforms, and it’s something that websites in general might be bad at.

When I added ActivityPub support to the Friends plugin, Mastodon was already well-established. Let’s not talk about that one particular platform…

Matthias:
Wait, before you go on, you have to mention how you used Friends before. I really like the export feature—exporting to your Kindle. We have to talk about that.

Alex:
Okay, we can talk about that. That’s probably even more niche than the rest of this. But yes, that’s how I personally use the Friends plugin.

Matthias:
It’s impressive!

Alex:
Alright, so I built the Friends plugin as my way of consuming content from across the web. But I took it one step further and now also use it as my own bookmarking service. Some people use services like Pocket to save articles they want to read later. I use Friends for that.

I have a small workflow where, if I’m browsing Hacker News and find something interesting, I can send it to my own site. It will then download just the content of that post for me to read later. But then I took it even further.

I don’t enjoy reading long articles on a screen. Maybe it’s an attention issue, or maybe I just prefer a different reading experience. I really enjoy reading on my e-reader, so I built a system where I can collect articles in different categories—one for English articles, one for German articles—and then export them as an EPUB file with chapters. It even sends the file to my e-reader so I can read in a more comfortable environment.

Matthias:
So you invented the ultimate feed reader. Is everything you’re describing built into Friends, or is the e-reader part separate?

Alex:
Well, the “Send to E-Reader” feature works with WordPress posts, so Friends can be used with it, but technically, you could also use it just to export your own posts into an EPUB file.

Matthias:
Okay.

Alex:
Originally, I used Kindle, which has a “Send to Kindle” function where you get a special email address to send files to your device. So in Friends, I added a button that lets you send new articles to your Kindle.

Later, I switched to a PocketBook e-reader, which has a similar service called “Send to PocketBook.” Again, you get a special email address, and you can send files to it. But then I switched to Kobo, which doesn’t have that feature at all. So I had to find my own workaround.

It turns out that Kobo has a web browser—very limited, but still usable. So I created a page that I can access from my e-reader, where I can check off articles I want to read, and then I can download them as an EPUB file with a table of contents.

Matthias:
This is amazing—and very nerdy.

Alex:
Yeah. So, one reason for the success of ActivityPub, in my opinion, is that Mastodon played a big role in making it popular. Even though Mastodon itself didn’t start with ActivityPub, it helped create an ecosystem of developers building apps for it. That’s really important because when there are phone apps, web apps, and different ways to interact with a platform, it becomes much more accessible.

I realized that this openness meant I could use Mastodon apps for my own WordPress. So I started working on implementing the Mastodon API on WordPress.

At first, it was tough—lots of debugging. The Mastodon apps I was testing against would crash, sometimes so hard that I couldn’t even see why. Eventually, I figured out that some apps expected certain data formats that weren’t clearly documented. For example, Mastodon’s API technically allows IDs to be strings, but all the apps expected them to be numbers.

Long story short, I built a plugin called Enable Mastodon Apps for WordPress. Once installed, you can go to any Mastodon app, enter your WordPress URL instead of a Mastodon server, and it will connect. You’ll see your WordPress login page, authorize the app, and then your WordPress posts will appear in the app.

Matthias:
That’s genius! You basically turned your WordPress site into a Mastodon-compatible social network.

Alex:
Yes. And it doesn’t even require ActivityPub or Friends—it works on its own. I actually use it for a private family blog where I post updates and photos of my kids. I don’t want to post that kind of content publicly, but my family still wants an easy way to see updates. By using Enable Mastodon Apps, they can just use a Mastodon app to browse our private site.

If you do combine it with the Friends plugin and ActivityPub, you get something even more powerful. You can follow Mastodon users, subscribe to RSS feeds, and aggregate everything into one timeline that appears inside Mastodon apps.

Matthias:
And that’s even more impressive because, from the user’s perspective, they don’t see a difference between an RSS feed and a Mastodon account. That’s amazing!

Instead of building a WordPress-specific app, you implemented the Mastodon API so that any Mastodon app can work with WordPress. That’s brilliant—it’s the WordPress developer way of building an app.

Alex:
Yeah, because if I had built a custom WordPress app, I’d need to maintain it forever. By supporting the Mastodon API, I can use any Mastodon-compatible app, and as new ones come out, they’ll work automatically.

Matthias:
And since Mastodon’s API has become the de facto standard for federated platforms, you could even use apps like PixelFed’s app to publish to your blog. That’s amazing.

Alex:
Right! Some Mastodon apps don’t handle long-form content well, but overall, the idea works.

Matthias:
From the user’s perspective, they don’t need to care whether they’re following an RSS feed or a Mastodon account—it all just appears in the same timeline. That’s incredible. The idea is genius because you could have gone two ways:

  1. Build an app that works like a Mastodon app but speaks the WordPress API—which would have been very limiting and required maintaining an entire app.
  2. Or, as you did, simply implement the Mastodon API so that any Mastodon app can work with WordPress.

That’s genius, and if it works smoothly, it’s such a simple approach. I’d say it’s the WordPress developer way to build an app.

Alex:
Yeah, because if I had gone the first route and built a WordPress-specific app, I’d need to maintain it forever. By supporting the Mastodon API, I can use any Mastodon-compatible app, and as new ones emerge, they’ll work automatically.

Matthias:
Yeah. And, no offense, but if one of us built an app, it wouldn’t be as polished as the most well-known Mastodon apps. I think we can both agree on that.

Alex:
Yeah, fair point. And besides, it would be limiting to only build an app for WordPress. Because as big as the WordPress ecosystem is, as I said earlier, at its core, WordPress is for publishing. The Friends plugin is somewhat unique in that it turns WordPress into a tool for following content as well.

Most people don’t think of WordPress as something you use to read content. They think of it as a platform where you publish content. So it takes a bit of a mindset shift to realize that WordPress can also be your own personal feed reader.

Matthias:
But WordPress is still 40% of the internet! There’s so much potential here.

Alex:
Yes, but a lot of that is businesses, e-commerce stores, and other sites that don’t necessarily need a feed reader. However, I still think many WordPress users could benefit from using ActivityPub or Friends. Even if they don’t want to follow feeds, they could still benefit from being discoverable in the Fediverse.

Many people just don’t realize this is possible. Maybe that’s something we can change. But it’s also a question of whether people see the value in it.

WordPress could be the foundation for hosting not just public content, but also private things—like a personal knowledge base, a family blog, or even something like a private social network.

For example, I’m experimenting with using WordPress as a recipe manager. What if my mom posts my favorite childhood recipes on her blog—maybe even privately? If she’s using Friends, those recipes could be shared with me through our Friends connection.

Another example—I’m using WordPress as a family history wiki. That’s also a private use case that most people don’t think of when they think about WordPress.

Matthias:
Do you mix all of this into your main blog, where you also publish articles, or do you keep everything separate?

Alex:
I use WordPress Multisite.

I think a last-name domain is a really nice approach because you can set up subdomains for different family members or projects. So in some ways, I think if you’re the nerd in the family, you can become the federated host for your entire family.

Matthias:
That’s a great way to put it! But do you use the feed reader feature from Friends on your main blog?

Alex:
Yes, my main blog is also where I use Friends as my personal reader.

Matthias:
How can we get this idea out to more people?

Alex:
I think there are still some barriers to adoption. One big challenge is discovery. How do people find new content or new people to follow?

On centralized platforms, the platform itself helps with discovery. But in a decentralized world, there’s no single place curating what’s interesting.

In Mastodon, for example, there are relays, which help servers discover more content. If you combine this with subscribing to tags, you can receive posts from people even before you follow them. That can help with discovery.

I also think I was too privacy-focused in the early versions of Friends. I didn’t include an easy way for your friends to see who else you’re connected to, which might have helped people discover more accounts to follow.

Matthias:
That makes sense. Based on the evolution of the different formats you’ve used for Friends, is there any experience or lesson that stands out?

Alex:
I think the biggest moment where things “clicked” was when I was able to open a Mastodon app and see my WordPress feed inside it. That was the first moment when I realized, “This really works.”

That’s also the moment when other people start asking questions. If I show them a Mastodon app on my phone and they see a timeline of posts, they assume it’s Mastodon. Then I tell them, “No, this is my WordPress blog,” and they get curious.

It’s a powerful realization—your WordPress site can become your personal social network.

Matthias:
Yeah. The Fediverse and protocols like ActivityPub solve some of the problems that early versions of Friends had.

Your custom protocol required the other person to also install Friends for the connection to work. That’s a big limitation. Then, when you added support for RSS, you could follow anyone—but it was still one-way. You could subscribe to them, but they couldn’t subscribe back.

ActivityPub combines both ideas:

  • It’s already widely adopted, so by simply installing the plugin, you instantly have access to millions of users.
  • You can follow people, and they can follow you—it’s not just one-way.

That’s the big difference I see in the history of your plugin. And the best part is that it’s all backward-compatible. If there’s someone you can’t follow through ActivityPub, you can still follow them through RSS.

In the end, Friends unifies everything. You don’t have to care where content comes from—you just have one clean stream to consume.

And that’s amazing.

Alex:
Thanks!

Yeah, as I said before, I’m not a UI designer, so the default view in Friends is pretty basic. But the great thing is that you don’t need my interface.

By supporting Mastodon’s API, you can use any Mastodon app.

And maybe in the future, if another federated protocol gains traction, I could just add support for it. For example, if Bluesky ever federates, we could have a Bluesky plugin that integrates with Friends.

This is why I like hosting my own data on my own server—because I have full control.

And since Friends is open-source, anyone can extend it to fit their own needs.

Matthias:
That’s an amazing vision.

Okay, so what’s the best place to learn more about Friends?

Alex:
Right now, the best place is still the plugin page on WordPress.org.

I’m working on a new landing page that explains things more clearly.

Matthias:
Okay, we’ll keep that URL secret until you’re ready.

Alex:
Yeah, I’m considering moving it to a subdomain, so let’s wait and see.

But certainly, the best place to get started is still the WordPress.org plugin page. And if people want to read my thoughts on the Fediverse and decentralized social networks, I’ve written some blog posts about it.

For example, it all started with my post, “A Social Network is Basically an RSS Feed in Disguise.” I also wrote about how you can use WordPress as a Mastodon instance with just three plugins. And more broadly, why I think WordPress is a great foundation for self-hosting.

You can find all of that on my blog at alexkirk.at—that’s .at for Austria.

Matthias:
That’s something we need to talk about more. Because at WordCamp Europe in Berlin, they had name badges, but the only thing you could put on them was a Twitter handle.

So you’re at a WordPress conference, for the most-used CMS in the world, and it wasn’t even possible to put your blog URL on your badge!

I really appreciate that you haven’t mentioned any proprietary networks—you just gave your blog URL instead. That’s the perfect attitude for an open web conversation.

Alex:
Yeah, I think the most important thing is to open up your mind about where you get your social media information. It doesn’t have to come from a single, centralized service.

Your own blog can be a first-class citizen in the Fediverse. You can use your blog to connect with people on Mastodon, follow RSS feeds, and consume content on your own terms.

The Fediverse isn’t just Mastodon or PixelFed or PeerTube—it’s the entire ecosystem. And because of the protocol, everything is interconnected.

That’s the real power of the open web.

Matthias:
That’s a perfect final statement! I’m so happy you took the risk to be my first guest.

I hope this episode helps spread the word and gets you some new downloads, new users, and hopefully not too many bug reports.

Alex:
Or, even better—new plugins that extend it!

There’s so much potential here. There could be themes for Friends. There could be more integrations. And the more people using it for their own needs, the more versatile it will become.

Matthias:
Exactly! So, contribute like hell!

Thanks to everyone for listening. We’ll put all the links in the show notes, so you don’t have to rewind and type everything out.

Alex:
Yeah, and if you want to read more, check out the blog!

Matthias:
Yes! And we’ll be back soon with another guest—hopefully someone as exciting as Alex.

Thanks a lot!

Alex:
Thank you! Thanks for having me.

Matthias:
Bye!

Alex:
Bye!

Open Web Conversations
Sponsors