The Untapped Potential of Fediverse Publishing
Thoughts on Improving User Experience
It’s an exciting time for the Social Web movement: both WordPress and Ghost are experimenting with the ActivityPub protocol, Flipboard is federating their magazines across the network, and Newsmast is doing some really interesting development work regarding curation and content discovery. As we start to put these things together, it’s not hard to see an extremely compelling vision of how publishing and discovery can work here.
As writers and publications continue to look towards free and open alternatives to platforms like Substack, the opportunity looks ripe for this network to fill in as a fantastic alternative. The ability to maintain a direct relationship between authors and readers is enticing, and I believe the network has a clear path towards building a Federated Blogosphere that works with other social platforms.
For the network to make this shift suitable, however, we have to overcome a historic headache the Fediverse currently faces: making stuff look right.
Article vs Note
The biggest problem the Fediverse has with publishing today involves the Article
activity type. ActivityPub supports a wide vocabulary of object types, but the details are often left to implementers to decide how to use them.
The early network was built around microblogging, and that use-case is what Mastodon was built on. When the network first switched over to ActivityPub from OStatus, many of those initial conventions ended up getting carried over. While the network has continued to grow and evolve, a lot of platforms still feel stuck in the past.
The problem is that different platforms represent the same content differently, and it doesn’t always look good. There are a number of workarounds to make content look standard across the network, but every decision is a tradeoff of aesthetics and semantics.
In the above example, my personal blog sends out everything as a brief Note
type, which is what Mastodon supports. On Mastodon’s end, it looks great. On platforms that support long-form content, the whole thing gets truncated, and defies expectations. Imagine opening a Medium article, and only seeing a tweet with a link to some other web page: it’s not a great experience.
What can we do?
In trying to build a news publication on Fediverse publishing, I’ll readily state that this is a challenge. You want your content to feel native to whatever platform is reading it, but that’s not always possible. Your content only has one representation, and various platforms will try to handle it in a way that makes sense for them.
I have a few ideas on how to change this, and it could be argued that each idea could be used in tandem. As publishing tools become more widespread in the network, this is something that big platforms like Mastodon have to think about.
Idea #1: Graceful Degradation
Graceful Degradation is a concept where, if an environment or application can’t render 100% of something, it still has ways to successfully show part of it. Mastodon and other Fediverse platforms already do this to some extent: if you post an object that nobody can make heads or tails of, it gets represented as a Note with a link.
One thought I have here is that maybe we can find a way to improve the most basic representation of a post, so that it shows more than just a link.
Idea #2: Alternate Representations
One idea that shows promise comes in the form of FEP-fffd: Proxy Objects. In a nutshell, this is a method for an ActivityPub object to point to an alternate representation of itself, in addition to its primary intended format.
There are a number of interesting use-cases, such as pointing to a secondary back-up of a post hosted on, say, IPFS. If your instance goes down forever, there’s a way to still interact with an existing post, and maybe even retrieve it when you join a new server.
One way to take this idea further is to simply tell various platforms “Hey, if you don’t support this activity, here’s a different way to represent it that still looks good.”
Idea #3: Machine-Readable Post Types
For this idea, we can look to one of the purported goals of the long-dead Tent project. The concept of Machine-Readable Data is not new, and can be traced back to the 1960’s. Simply put, we can structure data in such a way that the contents describe instructions to machines on how to read them.
Rather than having a server simply try to render a basic fallback for content, posts could actually tell servers the ideal way to render them through a set of instructions. Of course, servers would have to come up with a standard framework for parsing and interpreting these instructions, and would have to somehow avoid a potentially massive attack surface. The juice might not be worth the squeeze here.
Imagining What’s Possible
So, we’ve talked about some of the theory behind how this could work in a future Fediverse. What would it look like in practice?
Let’s say that I publish an article from my site. On microblogging networks, people see a short excerpt, a link, and an OpenGraph preview.
Federated blogging platforms like Ghost or Plume see the article preview in their feed, and people can read the full contents from their own dashboards.
Platforms like Flipboard could leverage ActivityPub to a greater extent than they do today, offering a shared feed of blogs and publications that are pulled directly from the network, allowing for organic discovery and curation through direct federation. Threadiverse platforms such as Lemmy could even pull articles in directly through federation, effectively performing and Announce
action to share between groups.
At every level, different systems could come together, allow for replies and interactions, and give people an experience to engage with content and media in a way that suits them best. Everything that happens from those vantage points could reflect back on the original article, reducing friction in the process.
Looking Forward
These are all just ideas and musings at this point. For now, publishing in the Fediverse is still a bit janky, and it will take a substantial amount of work to make this vision feasible. For adoption, it would need to see support from Mastodon and Threads, along with all the other platforms currently involved in the FEP process.
The future of publishing on the network is extremely bright. Not only do we have the potential to bring free and open social networking to the Web, we have the opportunity to make it all interoperate and work together in a way that wasn’t possible before. People will continue to experiment with ideas on how to make the network better, and these efforts are incredibly worthwhile.
Great points.
The issue of article vs. note also represents itself in the Open Graph metadata. Given the only og:types mentioned in the spec are article, book, profile and website, most platforms including Mastodon choose “article” for their notes URL.
While building Readily (https://readily.news), a news digest (Nuzzel for Mastodon), I wanted to discern between articles and notes and ended up hardcoding some domains to ignore e.g. mastodon.social, bsky.app, threads.net etc . In a second iteration I’m looking at other ways like JSON-LD and length but it’s nice if we defined the difference in a deterministic way.
But it’s exciting to see progress and discussion
Self-hosted news, updates, launches, and a spotlight on Handbrake Web – a native web interface for the popular video transcoding tool