FediThoughts

Thoughts on write.as, and publishing on the Fediverse

As an editor of a Medium publication, I've been wondering how publications will work out in the Fediverse, and how they could be implemented. I'll start with what a “Publication” is on Medium, so if you already know that feel free to skip the next one or two sections.

Different posting models

Before I go into publicaitons, let's look at the standard social-media model. You create an account and start posting.

Those posts appear on your Profile Page, as well as in he feeds of those who “follow” you, and so on. It works the same way on most websites, whether it's LinkedIn or Mastodon.

Tubmlr took this a step further. Your posts appear as standards social-media posts in the feed but your Profile Page is customisable. In fact, you can style it and theme it any way you like, setting a title and so on, just like a personal blog.

(This has led to two kinds of Tumblr users: those who're in it for the social network, and those who use it as a nice simple interface for hosting their blog)

As an aside, WriteFreely works in a similar way: where you can customise your owr blog as you like it. And adding the ActivityPub plugin to your WordPress blog will probably have the same result. Tumblr, however, is probably the most balanced mix between the two worlds: it has two faces, and people can spend a lot of time interacting with one and never seeing the other.

Now, notice one thing about Tumblr: it's your own Profile Page that you're changing.

Medium doesn't let you change your profile page, but it lets you create a completely different entity called a “Publication”.

What is a Publication?

Publications have customisable homepages that are distinct from the authors' ones. When I published my post about the Fediverse in the Snipette publication, you could see it in several places:

  • My Profile Page, with a note “published in Snipette”
  • The Snipette publication's homepage, with a line “by Badri Sunderarajan”
  • The feeds of people who follow me
  • The feeds of people who follow Snipette

Yes, publications can be “followed” just like users. That's not all: a publication can hold posts from many different users, and a user can post to multiple publications. (That makes it different from Write.as, where a user can have multiple “blogs” but each blog can only be posted to by the user who created it).

Publications can have multiple “authors” and “editors”: Any of the authors can submit a post to the publication, but the editors get to decide whether the posts get accepted or not. Editors can also edit submissions before publishing them.

Editors aren't all-powerful though. Authors can decide to remove an article from a publication (and maybe submit it to another one): in this case, the post will remain on their Profile Page and follower feeds, but will no longer show up in the publication.

Why Publications?

Publications are a very powerful system—because authors can write what they want, but editors get to curate what shows up on their publication, giving it a certain quality standard. What's more, authors may like to wirte on a wide variety of topics while publications focus on only a certain subject.

This way, when authors write, they can submit to the appropriate publications. Interested people can follow these publications, and get focused content on that topic, or in that style, or with those standards, or whatever the speciality of that particular publications happens to be.

What I'm trying to get at is this: publications offer a level of curation: one that's decentralised, community-driven, and—most importantly!—not algorithmic. Your posts are curated by humans.

Publications on the Fediverse?

I could go on (maybe I will, in a future post) but let's get on to how publications could be implemented in the Fediverse. This is where things get vague, so I'm just going to be throwing some ideas around. Feel free to discuss them or throw your own in the comments*.

Another disclaimer: I don't know too much about ActivityPub and Write.as, so I'm going to make some assumptions fgrom what I can figure out, which could turn out to be wrong. Take all my assertions with a pinch of salt.

First, let's see how things work right now. Write.as blogs are first-class “Actors” in ActivityPub-speak, basically the same as an account on Pleroma or Mastodon (and, incidentally, like a “channel” in PeerTube). Your user account doesn't appear anywhere except to log in and manage the blogs: as far as the rest of the Fediverse is concerned, it doesn't exist.

We could of course extend this setup on the backstage, by allowing multiple accounts to add to a blog and show their posts under the same ActivityPub enity. But that's probably not the best solution: ideally authors would somehow also be represented in the post.

A quick-fix solution may be to let authors link their accounts to (say) Mastodon profiles. Posts under the hypothetical @snipette@medium.com coust start with the note “Written by @badrihippo@fosstodon.org” or whoever the author is, and automatically be boosted by @badrihippo's profile on Mastodon.

Write.as could internally store the author, and externally display it as a note while federating.

The problem is: this gives @snipette too much control over the post. They can modify or even remove the post without notifying the author.

One more solution is to implement the whole publication system on top of the existing setup. This is the best solution I've managed to come up with so far, but also the one that'll take the most work.

Here, publications would be ActivityPub entities too just like normal authors (or rather, blogs). But instead of posting new stuff, they'll just reshare (“boost” in Mastodon-speak) other peoples' posts.

Let's say I (or rather, my blog @badrihippo@write.as) writes a post on Snipette (@snipette@medium.com). ActivityPub-wise, the post would be published by @badrihippo and boosted by @snipette.

This makes sense, in a way, because that's more or less what publications are doing: boosting posts.

On the backend, the publication could be managed by multiple editors—who could accept or reject posts, and, ideally, edit them too. Accepted posts could be listed on the user's profile (i.e. “blog”), but redirect to the publications “boosted” version when clicked on, to retain the publication's theming and formatting.

Doing this cross-server would be harder to set up: maybe a combination of OAuth and custom protocols. I'm especially wondering how cross-instance editing could be handled.

Finally, seeing Write.as as it is now, I'm not sure how the transition to work. Right now, users have “blogs” so if “publications” were added on top, it would add yet another layer and could be confusing.

On the other hand, if blogs were “upgraded” to work like publications, there's the question of users suddenly becoming public-facing—something they may not want to do.

Given that, and the fact that any upgrade could cause inconsistencies when different instances run different versions, I wonder if it'd be better to start a new project from scratch. Of course, that would take a lot of effort too.

Anyway, I've outlined what I could come up with at the moment. Now, it's over to you.

Let me introduce myself. I'm Badri, editor of the Snipette publication on Medium. I'm also there on Mastodon, @badrihippo@fosstodon.org. So, let me give you my background on those two subjects of interest: Medium, and the Fediverse.

Medium

I liked Medium's minimalist style, its vision for an alternative to ad-based publishing, and, most of all, the ability for people to run their own Publications, where they edit and curate the work of other authors for display on their site.

As time passed, however, I've noticed that Medium is giving less and less priority to Publications. Rather than working with different editors, each curating their own publications for their own special audiences, Medium is trying to push their own editorial agenda.

Medium has its own editors to curate posts and display them on its front page, and there's less and less visibility to independent Publications on Medium. Rather than a platform for different magazines, it's become more like a magazine itself.

I don't like that idea because firstly, everyone in the world is beholden to the same editors—that is, those working for Medium. True, there's some customisation available, in the sense that you can choose which topics you're interested in and get more post recommendations from those, but I feel Medium is increasingly becoming “just another online magazine”, albeit a slightly algorithmic one.

I don't want that. I don't want Medium's editors to decide most of what I see. I want to be able to #ChooseMyEditor. There are so many different publications on Medium—Chalkboard, Writing Cooperative, Literally Literary, and Interesting Histories are some of the ones I subscribe to—but these days the only publications I seem to find in my stream are Medium, Medium, and Medium.

Of course, as an editor, I also have an interest in other readers seeing my publication more often. Especially when they've specifically decided to “follow” me.

The Fediverse

Like everyone else, I had a Facebook account. But I don't any more.

When the Cambridge Analytica thing broke out, I saw #DeleteFacebook trending everywhere—and I actually did it.

But it's not just about Facebook. I've always been a fan of decentralised technology and federation, and the fact that people can communicate with one another even if they're not registered on the same server or service or provider.

I was there in the days when Gmail supported XMPP, as did Yahoo! Messenger, and Facebook, and just about any other chat service there was. I'm not sure if they all federated, but some of them did, and I had one app to manage all my chats, and everything was great.

But then, my Pidgin suddenly stopped signing into Facebook Messenger. They had, apparently, dropped XMPP support. Google still has it, but they don't federate, and they support hardly any XEPs which makes it practically useless. I mean, I don't even know if someone's sent me a message while I've been offline, because Google doesn't send me that “Chats while you were offline” email any more but just waits until I sign on to Hangouts—which I hear is going to soon disappear too.

To cut a long story short, I want a service that lasts, or at least that lets me switch around without losing all my contacts every time I make a move. That's why I've been trying to convince all my friends to join XMPP (with little success, but I guess patience pays).

And when I heard of Diaspora, I thought wow, here's a solution to the social media problem! The interface was a bit clunky though—no offense, but it kinda wasn't suitable for me. I created an account, forgot about it for a long time, and then came back again when the #DeleteFacebook thing was trending, only to realise I had forgotten my password.

Then I heard that—what is this? There are many other projects too, that can all speak Diaspora-ese and connect to Diaspora! Friendica is where I started off. But the federated timeline is a bit, well, busy. And I didn't have any friends on it to interact with.

That's when I heard of Mastodon.

Mastodon is very instance-focused. It's a thing I've noticed. Each instance is like its own little community, and it's one that I can join in too, at the local timeline, and get to know. I mean, all federated projects seem to have that, but Mastodon actually places emphasis on it.

So, here I am.

Medium on the Fediverse?

So how did I come to write.as?

With Medium's editorial domination on the rise, I was looking around for alternatives. And I heard about this thing called write.as, which is like Medium but it federates!

Oh wow. What more can one need?

Actually, there is more one can need. I run a publication, after all, and write.as is more designed for standalone writers. It's not like Medium. Here, one writer can create many blogs, but one blog can't have many writers.

That would be great if I was just one person sitting and writing, but I'm looking to edit. To collate, curate, and collaborate, and pick out jewels from the stream of writing, and create a group of authors who work together to create a collection that people would like to read.

Or rather, I basically want an alternative where all Snipette authors can get off and come to Medium 😛

So, I'll probably be writing here about my thoughts on how that would work, on how “Publications” can be implemented in a federated way, on how I seem to be liking write.as, and well, I don't know.

Let me start writing to find out.