Click here to skip to this page's main content.

New Feature: You can now embed Open Library books on your website!   Learn More
Last edited by Mek
October 21, 2009 | History

Developer Center


Welcome to the developer hub of Open Library. This page links you to all of the information and external resources that will help you get started working with the Open Library system.

Open Library is powered by Infogami, a clean, simple wiki application framework built on web.py. Unlike other wikis, Infogami has the flexibility to handle different classes of data, including structured data. That makes it the perfect platform for Open Library.

There are essentially two levels of developer participation on Open Library. Some developers may want to install their own version of the software to customize it for their own application. Others may want to build applications that utilize Open Library APIs. Please see the API section of our site for further info on working with APIs (http://upstream.openlibrary.org/developers/docs).

Installing your own copy of Open Library

Actual applications (like Open Library) are written by extending Infogami through two layers: plugins and templates. Plugins are Python modules that get loaded into Infogami through a special API. (See an overview of Infogami plugins.) They are invoked by submitting HTTP requests to the application, either HTML form posts or direct GET requests. Plugins can use any library or application code that they wish, and they create Python objects to represent results, that then get expanded to HTML by templates. Templates are a mixture of HTML text and user-written code, approximately in the spirit of PHP templates. The user-written code is in a special-purpose scripting language that is approximately a Python subset, which runs in a hopefully-secure server-side interpreter (embedded in the Python app) that has limited access to system functions and resources.

Working with the Infogami application

Infogami facilitates the creation of dynamic HTML templates and macros. This flexible environment enables users to create, share and build collaborative interfaces.

With Open Library in particular, we are focused on building a productive and vital community focused on the discovery of books, but the software can be customized for other uses. We have compiled a tutorial to help you get started. You'll learn how to develop for Infogami, including building new templates for displaying your own data, running your own copy, and developing new features and plugins.

The Open Library site also uses an easy-to learn text to HTML formatting language for web writers, known as Markdown by John Gruber. See the syntax page to get started.

Working with the Internet Archive Bookreader

Open Library's default book reader interface is the Internet Archive Book Reader, an application that makes the collection of books scanned by the Internet Archive readily available in an easy-to-use on-screen format. Just like Infogami, the code is open source and available for download and modification by anyone who wants to use it. You can read more about how to get started with the Book Reader.

Please read our primer on Book Reader URLs to understand how the Internet Archive Book Reader handles URLs.

History Created October 21, 2009 · 63 revisions

June 26, 2018 Edited by Mek Edited without comment.
August 7, 2017 Edited by JeffKaplan Edited without comment.
November 29, 2015 Edited by Jessamyn West moved infogami stuff to infogami page
November 29, 2015 Edited by Jessamyn West Edited without comment.
October 21, 2009 Created by George New page.