A New Medium for Your Messages
mai ishikawa sutton and mauve
Before the invention of the printing press, publishing was an intricate process that involved painstaking labor, specialized skills, and significant resources. With such a high barrier to entry, the ability to broadcast ideas and information was concentrated in the hands of the elite few. With the advent of the printing press, however, publishing became dramatically more accessible. Movable type unleashed an intellectual revolution that made it possible for people outside of dominant institutions to share new stories and dialogues unlike ever before.
Now we are in a strange moment. Despite all the ways the internet has made it increasingly easy to publish, the gatekeepers of the spaces where we connect and share ideas grow ever more insidiously powerful and imposing. The predominant platforms are heavily surveilled. They are dubiously, or even severely, moderated by opaque algorithms. And they are fundamentally designed to trap users in a cycle of addiction and dependency, capturing attention and data in such a way that prevents them from being able to leave without sacrificing all their posts and networks.
There are many of us who want things to be different — to circumvent as many of the choke points that prevent people from having meaningful control over the ways they communicate and share digitally. We feel that to do this effectively we need to flip the tired script of tech development and “innovation” completely on its head; to build publication tools not from a place of competitive control and market domination, but from a deep intention to facilitate community power, individual agency, and technological interoperability. In other words, to build a digital printing press that democratizes publishing.
Distributed.Press came out of discussions at Decentralized Web (DWeb) Camp in 2019, where we — Benedict Lau, Udit Vira, and mai ishikawa sutton — were co-organizers. We had first found each other through our respective involvement with community networks in Toronto and Oakland; at DWeb Camp, we lamented the fact that we were using Medium, a corporate publishing platform, to publish reflections and updates about the event. In late 2019, we began meeting weekly to discuss what building meaningful alternatives might look like.
The first thing we did was come up with a shared set of values1 that would guide this project. We did this before anything else to lay a groundwork of trust built on shared purpose. Our values include practicing solidarity, equity, and accountability throughout our work as well as to stand for inclusion, sustainability, and the commons.
We knew that we wanted to build a publishing tool for the decentralized web, but we had no idea how we should go about it. We didn’t want to replicate something that already existed, or build something that no one actually needed. The three of us didn’t want to assume we had the answers. So we decided to interview people and ask them. In 2020, as the pandemic took hold around the world, we reached out and talked to allies who worked on DWeb projects, digital publishing, and some intersection of these areas.
The general consensus from those interviews was that Yes, we should go ahead with this. . .but the project must strive to do two things:
1) Enable people to not only publish to one or two DWeb protocols but also be compatible and interoperable with any number of protocols that allow the storage and retrieval of content through distributed means.
2) Collaborate with values-aligned projects in order to integrate differing approaches to decentralized publishing and build tools that communities want to use. Key to this is to test the tools with people who already publish their works online.
And that was how we came up with Distributed.Press and COMPOST — the former a project to build beginner-friendly, open source publishing tools for the World Wide Web and DWeb, and the latter a creative lab and testing ground to try out those technologies. As sister projects, they would complement and influence each other as they worked in tandem towards a healthier, more distributed digital commons.
Digital Commoning Is a Verb
What’s special about this issue of COMPOST is that we used the Sutty Content Management System (CMS) to publish it. A CMS is like Wordpress or Medium, a platform that enables you to create and publish websites. The Sutty CMS was developed by Sutty,2 a worker co-operative based in Buenos Aires that works closely with activists, collectives, and human rights organizations across Latin America. Their CMS enables people to publish sites using templates and customizable graphical user interfaces for authoring posts.
And how did Hypha and Sutty find each other? It was thanks to COMPOST! When Sutty came across our first issue they reached out wanting to collaborate. They told us that they had a platform that generated static Jekyll websites, and that they were interested in working with us to integrate distributed publishing on their CMS.
Fast forward two years later — Hypha and Sutty are now working closely to create a beginner-friendly platform for anyone to publish their websites to the DWeb. Given that we each work in different languages (English and Spanish, respectively) and come from different work cultures, it took some time for us to get into the swing of things. But it’s been more than worthwhile — it’s been incredibly fun and rewarding to work alongside each other to envision and manifest the tools we want.
We believe that for the web to be meaningfully decentralized there must be a concerted effort to ensure that the creators and maintainers of its tools are not primarily English-speaking, or from “global North” countries. As a Spanish-first platform, Sutty integrating Distributed.Press on its platform is an important step towards this goal. We aim to work with partners from other regions and languages to develop DWeb publishing tools that meet a wide-range of needs and desires.
But for now, our collaboration with Sutty, and this issue of COMPOST, is made possible through a partnership with Filecoin Foundation for the Decentralized Web (FFDW).3 FFDW is a key supporter of projects across the DWeb ecosystem. Instead of merely providing funding, they support their project partners in collaborating and sharing information and resources with each other.
We believe in building free and open network technologies through shared principles.4 Our collaboration with Sutty and FFDW embodies the kind of close-knit interorganizational support that’s necessary to build and steward the digital commons. By grounding the development of this project in a culture and practice of solidarity, cooperation, and trust, we can ensure that the process results in technologies that reflect these values. COMPOST in particular is an opportunity for us to embed values of play, curiosity, and fair labor into the technologies that we build.
Distributing Power with Distributed Publishing
Now we’re going to get a bit more technical in this section.
Last month we released a new version of Distributed Press5 which was rewritten from scratch to make it easier for people to deploy and grow our set of supported protocols. We’ve updated our protocol support to make use of the latest version of IPFS (InterPlanetary File System) and Holepunch (formerly Hypercore Protocol, formerly Dat). This has dramatically improved publishing times as well as the overall speed at which people can load websites from the network.
We have also added a new built-in DNS server (the thing that resolves websites like example.com into information a computer on the internet you can connect to) that lets publishers have nice URLs by pointing their website at Distributed.Press. We have also streamlined the deployment of Distributed.Press so that people wanting to set up their own instance can make use of any computer they have access to and run our Ansible scripts to set everything up.
Our next milestone will involve bringing a new social layer to the distributed web by combining the ActivityPub protocol6 behind services like Mastodon and PeerTube with peer-to-peer (p2p) static site publishing. As before, we’re planning on using what’s already out there and connecting to existing communities.
ActivityPub and the Fediverse7 is widespread and there are already large communities of people publishing in decentralized networks across many different implementations. We’ll be enabling web sites published with Distributed.Press to participate by exposing their data in a format that is compatible with other Fediverse instances. We will also be enabling website publishers to receive comments on their posts from the Fediverse and to create responses to each other’s posts through the same mechanism. Longer term, we hope to experiment with not needing a server at all with Fediverse clients that can read people’s data directly from peer-to-peer protocols and send data to each other without needing an always-online server as an intermediary.
We’re actively working on integrating new peer-to-peer protocols such as BitTorrent. BitTorrent clients have been around for many years, and soon, websites published with Distributed.Press will be available to download there too.
We’re also exploring other protocols like Earthstar, which are using more modern learnings for how to transmit peer-to-peer data quickly and safely. Each protocol gives us more reach and more flexibility with different tradeoffs that work best in various scenarios. You can read more about the differences on our P2P Primer series.8 By making them available in a unified but modular interface, we can leave more room for communities to experiment with what works best for them.
Distributed.Press is more powerful and flexible than ever, and is ready for people to experiment with and deploy for their own communities.
Publish to the DWeb!
So want to try publishing to the DWeb?? Here are a few ways to get started:
Sutty CMS — The beginner-friendly way to publish to the DWeb. All you need to do is build a website on Sutty and turn on the “Publish to DWeb” toggle in configurations. Learn how to do that on our documentation page on the World Wide Web: https://docs.distributed.press/deployment/sutty.
Github Pages — If you already deploy your site to GitHub pages or any other static site hosting service, then the GitHub action will allow you to also deploy to the DWeb by adding just a few additional lines of configuration to your code repository. For instructions, check out our docs on the World Wide Web: https://docs.distributed.press/deployment/github-actions.
Self-Hosting — Distributed.Press uses Ansible (https://www.ansible.com/) to make setting up your own Distributed.Press instance fast and simple. All the instructions are here on our docs page on the World Wide Web: https://docs.distributed.press/self-hosting.
Once you’ve published your site, there’re a few ways for folks to access it. The easiest way is to still use the HTTPS version of the site over the web, but you can now also use standard gateways for IPFS and Holepunch.
At Hypha, we’re running an IPFS gateway (https://ipfs.hypha.coop) and a Holepunch gateway (https://hyper.hypha.coop). However, you can use any gateway for any published website since they all load from the same peer-to-peer networks. You can even set up gateways to run on your personal computer and browse sites without needing the internet.
You can also access sites via web browsers that have first class support for peer-to-peer protocols. For IPFS loading, there's the Brave Browser9 and Opera10. And for a mix of all our supported protocols, there's the Agregore Browser (https://agregore.mauve.moe), which in addition to loading many protocols, also enables peer-to-peer web applications to publish back to the network without a third-party server or an internet connection.
We would love feedback!
As we continue to build Distributed.Press, please tell us how our tools are working, or not working as you hope or expect.
File a bug on our Github issue tracker: https://github.com/hyphacoop/api.distributed.press/issues
Thank you so much for supporting our projects and helping us make DWeb publishing better for everyone!
Distributed.Press is made possible through generous support from Filecoin Foundation for the Decentralized Web, Grant for the Web, and our supporters on Open Collective.
- https://distributed.press/values/ ↩︎︎
- https://sutty.nl ↩︎︎
- https://ffdweb.org ↩︎︎
- https://getdweb.net/principles ↩︎︎
- https://hypha.coop/dripline/distributed-press-v1-announcement ↩︎︎
- https://activitypub.rocks ↩︎︎
- https://www.fediverse.to ↩︎︎
- https://hypha.coop/dripline/p2p-primer-part-1 ↩︎︎
- https://brave.com/ipfs-support ↩︎︎
- https://blogs.opera.com/tips-and-tricks/2021/02/opera-crypto-files-for-keeps-ipfs-unstoppable-domains ↩︎︎