I hadn’t really looked, but it turns out that Mastodon has incorporated microformats. It has h-feed and h-card, h-entry (a status), and h-cite (a boost). Plaint text properties (p-), e-content, and link properties (u-) are implemented. Indeed, they all surface when looking at a profile’s HTML source. This is what makes it possible to e.g. follow Mastodon feeds as h-feed, next to the existing RSS output and ActivityPub, and that e.g. Brid.gy can do its work to carry over any interaction on a Mastodon post to a blogpost here.

What I haven’t found was what I was looking for.
The ActivityPub protocol in its specs has several so-called Activity Types that drew my attention:

In short ActivityPub supports FourSquare and Dopplr like check-ins and travel plans. I’ve recently added that to my site in terms of microformats and was still wondering how to create a useful stream for it. I’ve been thinking about an OPML outline with schema.org attributes, or a dedicated RSS feed or h-feed. An ActivityPub stream might be of interest too, or even more. There’s a PHP implementation of ActivityPub that includes these Activity Types as well, meaning there’s potential to experiment for me.

I wonder, are there any actual implementations of these ActivityPub types currently?

As the Internet is alive with the sounds of #twittermigration these past days, I returned to some earlier thoughts and ideas, w.r.t to both self-hosting fediverse instances, and mapping those on to the business network of my company.

The resulting question is, would a set-up like this work?

If our company would set-up their own fediverse instance (m.tgl.eu here, with accounts for our team). This gives all of our team a ‘verified’, because of the company url, presence as part of their current work. That doesn’t mean we can’t have other accounts (see @ton in the image). And others in our network would do the same (names of organisations for illustration purposes).
If we would run one instance together (samenhankelijk.nl here), that is a relay for all the instances of the organisations involved, and the instance for any individuals in our network (@w… here).
Then we would have a fediverse network of our company’s actual network, where it becomes easier to interact more frequently across the entire network, where discovery is possible because of the shared public timelines through the relay. It’s bounded by being a representation of an actual network, but open within that and based on the permissive boundaries the various organisations themselves have.

I’m not sure if this is how ActivityPub relays are meant to work or are useful, but that’s what I want to explore.
A few of those building blocks are easy to set-up, a company instance and the instance to function as relay. Others are harder, getting our own instance used (we have internal asynchronous interaction through our own rocket.chat instance), getting others in our network to take the same steps.

Notions that play a role in this

My company is part of a network of similar groups and initiatives. Internally we call them friends of our company. These are the people and organisations we invite to events and parties, that we like to hang out with, jam about ideas with, and when possible work together with. That can be because we worked together in the past and thought that was fun and worth repeating, or because we share or shared office space, have similar perspectives or visions, and having overlapping or complementing activities. It’s a network of individuals in larger organisations that we interact with individually, and companies, non-profits and NGO’s that are Zebra’s, like us.

I think that technology should be smaller than us, in order to provide agency to us. With smaller I mean that the deployment and daily use of a tool must fall within the control and capabilities of the user or user group. Specifically the off-switch should be in control of the user group itself. That way a user group can use a tool under their control to address issues that group has by themselves in their own context. This is what I call networked agency. Different groups can strengthen their tools and work, by networking with other groups, yet tools stay useful on their own and get more useful when connected.

I also think that human networks of connections are similar to the structure of peer-to-peer internet structures. A network of many smaller nodes and areas where those connections are denser, individual nodes that are more intensively connected to others and form a local center. I’m convinced our digital tools work better if they deliberately mimic that human network structure, so that the digital affordances those tools provide flow naturally into the human network connections we all have. That’s what I call human digital networks, and distributed digital transformation.
Openness is a necessity in the networked age. But it also needs a limit. That limit is tied to our personal limits, the way we need to feel ‘at home’ in the context in which we exchange ideas. With the new influx of many new people on Mastodon I noticed how my timeline is feeling more alienating than before when it was more like hanging out in my favourite watering hole in town. That will settle, I’m sure, yet in social platforms that treat the entire globe as the same public square you are continuously exposed to the algorithmically amplified onslaught of all of it all the time. Which does not reflect human network reality anymore. Bounded openness matches that reality better.

All this maps on to the fediverse I think: if each company or group in our network has their own instance, that allows internal interaction and public interaction in parallel, and if that public interaction is always visible locally in all other instance in the network, then more direct and deeper ties between the people in the network may grow. Such interaction would create more ideas, more initiatives and help spot more opportunities to do things together I think (or equally quickly expose we’re not as nicely aligned or matched as we thought).

INDIEWEB.SOCIAL is a #Mastodon-based Fediverse instance that is a home for those who build, study, promote – or are just fascinated by – a wide variety of #openweb, #indieweb, #federated and #humanetech practices and technologies.

We seek to promote innovation and shared evolution and promotion of such technologies as well as to offer this instance itself as a platform to experiment with integration and early implementations of these.

Originally registered by Jeannie McGeehan, now co-administrated by Tim Chambers

To me it’s more logical to run ActivityPub individually, either directly from your own domain, or by having a separate single-person instance (such as in my case). Yet, I can see how having a group instance like this can be useful.

I’ve added a plugin, Mastodon Autopost, to crosspost from this blog to my Mastodon instance.
This won’t bring back any reactions to this blog, unlike Twitter reactions which do get back to this blog through Webmention. For that I would need to use Bridgy Fed. However that has as a disadvantage that it would turn my blog into a separate ActivityPub account, an activitypub user in its own right.

For now I’d rather have a separate Mastodon account (on my personal instance). Not everything I post on my blog I want to post to Mastodon, and not everything I post on Mastodon I want to have in my blog (e.g. responses to or reposts of others). I can definitely see me using this blog as the one and only hub for my online communications, but for that to work, I want to be able to keep ephemeral postings outside my regular site and my rss feeds, and more importantly be able to determine intended audiences per posting. Another requirement is that I can post tweets about a blogpost without that tweet being a separate blogpost (now I use the post excerpt for that and send it to twitter)

Currently I have my Mastodon (and my first Twitter account) set to me needing to approve every follower. My audience for a message is somewhat known to me that way, and I can shape a message accordingly. We all talk differently to different people and have conversations in different settings and contexts. This is true for online conversations just as much as for offline conversations. My microblog account does post everything from my blog but I also interact there independently from my blog.

With this plugin, for each posting I can determine if it is cross posted to Mastodon. I already had a similar setting for Twitter (and Flickr, which I don’t use). See the images.

It works as intended. I set the excerpt of this posting to “If all works as intended, this blogpost should show up in my Mastodon instance #wordpress #activitypub”, and set the plugin to post title, excerpt and URL.


The Mastodon community worries about whether the new EU copyright directive (which won’t enter into force for 2 years) will mean upload filters being necessary for the use of the ActivityPub protocol.

I can’t logically see why that would be, but only because I don’t compare Mastodon to e.g. Twitter or Facebook. Yet if you do then the worry is logical I suspect.

Mastodon is a server and a client for the ActivityPub protocol. In a fully distributed instance of Mastodon you would have only a small group of users, or just one. This is the case in my Mastodon instance, which only I use. (As yet the Mastodon universe isn’t very distributed or decentralised at all, there’s no long tail.)

The ActivityPub protocol basically provides an outbox and inbox for messages. In your outbox others can come get messages you make available to them and your server can put messages in your outbox into someone else’s inbox itself.

The Mastodon server can make what you put into your outbox publicly available to all that way. Others can put messages for you in your inbox and the Mastodon client can show publicly what you receive in your inbox.

But making anything public isn’t necessary at all. In fact I don’t need my public facing profile and message timeline on my Mastodon instance at all. They are non-essential. Without such pages there’s no way to argue that the messages I receive in my inbox are uploaded by others to a platform, and falling within scope of a potential need for an upload filter.

My Mastodon instance isn’t a platform, and the messages others send to it aren’t uploads. The existence and form of other ActivityPub clients and servers demonstrates that neatly. I currently send ActivityPub messages from my weblog as well, without them being visible on my blog, and I can receive them in my Mastodon, or any other AP client without them being visible for others, just as I can read any answers to that message on the back-end of my blog without it being visible to anyone but me and the sender(s). Essentially AP is more like one-to-one messaging with the ability to do one-to-many and many-to-many as well.

The logical end game of decentralisation is full distribution into instances with only individuals or tight knit groups. Federated where useful. The way the Mastodon client is laid out (sort of like Tweetdeck) suggests we’re dealing with a platform-like thing, but that’s all it is: just lay-out. I could give my e-mail client a similar lay-out (one column with mail threads from my most contacted peers, one with mails just to me, one with all mails sent through the same mail server, one with all mails received from other mail servers by this one.) That would however not turn my mail server plus client into a platform. It would still be e-mail.

Mastodon’s lay-out is confusing matters by trying to be like Twitter and Tweetdeck instead of being its own thing, and I posit all ‘upload filter’ worries stem from this confusion.

Discovery in networks is always a bit difficult. You can for instance traverse the follower list of the followers of your followers (ad infinitum), which I often do, or you make voluntary lists like webrings, or blogrolls (my blogroll is in the right side bar). Trunk has some interesting thematic lists with (real 😉 )people’s activity pub and Mastodon accounts on them for a wide variety of topics. From retro-gaming to sustainability, from cyberpunk to fountain pens, and from witchcraft to gardening.