Okay, so I hope you all are here because of the WordPress talk, because we shifted around a bit.
So as Andy already said, my name is Matthias Pefelli, I work at Automatic as an open web
Wrangler, I'm maintaining the activity plugin, and I'm a WordPress user since WordPress exists.
So I even started with the predecessor of WordPress, and I'm maintaining a lot of other
plugins, but that would blow up the talk I would say.
Some facts about WordPress, it was founded in 2003.
As a blogging platform, now you would call it a CMSA, it powers almost 43% of all websites.
Huge potential for the Fediverse, and there are around 60,000 plugins that might also
be federated sometime.
It's open source and runs on the landscape.
Because there was a shift around, I wasn't sure if I had to talk about the Fediverse
and the open social web now, is everyone aware of that, the concept, someone unaware?
Perfect.
Okay, let's talk about WordPress and the Fediverse.
Why WordPress?
Why the Fediverse?
That's very simple, and I'm very bad in marketing, so it's simply I'm using WordPress,
and I was frustrated about the direction social media took back in the days to more
wallet garden concept.
So I searched for alternatives to keep the spirit of the blogosphere alive, a decentralized
system, ping-bags, track bags, having comments on other ones systems.
So I decided to have a look at the Fediverse, and that started way before activity
pop was even a thing.
So I think it was 2011, when I first got in contact with the predecessor of activity
pop, old status back in the days, in the glorious status, identica times, and the first prototype
allowed users to follow WordPress users, federating content, and federated comments on that content.
That got another boost, when Macedon entered the scene, they drove a lot of momentum
to the Fediverse, they had quite a good timing when Twitter did some bad decisions, but
there were great movement, and I was really motivated to have a look at the Fediverse
and WordPress again, but that escalator quickly, so about a year later Macedon decided
to abandon old status, and after some weeks of frustration, I felt motivated enough to follow
that direction, and tried to implement activity pop for WordPress.
And then there were another boost, automatic got a way out of my work, and out of nowhere
contacted me, if I would love to work for them on open web stuff, including the activity
pop plugin, which gave a lot of momentum on the plugins called WIS and contribute at WIS.
That's the activity pop plugin, it's maybe some fundamentals about the plugin that maybe
helps to understand why we took decisions we took.
We don't want to have to make WordPress a social network, so WordPress is a blogging platform,
and it should stay a blogging platform, so we decided to instead of making WordPress a social
network to adapt social interaction possibilities for WordPress, but the WordPress way,
to integrate it as natively as possible, and it should work out of the box, a simple
plugin play installation, and we also, because of this, 60,000 plugins, we also hope
to provide an internal API for other developers to hook into the core functionality of
the activity pop plugin to then federate their own content.
The installation is quite easy, you simply go to WordPress backend, search for activity
pop and install the plugin, then you get a little onboarding process that should help you
understand how the plugin works in general.
We do not force you to do any settings, as I said, it should work out of the box.
The only thing you should take care of is WordPress normally works in a shared hosting
environment, and there are a lot of other plugins that do stuff, so there's a possibility
that hosting and other plugins work against the activity pop plugin.
These checks, check the fundamental endpoints and functions that are really necessary
to run WordPress, so you only have to take care about these if you can, these are things
that the plugin itself cannot fix.
That's it.
Now you are able to publish federated blog posts, under the hood, but there is a bit more.
Under the hood that means, because we want to stick to, as I said, to the WordPress UI
as much as possible, we decided to go with the classic blogging editor and find ways
to understand the blog posts or the content they use as publishing, so there is an
autism that runs in the background that analyzes the content you write based on the length
of the post, do you use a title or not, and decide what could be the best possible
federated activity version of that to then federated like that.
We also try to hook into core WordPress functionality, like for example WordPress has the
concept of post formats, where the user can decide if it should be federated as a node
or as a full article, and that's also the possibility to choose media types.
For example audio video, and the plugin assumes then if you use the video content type
or the audio content type, that this media should be in the focus.
So if you use audio, for example, when you publish a podcast, then it highlights the audio
and shows a nice little audio play on Macedon, and there are other examples for a short
note or the full content.
The nice thing about that is we do not have to care about the 500 characters of Macedon.
When it is not possible to directly hook into core functionality, we try to extend the settings
that are already there and try to keep the UI and UX.
That's for example the extension for the editor.
You see here on the right side, where the user can decide blog post, if it's a public one,
a quiet one, who should be able to quote that post the number of attachments and things
like that.
There's a lot of magic happening in the background.
We decided to provide a preview option, hooking into the core preview possibilities
to add a fabulous preview version so that the user can see what will be federated.
This we decided to use the biggest one on the market or to mimic the biggest one.
It's possible to hook into that so if you have event plugin and you want to federate events,
you can replace that preview with an event preview, mimicking mobile phone for example.
There's the common support for inline semantics like attributes or hashtags and the plugin
also maps these semantics to the core representations of WordPress.
So if you use a hashtag inline, then it will be stored also as WordPress tag and vice versa.
With comments, it's really fine and straightforward.
We can add these as comments on WordPress.
The only difference that makes it a bit complicated is that WordPress was not built with social
network or federation in mind so there's still the local common form and we decided
to have different read possibilities.
So if a comment read started on the fediverse, it will be fediverse only to not have separated
communications so that it started on the fediverse and then it went on on the block and
the same for local comments.
If a thread starts local, then it stays local.
It was a bit tricky to map shorter reaction options like boosts and likes because there's
no real point on the WordPress site.
So in the end we decided to use comments to store these but take them out of the common
query and use different UI for them.
Because we use the comments WordPress type for everything, we are able to reuse the moderation
queue of WordPress so every like reaction or comment runs through the moderation process
so you can have spam filters looking through all of these and we added an addition with
block lists of several types and also a possibility to subscribe to block lists.
And for the bit richer content WordPress provides, I wanted to say the new editor but
it's also about 70 years old I think but the actual editor allows to add blocks or has
the concept of blocks every row in the editor is a block even if it's a paragraph, a block
or something like that, a table and we extended that to add some social additions for example
a reply block that allows you to write replies as a reply to another block post or to a note
on the Fediverse and to add some common things like follow us list or follow us lists.
For that you simply have to create a page and use that block.
There are also blocks that provide profile cards and follow buttons.
These can also be used in templates if the template supports blocks.
Or does it look like normal profile should look like on the Fediverse I would say nothing
out of the ordinary. There's one addition that might be special for WordPress.
You can configure the plugin so that the block itself is an actor and that acts as a group then
which allows you to be followable if that is a word on the Fediverse
and then it looks like community and all of the block posts will be listed as threads.
For the developers we have the common WordPress thingy filters and actions almost.
So there are a lot of options to directly hook into the inbox process to process inbox
we quest directly to add things to the outbox to filter the activities and additional attributes before we send them out.
We have persistent inboxes and outboxes that means even if you miss an activity you can bypass the inbox of the outbox
and federating your own content as plugin developer is as easy as storing something in the outbox
and the activity plugin takes care of the federation then.
And there's the common API endpoints. These are also extensible and we take care of the plugin takes care about the signature verification.
If you are interested if you are a WordPress developer and interested in building something on top of the activity plugin
these are three plugins that already do that maybe that's nice reference but aside from that these are quite nice plugins that are also.
Of well you for end users the event page for example purchase the biggest hand WordPress event plugins to activity pub.
An ever method on apps implement a method on API for WordPress so that you can use a method on apps to publish something to WordPress and friends is kind of what we didn't want to build for WordPress it's a community overall community thing that also federates and through the activity plugin.
There are also challenges if you build directly or if you directly extend WordPress and work inside of WordPress and the WordPress ecosystem.
And that is mainly shared hosting because activity pub can be generated a lot of load so it's very tricky to handle that load properly to find a way to federate stuff in bugs.
So that the server does not go down. There are a lot of other plugins as I already mentioned that interfere with the activity pub plugin from time to time.
Then there's a very limited way to use the WordPress database so it is technically possible to extend that with custom tables but that is not the common sense and there might be service that prevent that so we decided to go with these and that.
For us to be really creative when it comes to storing events and remote users.
And WordPress has still the differentiation between comments and posts which makes it really difficult for to store incoming posts from the very goes because it's always you have to go.
There's always up the threads to find the first post store that has a post and the common thread then as threads.
And there's also something that is very special to WordPress that's domain changes that's a very common thing in self hosted sites that's not very common on the federates yet.
There are some creative ways to use move for a domain change but that's not very well supported yet.
And there's some general things the user so in the WordPress world the federated communication is not that common so we train users a lot to no longer be aware of the the old days of the blogosphere but.
Using word for simply for publishing the activating anything that allows social interactions like comments and fully rely on.
And third party social media to use cross posting to federate what to share their content so the most asked questions in the first year of writing the plugin was okay I installed the plugin how can I connect that to my master blown account.
Another one is WordPress is no social networks so we do not have the network effects of normal social networks there is no.
Local timeline so it's it's very lonely when you first install it and you have to really.
Work on building an audience you have to really push that out and that is really hard work.
But if you give it a try it can be really amazing that is one of our blocks or that's the official blog of the.
The activity plugin and it went from zero comments to around 100 comments proposed only by connecting it to the federates so it's really.
A magical thing bringing back interaction to to the blog again.
And it's all yours it's under your domain you hosted your own it you can do whatever you want.
What comes next one big thing we already started is the reader you might have seen that I mostly talked about the publishing part.
But we are actively working on the subscription parts so that we can provide the full activity activity part experience in the end.
It's already working you find that in some hidden some at once at advanced settings and it's still there's still some glitches but I think that would be the main part for the next year.
And I'm also excited personally excited about to other projects like the the starter packs because I think that is also something that helps block users to.
Get seen or the content get seen and the fast project by Macedon to have a decentralized discovery service system.
So that's it thank you.
Any questions.
It's a work press to.
To help you.
It's the work press community prepare to to pick up the changes for the extensions so to improve the products for this obvious nice.
I think that depends if that is really use case and or if we can make that a use case I think it's still very niche and compared to to other big plugins.
I would I would hope that this changes some of the.
WordPress court database tables or how WordPress thinks of internal object types differently for example that there's already the concept of.
Posts being a sub post of another one so that's technically possible but it's not used.
So I would hope that.
Maybe one day this work would positively influence the project.
Yeah.
Thanks.
First of all I want to say thank you Matthias for bringing back comments to my blog since 15 years there were so many comments and the times of the productivity power plug in and the question is.
What would you recommend when we did a blog and using a sub domain or development domain and you want to keep your followers safe.
What can we do then.
So that refers to the domain change thing.
That's really a problem so and I have not yet a solution to that but I hope that maybe.
The reactivated social web working group might have might work on something to fix that in the future but that's one of the biggest issues right now that we cannot.
Fix with.
More RAM or bigger database.
Yeah.
But so there are some hidden features to trigger moves.
Maybe we can have a talk later.
So one of the rules around for them is use of the university spaces that we need to have folks seated in the room so that.
Fire regulations and so on are kept for crowding and stuff like that.
I know it sounds counter but that's the rule.
So thank you any more questions I can bring a mic to you.
Maybe first the round of applause to this person because he built the event bridge plugin.
Thank you.
I think you won't like that question but you mentioned it and I find it quite interesting.
Can you give a short reference what becomes an activity profile in WordPress?
What can what it becomes an actor or profile on a WordPress website?
So normally it's every WordPress user that has the right to publish something.
And on top of that there's the block actor.
And we have some hidden application actor that is doing the querying stuff.
But it's just that answer the question.
So I think in the end it all comes to the possibilities you have in WordPress.
So as a sad WordPress is very limiting in extensibility database wise.
So it's really hard to introduce new actors in the same way that WordPress users are stored.
Especially if you use a bigger systems like WordPress multi site because if you create something like an application user as a real user then it is known on all blocks.
So yeah that can definitely be improved but maybe someday we have an improved handling of the database generally so.
We're going to do some defragmentation here we've got some gaps in the middle that will help to.
If folks are staying in the room for the next talk if you could just shuffle along that would be awesome.
The tires can I ask a question.
Yeah so one of the things I think really contrast strongly between activity pub and some of the social web.
Excuse me social network integrations that you see with WordPress is just the fidelity in terms of the content that you're sharing.
Right so when you're posting out to like Facebook or LinkedIn or whatever you get you know an image maybe a garbled version of the lead maybe a title and that's it.
Is that a selling point at all for WordPress authors that you know you can see the full article on the Fediver versus like a garbled mess in LinkedIn.
That's a tricky question because it depends so over the years.
Social media managers were trained to use exactly that pattern and they kind of used to love that to be very explicit with.
I want to share exactly that and it looks exactly like that on social media and it was a hard one to explain.
The big companies in Germany that this does no longer play a role it's for my perspective it's more you provide everything you have and the receiving club from decides what to show.
So the WordPress plugin always provides a summary.
The full content and some attachments and then it's on the receiving party to decide if they want to show the full content only the summary.
And I personally really like that pattern but from the perspective of a sort of so familiar manager this is often uncontrollable and yeah that might be the issue there.