{"id":13472099,"url":"https://github.com/internetarchive/openlibrary","last_synced_at":"2026-02-13T00:12:18.371Z","repository":{"id":446953,"uuid":"69609","full_name":"internetarchive/openlibrary","owner":"internetarchive","description":"One webpage for every book ever published!","archived":false,"fork":false,"pushed_at":"2025-05-09T16:15:53.000Z","size":97817,"stargazers_count":5628,"open_issues_count":932,"forks_count":1543,"subscribers_count":173,"default_branch":"master","last_synced_at":"2025-05-12T13:21:16.792Z","etag":null,"topics":["books","hacktoberfest","internet-archive","library-catalogue","open-source"],"latest_commit_sha":null,"homepage":"https://openlibrary.org","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"agpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/internetarchive.png","metadata":{"files":{"readme":"Readme.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null},"funding":{"custom":["https://archive.org/donate"]}},"created_at":"2008-10-30T05:20:14.000Z","updated_at":"2025-05-12T13:00:11.000Z","dependencies_parsed_at":"2023-10-14T16:39:29.415Z","dependency_job_id":"93534f93-f74d-451f-8599-365c3d7f56d9","html_url":"https://github.com/internetarchive/openlibrary","commit_stats":{"total_commits":12978,"total_committers":350,"mean_commits":37.08,"dds":0.8798736323008167,"last_synced_commit":"4871a56fea27916cf3241a29ca57d75f9f3033b9"},"previous_names":[],"tags_count":199,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/internetarchive%2Fopenlibrary","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/internetarchive%2Fopenlibrary/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/internetarchive%2Fopenlibrary/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/internetarchive%2Fopenlibrary/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/internetarchive","download_url":"https://codeload.github.com/internetarchive/openlibrary/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":253745198,"owners_count":21957319,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["books","hacktoberfest","internet-archive","library-catalogue","open-source"],"created_at":"2024-07-31T16:00:51.902Z","updated_at":"2026-02-13T00:12:18.365Z","avatar_url":"https://github.com/internetarchive.png","language":"Python","readme":"# Open Library\n🌍 Read this in other languages: [简体中文](Readme_chinese.md) | [Español](Readme_es.md) | [Tiếng Việt](Readme_vn.md)\n\n\n![Python Build](https://github.com/internetarchive/openlibrary/actions/workflows/python_tests.yml/badge.svg)\n![JS Build](https://github.com/internetarchive/openlibrary/actions/workflows/javascript_tests.yml/badge.svg)\n[![Join the chat at https://gitter.im/theopenlibrary/Lobby](https://badges.gitter.im/theopenlibrary/Lobby.svg)](https://gitter.im/theopenlibrary/Lobby?utm_source=badge\u0026utm_medium=badge\u0026utm_campaign=pr-badge\u0026utm_content=badge)\n[![contributors](https://img.shields.io/github/contributors/internetarchive/openlibrary.svg)](https://github.com/internetarchive/openlibrary/graphs/contributors)\n\n[Open Library](https://openlibrary.org) is an open, editable library catalog, building towards a web page for every book ever published.\n\nAre you looking to get started? [This is the guide](https://github.com/internetarchive/openlibrary/blob/master/CONTRIBUTING.md) you are looking for. You may wish to learn more about [Google Summer of Code (GSoC)?](https://github.com/internetarchive/openlibrary/wiki/Google-Summer-of-Code) or [Hacktoberfest](https://github.com/internetarchive/openlibrary/wiki/Hacktoberfest).\n\n## Table of Contents\n   - [Overview](#overview)\n   - [Installation](#installation)\n   - [Code Organization](#code-organization)\n   - [Architecture](#architecture)\n     - [The Frontend](https://github.com/internetarchive/openlibrary/wiki/Frontend-Guide)\n     - [The Backend](#the-backend)\n     - [The Service Architecture](https://github.com/internetarchive/openlibrary/wiki/Production-Service-Architecture)\n   - [Developer's Guide](#developers-guide)\n   - [Running Tests](#running-tests)\n   - [Contributing](#contributing)\n   - [Public APIs](https://openlibrary.org/developers/api)\n   - [FAQs](https://openlibrary.org/help/faq)\n\n## Overview\n\nOpen 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.\n\nHere's a quick public tour of Open Library to get you familiar with the service and its offerings (10min).\n\n[![archive org_embed_openlibrary-tour-2020 (1)](https://user-images.githubusercontent.com/978325/91348906-55940d00-e799-11ea-83b9-17cd4d99642b.png)](https://archive.org/embed/openlibrary-tour-2020/openlibrary.ogv)\n\n- [Learn more about the Open Library project](https://openlibrary.org/about)\n- [The Vision (Dream) of OpenLibrary](https://openlibrary.org/about/vision)\n- [Visit the Blog](https://blog.openlibrary.org)\n\n## Installation\n\nRun `docker compose up` and visit http://localhost:8080\n\nNeed more details? Checkout the [Docker instructions](https://github.com/internetarchive/openlibrary/blob/master/docker/README.md)\nor [video tutorial](https://archive.org/embed/openlibrary-developer-docs/openlibrary-docker-set-up.mp4).\n\n\n### Developer's Guide\n\nYou can also find more information regarding Developer Documentation for Open Library in the Open Library [Wiki](https://github.com/internetarchive/openlibrary/wiki/).\n\n## Code Organization\n\n* [*openlibrary/core*](/openlibrary/core) - core openlibrary functionality, imported and used by www\n* [*openlibrary/plugins*](/openlibrary/plugins) - other models, controllers, and view helpers\n* [*openlibrary/views*](/openlibrary/views) - views for rendering web pages\n* [*openlibrary/templates*](/openlibrary/templates) - all the templates used in the website\n* [*openlibrary/macros*](/openlibrary/macros) - macros are like templates, but can be called from wikitext\n\n## Architecture\n\n### The Backend\n\nOpenLibrary is developed on top of the Infogami wiki system, which is itself built on top of the web.py Python web framework and the Infobase database framework.\n\n- [Overview of Backend Web Technologies](https://openlibrary.org/about/tech)\n\nOnce 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).\n\n- [Infogami Developer Tutorial](https://openlibrary.org/dev/docs/infogami)\n\nIf you want to dive into the source code for Infogami, see the [Infogami repo](https://github.com/internetarchive/infogami).\n\n## Running tests\n\nOpen Library tests can be run using docker. Kindly look up on our [Testing Document](https://github.com/internetarchive/openlibrary/wiki/Testing) for more details.\n\n```\ndocker compose run --rm home make test\n```\n\n## Contributing\n\nThere are many ways volunteers can contribute to the Open Library project, from development and design to data management and community engagement. Here’s how you can get involved:\n\n### Developers\n- **Getting Started:** Check out our [Contributing Guide](https://github.com/internetarchive/openlibrary/blob/master/CONTRIBUTING.md) for instructions on how to set up your development environment, find issues to work on, and submit your contributions.\n- **Good First Issues:** Browse our [Good First Issues](https://github.com/internetarchive/openlibrary/issues?q=is%3Aissue+is%3Aopen+-linked%3Apr+label%3A%22Good+First+Issue%22+no%3Aassignee) to find beginner-friendly tasks.\n\n### Designers\n- **Design Contributions:** We welcome designers to help improve the user experience. You can start by looking at [design-related issues](https://github.com/internetarchive/openlibrary/labels/design).\n\n### Librarians and Data Enthusiasts\n- **Data Contributions:** Learn how to contribute to our catalog and help improve book data on Open Library. Visit our [volunteer page](https://openlibrary.org/volunteer) for more information.\n\n### Community Engagement\n- **Join our Community Calls:** Open Library hosts weekly community and design calls. Check the [community call schedule](https://github.com/internetarchive/openlibrary/wiki/Community-Call) for times and details.\n- **Ask Questions:** If you have any questions, request an invitation to our Slack channel on our [volunteers page](https://openlibrary.org/volunteer).\n\nFor more detailed information, refer to the [Contributing Guide](https://github.com/internetarchive/openlibrary/blob/master/CONTRIBUTING.md).\n\n\n## License\n\nAll source code published here is available under the terms of the [GNU Affero General Public License, version 3](https://www.gnu.org/licenses/agpl-3.0.html).\n","funding_links":["https://archive.org/donate"],"categories":["Python","\u003ca id=\"tag-organization\" href=\"#tag-organization\"\u003eOrganization\u003c/a\u003e","open-source"],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Finternetarchive%2Fopenlibrary","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Finternetarchive%2Fopenlibrary","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Finternetarchive%2Fopenlibrary/lists"}