Your library (bookshelves, wishlists, reading progress, notes, and settings) is stored locally on your device. We run no user accounts and keep no copy of your library on our servers. Your data leaves the device only in these cases: when you search for a book, or when covers, descriptions, and other metadata are fetched (partly automatically, for example when the app fills in series details for your books in the background), the request in question (a title, author, or ISBN, for example) is forwarded through our server at buensapps.de to the connected book databases; when you turn on the optional cloud sync, your library is written to your own iCloud or Google Drive storage, into an app-private area we have no access to; when you send a report through “Report a bug” or “Suggest a feature” (see “Feedback”); and for the AI-assisted features described below, some of which run automatically. Requests through buensapps.de produce the usual server access logs (IP address, timestamp, requested address), which we use solely to operate and secure the service.
When you switch on "ShelfBuddy in the browser" in the settings, the app creates a storage space for your library on our server (buensapps.de, hosted by Hostinger International Ltd. in an EU data centre). It holds your book lists, notes, reading times and the cover images you chose yourself, encrypted only. The key is generated on your phone and leaves it only when you connect a browser, encrypted directly to that browser. We cannot read the content.
What the server sees: a random identifier of the storage space, the size and time of uploads, the IP address and browser type when a browser is connected (so you can recognise it on your phone; the server derives an approximate place from the IP address for this, such as "Cologne, Germany", using a local database by DB-IP (db-ip.com, CC BY 4.0); the address is not passed on and is not stored together with the place), and whether the Pro upgrade is unlocked. Access logs are deleted after 14 days. A browser that has not been used for 90 days is disconnected automatically; a storage space that has not been used for a year is deleted; the app recreates it on its next sync.
There is no account: no e-mail address, no name, no password. To delete everything, switch "ShelfBuddy in the browser" off; the storage space is removed from the server immediately and every connected browser is disconnected. Processing is based on Art. 6(1)(b) GDPR (providing the feature you switched on). A data processing agreement is in place with Hostinger. The web app at app.shelfbuddy.de sets no cookies and uses no analytics; it keeps your access credentials and a copy of your library only in that browser's own storage.
If you switch "Share my ratings" on in the settings, the app sends your star ratings together with the book's ISBN to our server (buensapps.de, Germany). It sends the stars, the ISBN and a randomly generated identifier that groups your ratings; the identifier contains neither your name nor an account. As with every request to our server, your IP address is received and appears only in the server logs. If you use ShelfBuddy in a browser, the identifier can technically be associated with your connected browser.
We compute averages across all participants and show them to other readers on the book page once a book has at least three ratings. Your ratings stay stored as long as the feature is switched on; switching it off deletes them from the server. The legal basis is your consent (Art. 6(1)(a) GDPR), which you can withdraw at any time with the same switch.
Some features of the app use an AI language model, Claude by Anthropic. If Claude cannot be reached, the same request goes to Google Gemini instead. The models are reached only through our server at buensapps.de; we pass no identifier of your device and no details about you to Anthropic or Google, only the content named for each feature below. Some of these features run automatically, without you triggering them; this is stated for each one.
Importing from another app: if you import an export file from another book app and its layout is not recognised automatically, the column headings and a sample of up to 30 rows from that file are transmitted. The model labels only the structure of the file (which column holds the title, what a status word means) and supplies no book data itself; every label it returns is then checked against the file inside the app. The sample transmitted may contain entries from your collection, such as titles, authors, ratings, or reading dates.
Amazon IDs in imports: if a row of an import file holds only an Amazon ID (ASIN) and no title or author, our server asks Amazon for the title and author. If Amazon does not carry the book, it searches the web for that ID and has Claude read the title and author from the search results. Only the ASIN is transmitted.
Series detection: for books without series details, the app asks our server which series they belong to, sending the book's ISBN, title, author and language. This happens automatically when you open a book, and in the background each time the app starts, for up to 80 books of your library including the wishlist, each book only once. Our server first searches book catalogues (such as the German National Library and Open Library) and consults Claude with the title and author when they give no clear answer. When you open a series, its name, author and language are sent in the same way to determine the volumes of the series. Our server keeps the results as a general series catalogue with no link to you. For a book you mark as “Standalone”, no series is looked up any more.
When you accept or reject a series suggestion or change a book's series, the app reports this to our server with the ISBN, title, author and series, so that the catalogue improves for everyone. Corrections made on a series page (adding, moving or hiding volumes) are also reported with a random ID of your installation, so that several reports from the same installation count only once; you can turn these reports off in the settings under “Share series corrections”.
Translating descriptions: if a book's blurb is available only in a language other than your app language, the app translates it automatically as soon as it is shown. Only the text of the description is transmitted, no title and nothing about you. The translation is stored with the book in your library.
Summary in “Insights”: when you open “Insights”, Claude writes a short paragraph about your reading. For this the app sends figures computed on your device (such as reading time per month and weekday, records, reading streaks and favourite genres) and the titles of up to five recently finished books with details of how you read them; no authors, no ISBNs and no individual reading sessions. The summary is stored on your device and requested again at most once a day, when the figures have changed.
We do not retain the content transmitted for imports, translations or “Insights”, nor evaluate it in any way; it is passed on solely to answer the request at hand. Only a finished “Insights” summary is kept in our server's memory for up to seven days, so that the same figures are not sent again. Anthropic's processing is governed by its commercial terms of service, available at anthropic.com/legal/commercial-terms; Anthropic does not use content transmitted through its API to train its models and may store it for a limited period, for instance for abuse monitoring. For Google Gemini, the Gemini API terms of service apply, available at ai.google.dev/gemini-api/terms; Google may likewise store transmitted content for a limited period, for instance for abuse monitoring. You can avoid the “Another app” import; you can turn off the “Insights” summary with “Hide summary” in its menu or in the settings under “Customize Insights”, and the app then no longer requests it; for series detection and the translation of descriptions there is currently no separate switch.
When you send a report in the app through “Report a bug” or “Suggest a feature”, it goes to the feedback service Wiredash, operated by Wiredash GmbH (Germany). It carries your text, the kind of report, technical details (app version, language, operating system and its version, device model, screen size and a random installation ID), the IP address that any transfer involves and, only if you add them in the form yourself, a screenshot and your email address.
The app also sends a copy of your text to our server at buensapps.de, together with a random ID, the kind of report, language, app version and platform. The ID is not linked to you as a person. This lets us evaluate reports and show you in the app, under “My reports”, what became of yours; to do so, the app asks our server about the IDs of the reports sent from this device. Your reports also stay stored on your device until you uninstall the app.
To triage reports (kind, topic, urgency, a short summary and whether a similar report already exists) we pass the text to Claude by Anthropic (Google Gemini as a fallback); the terms named above apply. We keep the copy on our server for at most two years and then delete it automatically, or earlier on request. The legal basis is Art. 6(1)(f) GDPR; our legitimate interest is fixing bugs, improving the app and showing you the status of your report.
To support the app, we show native ads from advertising partners. These partners may process information such as device identifiers, IP address, and app/ad interaction data to serve and measure ads and prevent fraud. Please refer to their privacy policies for details.
Upon uninstallation of the app, all locally stored data is irrevocably deleted.
For questions about privacy, you can reach us at jan-henning@buensapps.de.
Status: October 2026