Google Summer of Code 2020: Adoption by Book Lovers

by Tabish Shaikh & Mek,the world’s best-kept library secret: Let’s make it easier for book lovers to discover and get started with Open Library.

Hi, my name is Tabish Shaikh and this summer I participated in the Google Summer of Code program with Open Library to develop improvements which will help book lovers discover and use

My Journey into Open Source

When I got to college, I could tell classes would not be enough to help me get the hands on experience I would need to gain confidence in my programming abilities. I heard from friends and professors within my university that open source projects presented a great opportunity to work with established engineers in the field to gain hands-on experience.

In the past, I tried contributing to a few well known open source projects, like Wikipedia. I selected Wikipedia because the community is large, active, and well established, there’s a lot of documentation, and the project is in a programming language I know well.

I quickly became overwhelmed. Wikipedia may be well established, but a project of that size felt difficult to navigate without a mentor to guide me. I was able to successfully set up my environment, but then I had trouble finding an appropriate first issue to work on and hit a dead end as I tried to familiarize myself with the code. I found myself wishing for a chance to work more closely with the community.

One evening in March of 2018, I was searching for a free algorithms book on Google and discovered Open Library. I had trouble finding the exact book I was looking for, but I could tell Open Library was an important library resource for accessing free books online and I noted their dated design as a big opportunity for improvement. So I bookmarked the page in my browser and was surprised to discover a “Help Us” button. I clicked the button and landed on a github issue which mentions their community calls. This gave me confidence there was a community which could help me get started and answer my questions, so I decided to give it a shot.

The community calls gave me a guided path for positively improving the experience of patrons using the service. During the community calls, members present what they’ve completed, what they’re working on, and what they may be stuck with. In reality, this is a way to be seen for your achievements, update others, and receive help. Having this type of structure helped me discover which appropriate opportunities exist, how to approach and plan to solve the problem.

This experience was really special to me because it was the first time I had been part of an international community and all of the members were aligned toward a common goal of universal access to knowledge.

In the first few months of volunteering I redesigned the website footer and made several pull requests. I also noticed Salman was participating in Google Summer of Code (GSoC) in 2018. I applied to work with Open Library for GSoC in 2019 and was disappointed to learn the Internet Archive didn’t have enough slots for Open Library to participate. Fortunately, I worked with Mek, Open Library’s program lead, who recognized my contributions and arranged an “Internet Archive Summer of Code” (IASoC) internship program where we accomplished a major victory of releasing the sponsorship program which empowers the community to make meaningful, diverse books more available to borrow. You can read the blog post here which was picked up by BoingBoing and Gizmodo.

Noticing a Problem

During my years volunteering, we recognized several indicators that Open Library could be better serving its mission by distributing to a larger audience. Open Library, which has millions of free books to borrow, has an international alexa rank of  #11,079, compared to Goodreads which is a top #300 website without having books to borrow. The data also showed many patrons would drop off at the registration page because it didn’t offer immediate field validation and the fields would be cleared upon submit if, e.g. an email was already registered. The book pages, our most frequently viewed pages, were also very slow to load, causing patrons to drop-off. Also the experience of the book pages was confusing because there were separate views for Works and Editions. Because of all these factors, only around 6% of the Internet Archive’s books were checked out, meaning 94% of the catalog remained underutilized.

I applied to GSoC 2020 with a plan, “Adoption By Book Lovers” to resolve some of these key issues, help more people like myself discover and derive value from the Open Library, and hopefully improve their first experience in the process.

Placing our bets

In the service of helping more patrons discover Open Library, increasing our utilization and engagement, and decreasing confusion and bad experiences, we made 5 key bets:

  1. Improving Sign Up
  2. Book Page Redesign
  3. Shareable Profiles & Public Reading Log
  4. Imports & Exports
  5. Twitter Bot

There’s a common saying, “the first impression is the last impression”. This has certainly been true for many patrons attempting to sign up for an Open Library account. The easiest, surest way to help more patrons derive value from the Open Library platform is by Improving Sign Up; reducing the friction and early negative first impressions during account creation.

Open Library’s mission for 2019 was “Reducing bad experiences, confusion, & dead-ends”. By combining our Works and Editions pages into a single more performant Book Page Redesign we believed we’d reduce the confusion of users searching for their favourite books and in turn, also increase distribution. The DoubleClick study by Google shows that 53% of patrons drop off if page load is exceeds 3 seconds and this carries significant SEO penalties. While redesigning our Book Page, a key consideration was page-load performance because we knew this would increase our rank in search engine results and increase retention through the lending and registration funnels.

Finally, by betting on social features, like shareable profiles and public-by-default reading logs, the ability to import books from Goodreads, and a twitter @borrowbot to help patrons discover which books are available to read and borrow on Open Library, we felt confident we could increase the number of patrons that may discover and adopt

Improving Signup

In 2018, we coincidentally, hit a regression #1431 to our account creation page which presented itself as a server error for patrons trying to register a new account when their username or email was already taken.

Because of this bug, our daily registered users dropped from ~2300 to ~1700 (-500). Through this, we discovered that nearly 1/5 of patrons (i.e. 500 a day) who attempted registration would hit some validation issue when creating their account (e.g. email or username invalid or taken, recaptcha broken). Even after solving the #1431 regression, we hypothesized that many of these 500 patrons were hitting error-cases which refreshed the page and cleared their form inputs, causing patrons to bounce. An easy solution was adding real-time validation to ensure emails, usernames, passwords, and recaptcha are valid before submitting the form.

In order to implement real time validation, we planned Epic #1433 which included two pieces: 

  • #2053 – update backend API endpoints
  • #2055 – Add real-time field validation for email, username, password to show errors before submission.

While we do not have great analytics on how conversion increased, we do know from our support channels that these changes have anecdotally resulted in a significant decrease in support emails around patron signup.

Book Page Redesign

User interviews and surveys have taught us that most patrons who visit Open Library are trying to find a “Book”. Many patrons report that the terms Work and Edition may confuse their experience. This confusion is increased because a user can unpredictably be dropped into either a Work page or an Edition page which have different designs.

Our goal in redesigning the books page was to increase clarity of the experience and improve page loading times. To improve clarity and simplify the experience, we merged the work and edition pages to a single book page where patrons may find all the information about a work and learn about the availability of various editions without having to navigate multiple pages.  

When redesigning the Book Page, we made the following changes:

  • Editions table. We made the editions table front-and-center to enable readers to quickly switch between the different editions. We also feature editions by availability and language, and allow patrons to change how many results are shown at a time. We added a new search box to enable patrons to find relevant editions without reloading. 
  • Navigation tabs. We have bucketed the work’s information into an “Overview” tab and the current Edition’s information in the “This Edition” tab. The tab bar always sticks to the top of the page for easy access to different sections of the page.
  • Expandable descriptions. In previous designs, long text descriptions made it difficult to see all important book information at a glance. There are now “Read more” links to expand and collapse long descriptions.
  • Clearer buttons. All the favorite actions of readers such as borrowing, searching inside, adding books to one’s reading log, and book star ratings have been grouped together and moved right below the book cover. It’s hopefully more clear now that the “Want to Read”
  • Load times. We know page speed is a priority for readers. The new Books Page should be significantly faster (Lazy Loading of Related Works Carousel).

Considerations. We tried to change as little as possible and were careful not to remove existing functionality:

  • URLs: Developers and partners will be happy to hear that /works and /books urls and APIs will continue to work as expected without change. Both the work and edition pages will simply appear to use the same consistent design.
  • Lists: While admittedly slightly less convenient, you can still add Works to Lists by clicking the “Use this Work” checkbox as shown below. By default, Lists will use Editions.

I had always worked in small teams with not a lot of stakeholders and no clash of ideas. The Books Page Redesign was one in which the issue was open for 3 years and it was being stalled due to clash of interests in how we should display our pages. Completing this issue was a major milestone in my GSoC program where I learned to cooperate and compromise on some aspects of our design so that all stakeholders were happy.

The feedback we received from our patrons was that ~65% patrons found the New Books Page a step forward, ~17% did not have any preference and ~22% found the change a step backward. Therefore we think our hypothesis was correct and this feature would improve user experience and reduce user confusion.

Read more about the Book Page Redesign:

Additional Book Page improvements

After completing the Book Page redesign, we made two major improvements to help our Librarian community and to improve performance and load times: a better book /edit experience and Lazy Loading of expensive book page components (e.g. related works carousels).

Book Page Editor. We redesigned the Books Page Editor to enable our librarians edit book metadata with ease. 

Lazy Loading of Related Carousels. To improve the page loading time we firstly created a list of components and their timings and noticed that the Related Works and Author Works took the most time to load thereby slowing down the page for up to 10%. Therefore our hypothesis was to lazy load related works carousel which would then enable our newly designed books pages to load faster.

The impact of this change was that now pages load up to 10% faster:

Shareable Profiles & Public Reading Logs 

We noticed that very few patrons share their reading logs or even know they can be shared. However, we know patrons on Goodreads share their reading logs frequently. And also, lists on Open Library are shared all the time. Why is this?

In 2017, when Open Library announced the new Reading Log feature, it was set to be private by default. We expected many patrons would change their reading logs to be public, but because it wasn’t public by default and difficult to discover, patrons didn’t know the feature existed and had no reason to make it public.

In the spirit of being an open platform, we wanted patrons to have the opportunity to make their reading logs public to patrons with similar interests. As a result, we decided to make Reading Logs public by default for new accounts created after 2020-05, with the option for any patron to set their reading logs to private. Even after making this change, we noticed patrons trying to share their generic /account/books page, however this page always reflects the content of the currently logged in user.

By always redirecting /account/books to the publicly shareable /people/username url, we are able to move in a direction which enables patrons to freely share their reading logs and paves the way for other features like “following”, which we’re interested in exploring next year.

Enabling these change required:

This change simplified how users share their reading log and profile pages publicly paving a path for more social additions to Open Library.  

Imports & Exports

Goodreads provides a way to download/export a list of books from one’s bookshelves. This feature would allow a user to take an exported dump of their reading log from Goodreads and then add each of these books to their Open Library account.

The Goodreads import feature from

The export options enables patrons to download a list of Open Library book identifiers from their reading log. 

The download export option from
A picture of a CSV file crated by the exporter

Twitter Bot

Our objective for this task was how do we reach more patrons/readers and help them discover more books on According to the hashtag analytics audit done on on hashtags #books #amazon using the free version the analytics show that in a 7 day period the number of original tweets(excluding retweets) was approx. 140 with a number impact of 11M. Therefore this is a great opportunity for making our bookshelves discoverable.

Whenever a user tweets out a book with the amazon link/ an ISBN, the twitter @borrowbot would retweet the book with the link from Open Library if it is available. The book will be tweeted only once.


  • In no small part because of the bets we made, our international Alexa rank improved by 10% from #11,079 to #9,893.
  • Our Book Page load times improved on average by ~10%.
  • 2 out of 3 of our patrons approved of our Book Page redesign, with 11% celebrating it as game changer.
  • More than 5,000 books have already been imported through the Goodreads import tool
  • Support team reports significant decrease in account creation support emails

What I learned

I always looked for ways to improve my work and have always loved constructive feedback from my mentor Mek who helped me learn how to estimate time for tasks, effectively identify stakeholders and include them in the process (reaching consensus on decisions was a lot harder than I anticipated), and how to communicate problems and achievements in a way which everyone may understand. Also, writing takes a long time and it’s easy to want to code until the deadline. As our founder Brewster Kahle says, “work backwards from the blog post”. 

I also had the privilege of applying what I’ve learned to be a mentor for both Sachin Naik (#3627 #3622 ) and Fatima (#3454) within our community and helping them submit some of their first pull requests for Open Library

Posted in Bulk Access, Community, Google Summer of Code (GSoC), Open Source | Comments closed

Open Library for Language Learners

By Guyrandy Jean-Gilles 2020-07-21

A quick browse through the App Store and aspiring language learners will find themselves swimming in useful programs.

But for experienced linguaphiles, the never-ending challenge is finding enough raw content and media to consume in their adopted tongue. Open Library can help.

Earlier this year, Open Library added reading levels to their catalog for more than three thousand books. The ability to search by reading level, combined with filtering by language, provides the savvy patron a convenient way to find, read, and listen to handfuls of elementary books in their desired language.

Getting the most out of Open Library’s BookReader

One of the most valuable settings of Internet Archive’s BookReader for language learners is Read Aloud. I highly recommend using this feature while reading to ensure your pronunciation is perfect. Just about any modern browser supports Read Aloud out of the box.

Tip: If you want the most natural sounding voices, believe it or not, Microsoft Edge is your best choice. If Microsoft Edge isn’t available on your platform, there are likely ways to install more natural voices via plugins or other methods.

Finding Books at your Literacy Level

From the main menu, click on the “Browse” drop-down and select K-12 Student Library.

You’ll next be presented with a Student Library where you may choose books by “reading level” or “grade”. In my experience, selecting by reading level offers more non-English options. Also in my experience, the higher the reading level, the more non-English options are available. Your mileage may vary.

Let’s pick “Grade 12” for now. We should see books tagged at a 12th grade reading level, predominantly in English. Let’s change that by scrolling and adding a filter for only Spanish books on the right sidebar.

Now our results show Spanish editions at a 12th grade reading level! You may notice many of these available books are out-of-copyright translations of the “literary canon.” This is largely what’s available in Open Library’s non-English k-12 catalog at the time of writing this post. Let’s select Hamlet by William Shakespeare.

To select the Spanish edition of Hamlet, scroll to the editions table and type “Spanish” into the edition search bar. Then, click “Read” to open the BookReader.

Because this is an unrestricted book, you may click the Read button to begin reading. If you want to take advantage of the Read Aloud feature, hover over the headphones icon on the right side of the Read button and click Listen.

BookReader should automatically narrate the book in the text’s native language. The passages will be highlighted as they are read aloud. If the voice appears to be incorrect, this may means your browser does not have access to a suitable digital voice to read aloud the book’s language. We’ve found Microsoft Edge and Google Chrome to be reliable options.


Now you have all the tools you need to find and read books in other languages. I cannot stress the Read Aloud feature enough as it allows me to hear new words spoken as I’m introduced to them. No matter where you are in your language learning journey, reading and listening to books in your target language can only accelerate your progress. Let Open Library help you along the way. ¡Disfrutar!

Did you enjoy this article? Please let us know on twitter!

Posted in Uncategorized | Tagged , | Comments closed

Meet the Librarians of Open Library

By Lisa Seaberg

Are you a book lover looking to contribute to a warm, inclusive library community? We’d love to work with you: Learn more about Volunteering @ Open Library

Behind the scenes of Open Library is a whole team of developers, data scientists, outreach experts, and librarians working together to make Open Library better and easier for patrons to use. Today, we’d like to introduce to you and celebrate some of the librarians on the team who work to keep data organized, accurate, and easy to find. Here are their stories, how they discovered Open Library, and what motivates them to help make it better every day.


Since 2017, GLBW has applied their specialized knowledge of works related to new social movements by adding and enhancing information about associated works and authors. GLBW also edits on Wikidata and and adds books to GLBW is the user name of the Gustav-Landauer-Bibliothek Witten in Witten, Germany. Thank you GLBW!

Follow GLBW on twitter: @trotz_allem #GLBibW

Meet Daniel

Daniel Capilla lives in Málaga, Spain and has been contributing to Open Library since 2013. Daniel’s interest in contributing to Open Library was sparked by his joy of reading and all things  library-and-book-related as well as the satisfaction he gets from contributing to open source projects and knowing that everyone will be able to freely enjoy his contributions in the future. Daniel states:

“I began contributing to the Open Library in a very modest way. When I would borrow a book from my local library or when I finished reading a book, I would always check the Open Library to see if there was a record for that book. If there was, I would complete it as best I could, adding a description, the cover, and so on. And if there wasn’t, I would create a new record for it. Later, I became interested in creating book lists. I have always liked the thematic reading lists that libraries make for their readers and I began to create my own lists in Open Library.

I have only recently begun to be interested in improving the Open Library metadata in a more systematic way, completing author records, correcting the list of their works, or improving the records of books available for loan in the Internet Archive. I have also made a first modest contribution to the Open Library code by adding a first Spanish translation of the website. It is not yet complete and is something I would like to continue collaborating on. The issue of the internationalization of the Open Library seems to me to be a fundamental issue for the project to have more acceptance, especially in non-English speaking countries. This is an issue on which there is still much to be done.”

Follow Daniel on twitter: @dcapillae

Meet Guy

Guy joined Open Library as a volunteer in 2019 to help with project management, data engineering, and bot development. He is an engineer, book-lover, and a global citizen that believes open knowledge and open data contributes to the greater common good. Guy likes his data like he likes his teeth: squeaky clean. His recent projects include adding covers to more than 700k editions, as well as making thousands of editions searchable by fixing and normalizing their ISBNs. By the end of 2020, Guy wants to make it easier for new contributors to enrich and sanitize Open Library’s data using bots. Interested in helping? View this open issue on Github.

Follow Guy on twitter: @guyjeangilles

Meet Blair

Blair recently became an Open Librarian and has done tremendous work to enhance and consolidate various juvenile and young adult series. Most recently she consolidated and added information to all the volumes in the popular Rainbow Magic book series.

Meet Nick

Nick Norman is a content strategist and librarian for Open Library. By helping to develop a Cultural Resource page on Open Library, Nick aims to “make it easier for readers and learners to discover new things about people and the world around them” and “reveal how equally amazing culture is–from every part of the world.”
Follow Nick on LinkedIn:

Meet Kathy

As a lover of short stories and collector of the series Best American Short Stories (BASS), Kathy Ahlering was interested in finding a way to catalog her library and had been trying out various apps and websites designed for the purpose. As she became more knowledgeable about the history of the BASS series, its origins, the editors involved, etc., she became frustrated that no single site had fully accurate data. Volumes were treated as editions of a single work which made it difficult to accurately catalog each volume’s unique contents and bibliographic data. Describing what led her here, she states:

“I began to “friendly edit” data on sites that allowed it, but quickly realized that it would be smarter to clean up the info at the top of the “food chain”…  OpenLibrary.

My first “edit”, actually, was the act of clicking on “Please Note: Only Admins can delete things. Let us know if there’s a problem.” and letting ‘someone’ know that a bunch of BASS editions were coming up under the wrong work.

“I assumed my message would go directly and without delay, to the -by now bursting at the seams- blackhole of “let us know!” messages, never to be heard from again. I was also certain, having been well trained by the hundreds of site admin I’ve had the folly idea of sending a ‘let us know!’ message to in the past, that absolutely zero effort would be made to rectify the incorrect data.

Imagine my squeals of delight when I received a personal and lengthy email reply just two days later! The email addressed every issue I’d raised in my ‘let us know!’ message and welcomed my efforts to help. The rest, as they say, is his-tore-eee!”

Follow Kathy on twitter: @KathyAhlering

Meet Drini

Drini joined and made his first edit on Open Library on July 22, 2011 (almost 9 years ago today!). He loves reading, and loves data, so Open Library was a good match. In 2017, while finishing his undergrad in Computer Science, he began to contribute code to the project for combining duplicate works and for linking editions to Wikidata. In 2019, he was able to join the staff of Open Library’s development team full-time. Between balancing interests in design, information science, and human computer interaction, Drini’s most recent contribution to librarianship has been the work-merge tool used by librarians to combine duplicate works together. He is currently working on creating a new interaction experience for browsing (as opposed to searching) the books of Open Library, and on modernizing Open Library’s search infrastructure. He looks forward to continuing to build tools to help make librarians more productive and to help push the frontier of what a digital catalogue and library can be.

Follow Drini on twitter: @cdrini

Meet Charles

Charles Horn is passionate about early printed classical Greek works, Greek typography, and classical languages and literature. Charles began volunteering on Open Library around 2015, by writing bots to catch & clean-up spam edits and clean millions book and author catalog entries record. In 2017, he joined the Internet Archive as a member of staff and made fundamental improvements to Open Library’s MARC & json book import system. On top of this revitalized import infrastructure, Charles has imported tens of thousands of modern books catalog records, added hundreds of thousands of partner records into Open Library’s catalog, fixed millions of orphaned edition records, and has helped Open Library use Wikidata and VIAF data to merge almost 100k author records.

Follow Charles on github: @hornc

Meet Lisa

Lisa Seaberg has been an active contributor to Open Library since 2017 and Lead Community Librarian since 2019. 

Lisa’s life-long obsession with books and book metadata is what initially attracted her to Open Library. Similar to Daniel, she initially started by making small contributions by making lists and adding book information. Soon after, she discovered the repository on GitHub and started reporting errors, suggesting features, and contributing to discussions about the site. As Lead Community Librarian, Lisa helps site users with questions about editing and best practices and provides guidance to new librarians learning how to use the tools. Additionally, Lisa tries to help make it easier for patrons to find what they are looking for by consolidating duplicate works and authors, fixing conflated records, and making sure information is complete. Besides reading, Lisa’s other interests include FRBR, board games, and pub trivia. She currently lives in Amsterdam, The Netherlands.

Follow Lisa on twitter: @seabelis

Are you a book lover looking to contribute to a warm, inclusive library community? We’d love to work with you: Learn more about Volunteering @ Open Library

Posted in Uncategorized | Comments closed

Re-thinking Open Library’s Book Pages

by Mek Karpeles, Tabish Shaikh

We’ve redesigned our Book Pages: BeforeAfter.
Please share your feedback with us.

A web page for every book… This is the mission of Open Library: a free, inclusive, online digital library catalog which helps readers find information about any book ever published.

Millions of books in Open Library’s catalog have been made available to preview, read, or borrow using the Internet Archive’s controlled digital lending library. However, the catalog also features tens of millions of books which are yet to have previews and instead serve as resources that help patrons learn more about books, share lists of books they love, keep track of what they’re reading, and locate copies from bookstores and local libraries.

Thousands of new books are added into Open Library’s catalog every day. Like Wikipedia, thousands of edits are contributed by community librarians and volunteers across the globe. Open Library is a community effort and any patron who registers online for a free Internet Archive library card may participate.

Since its inception in 2006, a core tenant of Open Library’s service has been the notion of one web page for every book.

What is a book, exactly?

Before creating a page for every book, it’s important to have an understanding of what a book is to different classes of patrons.

It seems like a simple question. We know a book when we see one. But what if we see ten translations of, “Lord of the Rings: The Fellowship of the Ring”. Are they the same book? Or more importantly, when is it convenient for us to consider them different books versus the same, or vice versa?

One does not simply define a book as an edition.

Even for expert librarians, the seemingly simple question, “what is a book” has a surprisingly difficult and nuanced array of answers. Librarians have even developed complex classification models like FRBR to help figure it out. Yes, we’re serious:


Perhaps the most correct answer is, a book is kind of like the Room of Requirement from Harry Potter; it’s whatever a reader needs it to be within the situation.

Sometimes “Harry Potter” is referred to as a book (even though it’s more accurately a Series; a logical grouping of similar works). Other times, “Harry Potter and the Half Blood Prince” is referred to as a book (though it’s more precisely a Work; a logical grouping of similar editions). Other times still, the term book refers to the specific published version one is reading: e.g. “Harry Potter and the Half Blood Prince”, 2005 (English) ISBN 9780439785969. And of course there’s the distinction between the copy of this Edition sitting on your library’s shelf, and your personal copy which is annotated with your notes, marginalia, and is signed by your favorite author.

Do these semantics really matter?
Consider the following exchange with our local friendly librarian:

Us: Excuse me, do you have any copies of, “Return of the King” by J.R. R. Tolkien?

Librarian: Bonjour, yes! Are you looking for a specific edition?

Us: Whatever edition is available, I just want to read the book.

Librarian: Here you go!

Us: This is not the right book, it says, “Retour du Roi”. And where are the pictures and maps or Mordor? This isn’t the cover I remember.

For many, the fact that a book has a specific edition is inconsequential; often times multiple comparable editions could satisfy their requirements.

Our theory of change
Our theory is, when a patron asks for a book, they are often requesting a Work and wish to have have a “correct” Edition be inferred, such that the following questions are answered:

  1. Is it the right work?
  2. Is it in the right language?
  3. Is it available now for me to read?
  4. Is it available in the right format?
    • e.g. hardcover, softcover, online, offline, epub, pdf, daisy, audio…

This agrees with feedback we’ve received from readers:

A small poll of 38 patrons — what is important in a book page?

But hindsight is 2020. As a first step towards this direction, Open Library started simple: one page for every edition.

A Page for Every Edition

When first opened its virtual doors around 2007, patrons were able to search through thousands of books, like this 2001 edition of, “A Heartbreaking Work of Staggering Genius” by Dave Eggers.

Thanks to the Wayback Machine, we can see how Open Library edition pages looked in October, 2007

At first glance, this is great. This book page does a nice job of representing this edition’s metadata — everything from description to ISBN.

In the wild though, not every edition is a release of a different book. For instance, consider this Japanese edition and this Spanish edition which are both translations of the same English book, “The Da Vinci Code“. In 2007, all three of these editions would have been separate book pages on Open Library and none of them linked to each other. If you were to happen upon the Japanese version, you wouldn’t have had any way of knowing if there was also a Spanish version.

Searching and browsing using an Editions-based system can also be problematic and frustrating, especially when a search term matches a book with hundreds of published editions. Imagine searching for the title “Tempest“, while looking for the Star Wars book by Troy Denning and having to scroll through 650+ editions of William Shakespeare, “Tempest” (sorry, we know this page loads slowly!) .

Search results from the original 2007 Open Library are polluted with scores of results for the same book, “The Adventures of Tom Sawyer” by Mark Twain.

The challenges of an edition-based system are exemplified well by searching for books by Dave Eggers using the 2007 version of Open Library. One must wade through a deluge of titles, many reappearing multiple times as different editions of the same book, making it difficult to explore different titles.

If only there were a way to get all the benefits of an Edition Page but also have a way to roll-up similar editions into logical groups to help patrons to search for and differentiate books at a Work-level.

Adding Works

In March 2010, the Open Library team, led by the wonderful George Oates, helped address this problem with a redesign which introduced the concept of Works — i.e. logical groupings of similar editions.

In this design, the Japanese edition, the Spanish edition, and the English edition of, “The Da Vinci Code” from before all appear in a tidy editions table on a single Work Page. Now, a patron could perform a search for a work of interest, navigate to a Work Page, and then choose a relevant matching edition from the table. Clicking on an edition brought the reader to an Edition Page with information about that specific book.

Overall, this was a big step forward for Open Library patrons who were clamoring for a more organized way to find books.

This new design was a big step forward in making it easier to find the right general work. It also surfaced additional challenges and opportunities. For instance:

  1. Once the patron lands on the Editions Page, they lose the ability to easily view or switch to different editions.
  2. Some patrons reported confusion on the Work Page concerning which representative book cover was being displayed.
  3. Also on the Work Page, for books with longer descriptions, the editions table became pushed far below the fold and readers that were newer to the site reported difficulty discovering if editions were available to read or borrow.
  4. Managing two separate designs (for the Work Page & Edition Page) added cognitive load to some patrons who reported getting lost, and to developers who had to maintaining these designs.

For the average reader, the terms Work and Edition can confuse their experience. It is especially jarring when throughout the Open Library experience, a reader may either be dropped into a Work page or an Edition page. From the Editions Page, there was no way to see a list of alternative editions without changing pages to go to the Work Page. And on the Work Page, a reader would have to go to the Editions Page in order to learn more about that specific title and decide if it’s the one they want to read.

Again, our theory is: often times a patron requests a Work and wants the/a “correct” Edition to be inferred.

With the Editions-only model, a reader may have to wade through hundreds of irrelevant editions of books they’re not interested in. With the new Work pages, readers still had to perform the challenging task of deciding which edition was right for them.

Combining the best of both worlds

To simply this experience for readers, this week we released a new type of Book Page (see figure B, below) which combines the affordances of the Work and Edition Pages into a single view where readers may find all, neatly organized information about a work and about a specific edition at the same time, on the same page. Two pages become one:

By default, the Book Page attempts to automatically feature the “best” (previewable, available) edition of a book and places an editions table front-and-center to enable readers to quickly switch which edition is selected.

  • Editions table. We added a new search box to enable patrons to find relevant editions without reloading.
  • Navigation tabs. We have bucketed the work’s information into an “Overview” tab and the current Edition’s information in the “This Edition” tab. The tab bar always sticks to the top of the page for easy access to different sections of the page.
  • Expandable descriptions. In previous designs, long text descriptions made it difficult to see all important book information at a glance. There are now “Read more” links to expand and collapse long descriptions.
  • Clearer buttons. All the favorite actions of readers such as borrowing, searching inside, adding books to reading log, and rating books has all been grouped together and moved right below the book cover. It’s hopefully more clear now that the “Want to Read”
  • Load times. We know page speed is a priority for readers. The new Books Page should be significantly faster (and we’re still working on it).

Here is that same 2007 Book Page “A Heartbreaking Work of Staggering Genius” by Dave Eggers brought to you with 2020 vision.

What’s staying the same.
We tried to change as little as possible and were careful not to remove existing functionality:

  • URLs: Developers and partners will be happy to hear that /works and /books urls and APIs will continue to work as expected without change. Both the work and edition pages will simply appear to use the same consistent design.
  • Lists: While admittedly slightly less convenient, you can still add Works to Lists by clicking the “Use this Work” checkbox as shown below. By default, Lists will use Editions.

Please share your feedback with us

We would love your feedback on what you like about our new Book Page and what you wish were different.

  1. Please take a moment to let us know what you think using this Google Form
  2. Tweet feedback to @openlibrary
  3. Is something broken on the Books Page? Please let us know @ or open an issue on github.

Thank you to Jim Shelton, Brenton Cheng, Jeff Kaplan, Lisa (@seabelis), Charles Horn, Nolan Windham, and countless others who provided design and product feedback to make this effort possible. And Sahar Massachi for providing feedback on this post.

Posted in Interface/Design, News | Tagged , , , , , | Comments closed

Reading Logs: Going Public & Helping Book Lovers Share

Hi book lovers,

Starting 2020-05-26, Reading Logs for new Open Library accounts will be public by default. Readers may go here to view or manage their Reading Log privacy preferences. This will not affect the privacy of your reading history — only books which you explicitly mark as Want to Read, Currently Reading, or Already Read on Open Library. The Reading Logs of patrons who signed up for Open Library accounts prior to this date will remain private until they choose to update their settings here. New users may also set their Reading Logs to private using this same link.

Open Library has consistently valued two principles: openness and reader privacy. As an open source, public library, we feel strongly about creating a warm, welcoming ecosystem which promotes sharing, diversity, and openness. We’re stronger, together, when we work as a community. At the same time, Open Library is dedicated to providing a secure, safe, and judgement-free service for those who rely on reader privacy. We take our responsibility as a library strongly to safeguard what books you’re reading and borrowing, unless you decide to share this information.

Since 2010, has offered public reading lists to help patrons organize and share books they love. Since then, readers have published more than 130,000 public lists.

Over the last 10 years since we introduced lists, we noticed thousands of readers creating bespoke lists called “want to read” or “already read” or “favorite books“. We also noticed many popular reading services offer special personal lists which help patrons keep track of the books they are reading.

In response, at the end of 2017, Open Library launched a new Reading Log feature; a special type of list which lets readers keep track of books they Want to Read, books they’re Currently Reading, and books they’ve Already Read.

Since introducing the Reading Log, 943K unique readers have added books to their Reading Log 1.8M times.

When we first launched this feature, we didn’t know how the community would use it and so to be conservative, we made the Reading Log private by default. One point of feedback we consistently get from our patrons is, they wish it were easier to share their Reading Log with their friends. Lists on Open Library are already public. So are favorites on At the same time, it’s important for us to keep our promise to readers. We know some patrons may prefer setting their Reading Logs to be private, and we respect this.

Based on this feedback, and in the service of living up to the name “Open Library”, starting 2020-05-26, Reading Logs for new Open Library accounts will be public by default. Readers who create new accounts may go here to view or manage their Reading Log privacy preferences. Again, if you are an existing Open Library patron, your Reading Log will remain private unless you have already, or until you explicitly, update your settings here.

We hope many in the community will join us in making Open Library a more open ecosystem where book lovers can discover and share titles. While some platforms only offer a public Reading Log, Open Library is committed to continue offering a private setting for our patrons. As an organization which wears the motto, “Universal Access to All Knowledge” on its sleeves, we decided transitioning to public-by-default for new accounts better aligns with the spirit of working together to craft the World’s library together, and ultimately is a better outcome towards serving our broader community.

Open Library is constantly evolving and we exist to serve our patrons and our community. If you have strong opinions, we want to hear from you. Please send an email to Please try to be kind, we’re doing the best we can to make the right decisions with feedback from more than 3,000,000 readers like you. If you’d like to get involved and help, check our volunteer page or explore Open Library on github.

P.S. We’ve heard feedback that readers would like to be able to add notes to their reading log books, keep track of their place, and check-in the pages they’ve read, and we hope we’ll be able to address some of these wishes in a later post.


The Open Library Team

Posted in Uncategorized | Comments closed
  • open library logo
  • follow us on twitter

  • Recent Posts

  • Archives