One webpage for every book ever published!
Python HTML CSS JavaScript XSLT Shell Other
Failed to load latest commit information.
conf Clean up whitespace Sep 2, 2016
couchapps removing trailing whitespace from html and py files Oct 21, 2016
docs removing trailing whitespace from html and py files Oct 21, 2016
openlibrary Correct dict key defense in analytics.html Oct 25, 2016
provisioning tweaks to bootstrap script. Jun 20, 2014
scripts removing trailing whitespace from html and py files Oct 21, 2016
static Simplify the Internet Archive top black stripe Oct 25, 2016
tests/integration Change list of affiliates Oct 15, 2016
vendor removing trailing whitespace from html and py files Oct 21, 2016
.gitignore Add .cache to .gitignore Sep 2, 2016
.gitmodules Moved infogami and wmd to internetarchive. Jul 1, 2011
.python-version Add .python-version (can be used by pyenv) Jul 26, 2016
.travis.yml tidy up commented out legacy commands Jan 18, 2016
LICENSE add LICENSE Jul 16, 2007
Makefile move core tests to top level test dir Oct 2, 2016 Add troubleshooting section to Quickstart Sep 30, 2016 adding overview section Oct 21, 2016
Vagrantfile mount OL code at /openlibray on vm. Nov 25, 2014
config Make the support structure a little more robust Jun 21, 2011
infogami Reorganized the repo to move all python code into openlibrary module. Jul 8, 2009
requirements.txt importlib is not required for Python 2.7 Jun 19, 2014 Removed obsolete code. Jan 6, 2015 fix typo in documentation Feb 6, 2013
test_requirements.txt Added mockcache and sixpack_client to test_requirements.txt Jun 19, 2014

Open Library

Open Library ( is an open, editable library catalog, building towards a web page for every book ever published.

Build Status

Table of Contents


Open Library is an effort started in 2006 to create "one web page for every book ever published". It provides access to many public domain and out-of-print books, which can be read online.


See the for instructions on setting up a developer VM.

You can find more info digging into this old (and in part outdated) document here:

Code Organization

  • openlibrary/core - core openlibrary functionality, imported and used by www
  • openlibrary/plugins - other models, controllers, and view helpers
  • openlibrary/views - views for rendering web pages
  • openlibrary/templates - all the templates used in the website
  • openlibrary/macros - macros are like templates, but can be called from wikitext

Learn the Stack

The Frontend

The Backend

OpenLibrary is developed on top of the Infogami wiki system, which is itself built on top of the Python web framework and the Infobase database framework.

Once you've read the overview of OpenLibrary Backend technologies, it's highly encouraged you read the developer primer which explains how to use Infogami (and its database, Infobase):

The Service Architecture


We'd love your help! Choose a bug from our project board:


All source code published here is available under the terms of the GNU Affero General Public License, version 3. Please see for more information.