We need to finish building the Fediverse Part II: Patchwork

We need to finish building the Fediverse Part II: Patchwork
Multicoloured hot air baloons rising into a blue sky
The blog post “We need to finish building the Fediverse” set out ten building blocks to transform the Fediverse.

Evan Prodromou added an extra one - making the Fediverse more social, so it’s easy to invite your friends. We’re starting work on a lot of these through Patchwork. Our initial goal is to make contributions to:

    • Trust & Safety ✅
    • Anti-Spam ✅
    • Safe Spaces ✅
    • Full Federation ✅
    • Interoperability ✅
    • Portable Identity ✅
    • Organisation Onboarding ✅
    • Channels ✅
We’ll be building Patchwork in public over the summer, updated on this blog. Our first release will be at FediForum with updates over the rest of the year. What we’re making is just a start: our goal is to create new spaces where Fedicreativity can be unleashed.

Making space for making spaces.

Patchwork isn’t a new type of server software. It isn’t a fork, and it isn’t an app. What we’re doing is opening up a space for innovation between ActivityPub server software and the many apps available.  Starting with Mastodon, then going on to other microblogging servers and all the other platforms in the Fediverse. 

Instead of competing with the installed base of software and apps, we’re collaborating with both. 

We don’t have all the answers. We’re doing lots of things, to demonstrate what’s possible, bring organisations onboard to the Fediverse and act as the starting point for more innovation. Without firing off pull requests to overworked teams or solo developers, or the difficulty of launching new servers or apps into an already crowded space.

We start with Fediverse Servers and ActivityPub. That’s our base layer.

We aim to work with all servers, but we’re starting with Mastodon. Mastodon is where most of the installed base is, it’s what we’ve worked on at Newsmast, and we have an experienced Ruby on Rails team. 

On top of this base layer we’re adding four new layers, all running on ActivityPub.

Patches. 

Patches are packages of code which plug-in to a Fediverse platform.

Patches modify the behaviour of the underlying platform code, the API and the basic web UI, enabling new features to be created. As we’re starting with Mastodon, our first patches are Ruby Gems. We’ll then work with platform developers to create Patches for other code bases.

Some Gems do things themselves - like a Post Gem to give servers the option to offer Long Posts, Local Only Posts, Save as Draft or Schedule.

Most Gems act as connections to Patchwork Hubs, which provide extra services for the server, without the need for core source code modifications. 

Each Patch comes with a web UI modification, so whatever is on offer works out of the box. We’ll enable app developers to pick up on the changes too, through Patchwork Hooks.

Hubs. 

The Fediverse is built around data protection and privacy. This means that it mostly runs on server software. There’s a healthy skepticism about allowing third-party, cloud-based service access to the server. This approach has taken the Fediverse a long way, but it’s now starting to hold us back. Renaud Chaput, CTO of Mastodon, wrote a seminal paper last summer on Trust and Safety, setting out an architecture to bring trusted third parties into the Fediverse. IFTAS has also shown the way with their FediCheck denylist service, and the CCS service being developed for CSAM. These are things a server can’t do locally by itself. We need to trust third parties to provide these services.

This is the heart of Patchwork: trusted Hubs doing useful things, enabling us to share the load and be more innovative.

Content Moderation is one example. Anti-spam is another. Hubs can also be used to do new things, like create Communities and Channels, or share public lists. 

To start with we’ll run these Patchwork Hubs within the Mastodon-based Fediverse. Going forward they should all be available to any Fediverse platform. We’ll also be introducing a Plug-in Hub, where anyone can offer a plug-in as part of the Patchwork space.

Our early hubs are demonstrations of what can be done. Opening a space for bigger solutions.

Channels. 

Hashtags have helped fuel the growth of the Fediverse. Along with Groups and servers based around interests, they’ve enabled communities to come together. Brilliant as hashtags are, on other platforms like Bluesky and Farcaster, we’re seeing new ways for communities to form, share and interact. Call them Feeds, Channels or Communities, what these have in common are curation, moderation, easy posting and simple discovery.

At Newsmast we’ve had two versions of this, one built with a dedicated server and app, the other creating boost accounts which anyone can follow. Neither really matches what’s on offer on other platforms.

Learning from this, Patchwork is bringing Channels to the Fediverse through a Channel Hub.

Server admins and users can make Communities on the Channel Hub, which automatically turns them into channels - micro-server timelines which any Fediverse app or user can access. Linked up to a Discovery Hub where servers, apps and users can easily search, browse and view these channels. Offering a way for Fediverse apps to easily navigate to any channel, ideally using /channel inline.

Hooks. 

Patchwork is being built for the myriad of apps already in the Fediverse to engage with.

Hooks enable Fediverse apps to access the new Patchwork space - patches, hubs, and channels - with a few small changes to their UI.

We’ll create a demo app ourselves to show what’s possible, but our aim isn’t for this to be central to Patchwork in the way that Bluesky.social is for Bluesky or Warpcast is for Farcaster.

Working together.

So that’s Patchwork. Not a server. Not an app. Not a fork. An innovative space between servers and apps. Making space for making spaces.

Patches open the door to the space. Hubs populate it. Channels deliver content in refreshing ways. And Hooks give any app access to this space. Follow this blog to see how the build goes. We’d love to join up with anyone who is interested in developing this with us. To finish building the Fediverse it’s going to take all of us working together.