The Design Philosophy of Porifera

Duncan Robertson, 2022-12-20

"If I finish a book a week, I will read only a few thousand books in my lifetime, about a tenth of a percent of the contents of the greatest libraries of our time. The trick is to know which books to read."

-Carl Sagan

This quote is even more relevant when reading online content. Reading 0.1% of all the blog posts, videos, photographs, news articles, tweets, toots and rants in existence is an absurd fantasy. Just on Youtube alone around 400 hours of video are uploaded each minute (2016 data). But the solution remains the same, the trick is to know which books to read. Sagan said 'trick' because it's not simple or easy. The reality is, with the unprecedented fire-hose of information we are exposed to every day we need tools to filter the content we want to read from the rest. This is the guiding principle of Porifera

Back to Basics

Porifera uses the RSS protocol, which is old for an internet protocol. It has clear advantages though, which are the reason that it's still in widespread use. It's federated, which simply means that like email, you can have your content on any server you want and it still works for other people on other servers. It's very simple, which means it's cheap and easy to set up and use. But the biggest advantage is that it works everywhere. With an RSS reader you can read all the articles of most major news organisations, you can follow people on mastodon, you can subscribe to a subreddit. It is compatible with almost all blogging platforms and almost all podcasting providers, and supported by most governments on websites where they have regular announcements. You can (relatively) easily set up your own RSS servers and put whatever you want on there. It's essentially the de-facto content distribution protocol of the internet. All from a single application, with no advertising and no user domestication.

Filtering

I filter out the names of famous people that I think get more coverage than they deserve, and sports-related content because I am not a sports person. What you filter will likely be different. One thing that many RSS readers lack is the ability to filter keywords in content. On Porifera this is set up with real language support as well as regular expressions. Not only can it be used for filtering out unwanted content, but to highlight and categorise content. Everything is designed to reduce the number of headlines you have to skim before you find something worth your time.

Curation

Filtering will never be enough, not with the amount of data being produced. The only thing that will really get your feed down to manageable levels is curation. Usually when people talk about curation it means some gatekeeper who decides what is or is not relevant for a large number of users. Curation in Porifera is built on the principles of liquid democracy – everyone can curate anything they want, and anyone can subscribe to their collection or not. Users can curate the curated collections of others, forming a web of content recommendations. The idea is to reduce the amount of time spent reading through irrelevant content by sharing the work amongst a group.

Say I am part of a book club. I might recommend everyone subscribe to a specific blogger who has good reviews. Then someone else suggests another blogger who they think is better. Then a third person suggests a mastodon or twitter user that is all about recommending new books. The usual expectation is that we will all subscribe to all three. For a lot of people this will be too much information and they will stop checking the feeds. Even the ones who do check them will have to read through entries that it is obvious no one in the group would be interested in. In a large group the same entry might get read dozens or even hundreds of times. But we all know what kinds of things the club is looking for. With Porifera I can subscribe to my blogger, the second member to his blogger, and the third to his mastodon user, and we can all republish what we think is relevant to the group. This can reduce dozens of posts down to just one or two per source. The other members then simply subscribe to the three internal feeds and get a short manageable list of books recommended to them, all of which are matched to the interests of the group.

This can work for groups of any size and with any kind of interests. As long as the people know what the group as a whole is interested in and what they are not. Groups don't need to be carefully organised or know each other however, they can grow in an organic, ad hoc way. Simply share the things you curate and keep an eye out for people who produce content lists that work for you, and the network spreads.

Pull Not Push

The internet was originally designed with data being pulled, but as it was commercialised, big businesses and governments have built more and more systems which push the data around. Pulling is when you go to a website for example, and look at a static page, like this one. The server this is on sent you the page because you asked for it. Many modern communication and content clients simply connect to a server and keep the connection open, then the server sends or pushes messages to the client. In a more general, less technical sense, many platforms also push content to the user. A user pulls up their Facebook or Youtube page, and an algorithm on the server, which has been collecting data on them for some time, decides what they should look at next. The difference is that push data allows advertising and propaganda. It also automatically results in censorship, whether those in control of the system want it or not. In short, pushing supports behaviour modification.

RSS is a pull protocol. The server has a bunch of lists of content which it changes when they are updated by the content creator or curator. You will never get sent anything from those lists until you request it. As a user the difference might not be obvious - if you subscribe to something on Porifera the client automatically requests new updates from the servers periodically, but the results are important. You choose to trust the human beings responsible for those updates. If at any time they breach that trust you can simply hit unsubscribe and you will never hear from them again. Publishers and servers don't know who you are (other than your IP address, but you can hide that with a VPN or Tor), and they cant send you any unsolicited messages of any kind unless you subscribe to them.

Discovery and Recommendations

Currently the only way to share and spread your published and curated feeds is word of mouth (or word of internet). You can tell people about them yourself. There is no 'popular' list. There is no list at all. There is no suggestion algorithm and no trending items. This is on purpose. It's not that we never want to have a way for users to discover content. Quite the opposite. We feel that doing content discovery right is so important that it's preferable to not do it at all rather than risk getting it wrong. Any system that results in something that can be manipulated by advertising agencies and political groups is not acceptable. Any system that relies on collecting massive amounts of data on our users is not acceptable. For now the best solution we can find is word of mouth. We will keep on working on it. For now the entire system is totally anonymous. You can even sign up with a fake email account like fake@fake.fake (at time of writing this one is still available). You probably shouldn't though, because if you use a fake email and then lose your password you will never get that account back. Password recovery is only available by email. If you subscribe to someone's feed, they don't know you did. You can never find out how many people are reading your feeds. It's basically just not about you, its about the content.

Motivations

You might be asking yourself, what is the motivation of the team behind this? What is the business plan? How do they plan to make money? If not, you should be. That is the first thing you should always be asking when someone offers you something free on the internet. The answer here is quite simple. We want this for ourselves. There is no business plan, there is no monetisation strategy. The benefits could be described maybe as a 'chronotisation' strategy, a strategy to earn more time. The hope is that we will all save a lot of time otherwise spent reading nonsense on the internet. It costs us nothing to offer the service to others (unless it really takes off, then there will be some minimal hosting costs). But every person that joins the network will curate a bit of the internet for us, potentially saving us time. Time is far more precious than money.

Conclusion: An Apology

This is a beta, it's not finished. But even worse, we are not that competent. If you are expecting something polished, optimised and professional, well we hope to get there one day. The client is built on a game engine, for reasons that would require another entire essay to explain. This makes it rather large and heavy for what it does. In addition the auto-update system is a bit janky, it will download basically the whole client again every time we make changes. You can actually get a version of it that doesn't auto update at all, but I recommend you wait for it to get out of beta first. If the worst comes to the worst, the whole thing is open source so you can always just change it to suit your needs.