Wikipedia is the most popular online encyclopedia, and millions of people rely on it every day to provide trustworthy information on a wide variety of topics. It is not well known but there have been numerous scandals which put this trust into question. For example in 2012, a trustee of the Wikimedia Foundation UK used his position to place his PR client on Wikipedia's front page 17 times within a month. Wikipedia founder Jimmy Wales made extensive edits to the article about himself, removing mentions of co-founder Larry Sanger. In 2007, a prolific editor who claimed to be a graduate professor and was recruited by Wikipedia staff to the Arbitration Committee was revealed to be a 24-year-old college dropout. These are only a few examples, journalist Helen Buyniski has collected much more information about the the rot in Wikipedia.
These problems have been going on for a very long time, and there is no indication that Wikipedia is willing to solve them. There have also been numerous attempts to create new, centralized Wikipedia alternatives but all of them failed to gain critical mass. The fact is that we can't rely on any single website to hold the whole world's knowledge, because it can be corrupted sooner or later. The only solution is a distributed architecture, with many smaller websites connecting with each other and sharing information. This is where ActivityPub comes in, the protocol used by Mastodon, Lemmy, Peertube and many other federated social media projects.
I have worked on Lemmy for the past four years, bringing it from a prototype to a fully functional Reddit alternative. I wrote the entire federation code and became very familiar with the protocol. I realized that the same technology easily be used to create a federated encyclopedia. As no one else took up such a project, I finally decided to do it on my own and create Ibis. Thanks to my previous experience with the tech stack and the ActivityPub library I created, I was able to complete a proof of concept in a relatively short time of four months. Just like Lemmy, Ibis is built on a stack of PostgreSQL and Rust, in this case with a frontend written in Rust Webassembly. This means it can efficiently run on low-powered servers or scale to high user numbers.
The proof of concept includes all the necessary core features. Users can create, read and edit articles. Each article has an edit history showing the individual changes. Edits are stored as diffs which means that conflicts can be resolved through merges, similar to git. Most importantly all of this is fully federated, so it is possible to synchronize articles between instances, and interact with remote articles as if they were on the local website. You can see it in action on this very website, or register an account on open.ibis.wiki to start editing (no email verification necessary). All articles and edits are automatically synchronized between instances. You can also deploy Ibis on your own server by following the Setup_Instructions.
Ibis is still in a very early stage, but it has the potential to completely change the way online encyclopedias work. Instead of individual, centralized websites there will be an interconnected network of encyclopedias. This means the same topic can be treated in completely different ways. For example geology.wiki/article/Mountain
may be completely different different from poetry.wiki/article/Mountain
. There can be Ibis instances strictly focused on a particular topic with a high quality standard, and others covering many areas in layman's terms. Others may document fictional universes from television series or videogames. If one instance is badly moderated or presents manipulated information, an alternative can easily be created. Yet all of them will be interconnected, and users can read and edit without leaving their home website.
However Ibis is still in a very early stage of development. It is missing countless important features, such as user profile settings, discussions, localization, moderation tools, and so on. I have already worked on the project for four months, and estimate that it would take at least another year to make it ready for production. I won't be able to do all of this work on my own for free. Additionally my daugher will be born within a few weeks, so there won't be any time for programming. That's why I hope that other developers will help by contributing to the project. In particular the frontend is primitive and can use improvements, or even a completely new frontend in a language like Javascript. You can use the following channels for communication:
If you don't have the time or skill to contribute personally, please consider making a donation. This signals that it is worth investing more of my time into the project. I am also interested to know about organizations which may provide grants for working on Ibis.
On a side note, ActivityPub federation can also be added to existing wiki platforms, with which I am willing to assist.
Felix "nutomic" Ableitner, 13. February 2024