Skip to main content

BookBrainz is an online encyclopaedia which contains information about published literature. Our aim is to collect and store data about every book, magazine, journal or other publication ever written.

BookBrainz is developed by just a small team of volunteers, unlike the MusicBrainz encyclopaedia on which it is based. Nevertheless, we are committed to making BookBrainz the definitive source of publication metadata. We hope to attract many contributors, who will be able to use their knowledge of literature to expand the database through our website. If you think you can help, become a BookBrainz editor!

Our Story

BookBrainz was conceived in 2011, during a discussion in the MusicBrainz IRC channel. It was initially championed by Oliver Charles who was a core MusicBrainz developer at the time, and the code was written in Haskell. While a number of people contributed to this early version of BookBrainz, it lost momentum after a couple of years.

Another MusicBrainz community member, Sean Burke, who had been involved with BookBrainz from the beginning, rekindled the project in May 2014, starting from scratch using the node.js framework. Although there was an initial burst of activity and good progress made on the site design, after a month or so, Sean didn’t have time to maintain the initial level of activity.

Around the time of the annual MusicBrainz summit in 2014, a third MusicBrainz community member, Ben Ockmore, started to take an interest in the project. New discussions were held in the BookBrainz IRC channel, and progress was made on a new node.js site and webservice. After a couple of months, the decision was made to switch from node.js to Python for the webservice, and progress has continued steadily since then. Recently, in order to reduce duplication of code, it was decided to once again use node.js for all code, and work is ongoing to achieve this.

From the beginning, BookBrainz was closely tied with the New Edit System (NES) for MusicBrainz, which was designed by Oliver to introduce a Git-style framework for managing contributions to MusicBrainz. Both projects were initially written in Haskell, and BookBrainz used an adapted version of NES as its edit system. The NES has also been the basis for the edit system in the current iteration of BookBrainz.

How We Operate

The core components of BookBrainz are the site, the webservice and the database. All of these components are running on MetaBrainz's Sakura server, which also runs CritiqueBrainz.

BookBrainz relies on contributions from editors to expand the knowledge contained in the database. Editors can add new data to the site, fix any errors in the existing information, and create links between pieces of information. To acknowledge this vital input, we make our data freely available to everyone, for any use. While we don’t create regular database dumps at this early stage of the project, you’re welcome to browse the site or use the webservice to access data.