Terms
Effective May 18, 2026. Last updated May 18, 2026.
Booklister is a free tool for making printable library booklists. It's a side project run by one person. These terms describe what you can expect from the service, what I'm asking of you in return, and the small set of legal points that apply when one person hosts a tool that other people use.
Agreeing to these terms
By using booklister.org, any branded library instance at a Booklister subdomain (like libraryname.booklister.org), the admin console at admin.booklister.org, or the Booklister Helper browser extension, you agree to these terms. If you don't agree with them, please don't use the service.
You also agree to the Privacy policy, which is part of these terms.
What these terms cover
These terms apply to all parts of Booklister: the free public tool at booklister.org, any branded library instance running on a Booklister subdomain, the admin console at admin.booklister.org, and the Booklister Helper browser extension. The browser extension is installed through a store run by someone else (Chrome Web Store, Firefox Add-ons, or Microsoft Edge Add-ons). Those stores have their own terms, and those terms apply to your installation and use of the extension alongside these ones. If the two ever conflict on something the store actually enforces, the store wins for that piece.
The free public tool
Booklister at booklister.org is a free browser tool for making printable booklists, mostly aimed at library staff putting together a display. There are no accounts and no sign-in. Everything you do happens inside your browser: search results come from Open Library, your draft is autosaved to your browser's local storage, and your finished booklist is exported as a PDF or saved as a .booklist file that downloads to your own computer. I don't run a server that stores your work and I don't see what you make with the tool.
Third-party content (Open Library and cover images)
Title search results and cover images come from the Open Library API, which is an Internet Archive project. I don't curate, verify, edit, or own any of that content. Titles, authors, descriptions, and other metadata can be incomplete or wrong, and cover images may be subject to publisher copyright or other restrictions independent of Booklister. If you're making a booklist that will be printed and displayed publicly (which is the whole point of the tool), you're responsible for deciding whether the imagery, metadata, and any associated content is appropriate for that display in your specific context. Booklister doesn't host cover images on its own servers; when you add a cover to a booklist, the image bytes are fetched from the upstream provider and embedded into your downloaded file so the file stays self-contained.
Files you create
The .booklist files you save and the PDFs you export are entirely yours. Drafts in progress live in your browser's IndexedDB storage, and finished files live wherever you save them on your own computer. I never receive these files, I have no way to see them, and I can't recover them for you if you lose them, clear your browser data, or accidentally overwrite a file. Treat your booklists the same way you'd treat any other document on your computer: save the important ones to a .booklist file, keep a copy somewhere durable, and don't rely on the in-browser autosave as long-term storage.
Branded library instances
A branded library instance is a subdomain like libraryname.booklister.org that I set up at a library's request. Each instance has the library's own display name, logo, and (for gated instances) a sign-in screen for staff. Instances come in two flavors: public branded, where anyone can use the tool without signing in, and gated, where only staff with accounts can use it. The library doesn't own the subdomain or the underlying service; I host and operate the instance on Firebase, the same way I host the public tool. The library brings the branding, the staff list, and the use of the tool; everything else is run from my end.
How instances are created
Instances are created at a library's request, at my discretion. There's no application form, no contract, and no fee. A library staff member emails me from the Contact page, we sort out the basics (subdomain name, branding image, public or gated), and I set up the instance. Because this is an informal arrangement, I may decline to set up a new instance for any reason, and I may ask for more information before agreeing. The arrangement isn't a long-term commitment from either side, and either party can end it at any time (see "Suspension and termination" and "Discontinuation" below).
Library staff accounts
On gated instances, each staff member signs in with their email address and a password they choose themselves. Accounts are created when a library admin sends an invite from the admin console; the invited person receives a password-reset email and sets their own password through that link. I never see staff passwords, and there's no shared library login.
Each staff member is responsible for keeping their own password confidential and for not sharing their account. If you think your account has been used by someone else, change your password through the "Forgot password?" link on the sign-in screen and email me from the Contact page so I can help investigate.
Library admin responsibilities
Each library has one or more library admins who manage the staff roster through the admin console at admin.booklister.org. Library admins decide who gets an account, invite new staff, and remove staff when they leave the library. Keeping the roster current is the library's responsibility, not mine: if a staff member moves on and the library doesn't tell me or remove them through the admin console, their access continues until someone does. Library admins are also responsible for the actions of the staff they invite. If a staff member misuses the service, the library should resolve the situation (typically by removing the account), and I'll help if asked.
Data ownership for branded instances
The library owns its own configuration, branding image, and staff roster. I hold that data only to operate the instance and don't use it for any other purpose. The full inventory of what's stored is described on the Privacy page. A library admin can ask for a copy of the library's data, or its deletion, at any time by emailing me from the Contact page; I handle those requests manually and aim to respond within a reasonable timeframe.
Booklists themselves are not stored on the service today. The work staff do in the tool stays in their own browsers, the same way it does on the public tool. If I ever add cloud booklist storage as a feature, it will come with its own separate terms before any booklist content is sent to my servers.
Acceptable use
The handful of things I'm asking you not to do, whether you're using the public tool or a branded instance:
- Don't use the tool to harass, defame, or violate someone else's rights.
- Don't use it to assemble or distribute material that's unlawful where you are.
- Don't deliberately abuse the upstream services Booklister depends on (the Open Library API, cover image providers, the Apps Script endpoint behind the Magic button) by, for example, scripting the tool to send unreasonable volumes of automated requests on your behalf. Those services are free or low-cost to me because people use them reasonably, and Booklister's ability to keep using them depends on the same.
On branded library instances specifically, library admins and staff also agree not to: invite people who aren't affiliated with the library; use the admin console or any other part of the service to attempt unauthorized access to another library's data, another user's account, or the underlying infrastructure; or abuse the invite mechanism (for example by sending invites as spam or to email addresses without the recipient's expectation).
Service availability for branded instances
There's no uptime guarantee. I aim to keep instances available and responsive, but Booklister is a single-developer side project running on free or low-cost infrastructure, and outages will happen. I may take an instance offline for maintenance, security, or any other operational reason, with as much advance notice as is practical.
Suspension and termination
I reserve the right to suspend or terminate an instance, an individual account, or any access at any time if: (a) the library or one of its staff violates these terms; (b) I can no longer reasonably operate the instance; or (c) I in good faith decide it's necessary for the security, integrity, or sustainability of the service.
For individual account actions (a single staff member), I may act immediately and notify the library admin afterward. Before terminating an entire instance, I'll give the library reasonable notice and a chance to export the library's configuration and staff list, except in cases where immediate action is needed to address a security or legal issue.
Discontinuation of the program
If I decide to wind down the branded-instance program, or to discontinue Booklister as a whole, I'll give libraries at least 60 days of notice before instances go offline so admins have time to export data and transition. Notice will go to the email address on file for each library's primary contact, and a notice will also appear on the site. After the wind-down date, library configurations and staff memberships will be deleted as described on the Privacy page.
The Magic button
The Magic button is an optional feature that drafts a short description for a title using an AI service. You'll see it as a wand icon on each title in your booklist, and there's also an "Auto-draft descriptions on add" toggle on the Search tab that runs it automatically as you add titles. Whatever the AI returns is dropped into the description field for that title, and you're free to keep it, edit it, or delete it and write your own.
Where the Magic button is available
The Magic button is not available on the free public tool at booklister.org. It exists only on certain branded library instances, and even there it's off by default. A library has to specifically ask me to enable it for their instance, and I'll only turn it on if I agree to. There's no application form, no published criteria, and no appeal process. I decide which libraries get the feature, and my decision is final.
I also reserve the right to disable the Magic button at any time, for any library, for any reason. The most likely reason is cost: the underlying AI service costs me real money per request, and if usage outgrows what I can absorb as a single-person side project, I'll turn it off. Other reasons (abuse, changes to the AI provider, technical problems, anything else) are also fair game. I'll try to give a heads-up when it's practical, but I'm not promising advance notice and I'm not obligated to provide any.
Within an enabled instance, the Magic button has two modes I configure per library. In the default mode, clicking the wand kicks off a web search through the LLM service and returns a drafted description. In source-text mode, the wand only opens a paste dialog: staff have to provide their own summary text, and the LLM just condenses what they paste. Source-text mode is for libraries that want the convenience of LLM phrasing but want every description grounded in material a staff member chose. Either mode counts as "enabled" for the purposes of these terms.
Review every AI-generated description before you publish
AI-generated text can be wrong. It can confuse one title with another, invent plot points, misstate genres, get author details backward, reflect biases in the training data, or produce phrasing that's plausible but inaccurate. The Magic button is meant to save staff time on the first draft of a description, not to be the final word on what a book is about.
If you use the Magic button, you (the library staff member) are responsible for reading every description it produces and deciding whether to keep it, edit it, or replace it before you print or publish a booklist that includes it. I am not responsible for the content of AI-drafted descriptions. The library and its staff are. Treat the output the same way you'd treat a draft from a new volunteer: useful as a starting point, never published unread.
What gets sent when you use the Magic button
When you click the Magic button on a title, the title and the author of that title are sent to a Google Apps Script endpoint I operate, which forwards them to an LLM service to generate the description. Two other pieces ride along with the request:
- If you shift-click the wand and paste a summary (or you're on an instance configured in source-text mode), the text you pasted is sent so the LLM can condense it instead of doing its own web search.
- A small set of drafter tuning knobs (target word range, temperature, retry counts) is sent so the script knows how to ask for the description. These values come from the tool's own configuration; they're not tied to you or your library.
Nothing else about the title, the booklist, the library, or you as a user is sent along with the request. The Privacy page describes the data flow in more detail.
Third-party services
Booklister depends on a handful of services run by other people. The main ones are Open Library (for title search and cover images), the library catalog systems the Helper extension reads from (currently BiblioCommons; additional catalog systems may be supported over time), and Google (which hosts Firebase, runs the Apps Script behind the Magic button, and serves fonts and the Firebase SDK on branded instances). I don't control any of these. If they change their APIs, raise their prices, go down, or change their own terms, parts of Booklister may stop working or behave differently. I'm not responsible for what those third parties do, don't do, or stop doing.
No warranties
Booklister is provided "as is" and "as available." I do my best to keep it working well, but I can't promise it will always be available, always be accurate, always be free of bugs, or always meet your specific needs. I make no warranties, express or implied, about the service: not about its fitness for any particular purpose, not about uninterrupted or error-free operation, not about the accuracy of search results or AI-generated content, and not about anything else. You use it at your own discretion and risk.
Limitation of liability
To the fullest extent allowed by law, I am not liable for any indirect, incidental, special, consequential, or punitive damages that arise from your use of (or inability to use) Booklister. This includes things like lost work, lost time, missed deadlines, or any downstream impact on your library's operations. If a court ever decides I am liable for something despite that, my total liability is capped at whatever you paid to use Booklister, which is zero, because the service is free.
This isn't me being unfriendly. It's a one-person side project offered for free to anyone who finds it useful, and that arrangement only works if I'm not on the hook for consequential damages from how someone else chose to use it.
Indemnification
If someone brings a claim against me because of how you used Booklister (for example, you violated these terms, or you used the service in a way that infringed somebody else's rights), you agree to cover the reasonable costs of defending against that claim and to hold me harmless from the outcome. In plain terms: if you misuse the tool and that creates a legal problem, that problem is yours, not mine.
Changes to these terms
I may update these terms from time to time. The current version always lives at booklister.org/terms.html, with an "Effective" and "Last updated" date at the top. If you keep using Booklister after I post an update, that counts as agreeing to the new version. For changes that meaningfully affect branded library instances, I'll try to give libraries reasonable advance notice by email.
Governing law
These terms are governed by the laws of the State of California, without regard to its conflict-of-laws rules. Any dispute arising out of or related to these terms or the service will be handled in the state or federal courts located in California, and you agree to that venue.
Severability
If any part of these terms turns out to be unenforceable, the rest of the terms still apply. The unenforceable part gets read as narrowly as needed to make it enforceable, or set aside if that's not possible, and everything else stays in force.
Entire agreement
These terms, together with the Privacy policy, are the entire agreement between you and me about your use of Booklister. They replace any earlier understandings on the same subject.
Contact
Questions about these terms? Email me from the Contact page and I'll get back to you.