Adding a book

Tap the + button at the bottom of the screen. You have three ways to add a book:

  • Scan barcode — point your camera at the barcode on the back of the book. Margins reads the ISBN automatically the moment it's in frame; there's nothing to confirm. You'll need to grant camera permission the first time.
  • Look up by ISBN — type the ISBN in yourself (handy if the barcode is damaged or you're adding from a listing online) and tap Find.
  • Add manually — skip lookup entirely and fill in the details yourself. Good for books that aren't in either online catalog, proofs, or anything without a barcode.
Tip

Scanning and ISBN lookup both need an internet connection, since they fetch the title, author, page count, and cover from Open Library or Google Books. If the lookup can't find a match, you're offered an Add it manually button instead of being stuck.

The book entry form

Whichever route you take, you land on the same form to confirm or fill in:

Field Notes
Cover Tap it to replace with a photo from your device. Any cover found online is downloaded and stored on your device, so it won't disappear later if the source changes.
Title Required.
Author  
Series Optional.
Total pages  
Status Want / Reading / Read — a three-way toggle.

Saving fills in sensible dates automatically: date added is today, date started is today unless it's on your Want list, and if you mark it Read right away, the finish date and current page are set for you too. You can always adjust any of this later from the book's detail page.

Your library

Four tabs sit along the bottom of the app, and you can swipe left and right between them:

  • Reading — books you've marked Reading, as cards with a progress bar (current page / total, and percentage), most recently started first.
  • Shelf — finished books, shown as a grid of covers with the year you finished each one and your star rating, most recently finished first.
  • Stats — see Stats & reading goals below.
  • List — your "want to read" pile, as a simple list, most recently added first.

Tap any book anywhere in the app to open its detail page.

Book details

This is where the actual day-to-day use happens. From here you can:

  • Log reading progress — while a book is marked Reading, a slider and quick +1 / −1 / +10 / −10 buttons let you update your current page in a couple of taps. There's also a Restart button if you want to reset back to page 0.
  • Rate it — tap the stars for a rating out of 5, in half-star steps. Tap the same rating again to clear it.
  • Change status — move a book between Want / Reading / Read at any time.
  • Mark as finished — a one-tap shortcut (shown while Reading) that sets the status to Read, records today as the finish date, and logs your final page — with a confirmation prompt first.
  • Edit dates, pages, and series — start/finish dates use the normal Android date picker.
  • Write notes — a free-text field for your own thoughts.
  • Save favorite quotes — a separate free-text field, kept apart from notes so the two don't get mixed together.
  • Refetch cover & details — if the book has an ISBN, this re-runs the online lookup to refresh the cover or fill in anything missing, using whatever source and region you've set in Settings.
  • Change the cover — tap it to pick a different photo at any time.
  • Remove the book — deletes it from your library, with a confirmation prompt ("this can't be undone").

Once a book is marked Read, the progress slider is replaced with a simple "✓ Completed" line, so there's nothing left to accidentally bump out of place.

Statistics & reading goals

  • Yearly goal — set a target number of books for the calendar year; a progress ring shows how close you are, with a small celebration once you hit it. You can change your goal whenever you like.
  • Totals — all-time books read, and books read this year.
  • Reading activity — once you've logged some progress, you'll see total pages logged, days active, a GitHub-style heatmap of your daily reading over the last year, and a bar chart of pages read per week over the last 13 weeks.
  • Read recently — a filterable list of finished books (last 3/6/12/24 months, all time, or by a specific year), with the total book and page count for whichever window you pick.

Reading reminders

Turn this on in Settings and Margins checks in once a day, around 7:00 PM. It only sends a notification if you have a book marked Reading and haven't logged any progress yet that day — otherwise it stays quiet. The message adapts to how long it's been:

  • If you read yesterday: "You read N pages yesterday. Can you read more today?"
  • If it's been longer: "It's N days since you registered any reading. Read a book today!"

On newer versions of Android, you'll be asked to allow notifications the first time you turn this on. Turning the toggle off cancels it entirely.

Appearance & themes

Four palettes are available, each with its own light and dark mode (the theme and the light/dark switch are independent, so you can pair any theme with either mode):

Theme Feel
Classic parchment Warm paper, oxblood and gold — the original look.
Fjord Glacier blue and brass, with a rune-inspired display font for titles.
Marginalia Bone white with an editorial vermillion accent.
Field notes Sage, ink, and terracotta — a botanical field-journal feel.

Star ratings always stay gold, no matter which theme you're using.

Backup & restore

Everything lives on your device, so it's worth backing up from time to time — especially before switching phones.

  • Export library — saves a single JSON file with every book's full details (including your notes, quotes, ratings, and complete reading-progress history) and the covers themselves, so restoring on a new device brings your covers back too, not just links to them. Your Google Books API key is never included in an export, for your own security.
  • Import from backup — merges a backup file into your current library: matching books are updated, new ones are added, and nothing already there is deleted.
  • Replace entire library (in the danger zone) — wipes your current library completely, then imports the file you choose. Use this to restore a known-good backup from scratch. The order is: pick a file → Margins reads and checks it → only once that succeeds does it delete your current library and import the new one. A corrupted or unreadable file is rejected before anything is deleted, so it can't leave you with an empty library.
Before you do a full replace

Once a valid file is loaded, this permanently deletes everything currently in the app before importing it — that part genuinely can't be undone. Export a current backup beforehand if you're at all unsure.

How cover metadata works

When you scan or type in an ISBN, Margins checks two free catalogs to fill in the title, author, page count, and cover: Open Library and Google Books. You can control this from Settings.

Choosing a source

The Cover & metadata source dropdown picks which catalog is tried first. Whichever one you don't pick is still tried automatically if the first one comes back empty — so there's no separate "auto" option; that fallback always happens.

Choosing a region

Every ISBN encodes the country its edition was registered in — except for English-language books, where the same numbering is shared across the US, UK, Australia, Canada, and New Zealand, so it's genuinely ambiguous which cover to prefer. That's what the Google Books region dropdown is for: it only comes into play for English-language ISBNs, letting you choose which edition's cover you'd rather see. For every other language, the correct country is detected automatically from the ISBN itself, and this setting has no effect.

Why a cover is sometimes missing rather than wrong

Open Library occasionally only has a cover attached to a different printing of a book, not the specific edition your ISBN identifies. Margins deliberately does not use that mismatched cover — it would rather show no cover (which you can replace with your own photo) than a confidently wrong one. If that happens, try switching the source to Google Books in Settings and using "Refetch cover & details" on the book's page, since Google's results are matched to your exact edition.

Setting up a Google Books API key

Margins works out of the box with no setup — Open Library needs no key at all, and Google Books allows a small number of anonymous lookups shared across everyone using the app without one. That shared quota can run out or get temporarily flaky at busy times, though, so if you plan to add a lot of books, a free key of your own is worth the five minutes it takes.

  1. Go to console.cloud.google.com and create (or select) a project.
  2. Open APIs & Services → Library, search for "Books API", and enable it.
  3. Go to APIs & Services → Credentials → Create credentials → API key. Copy the key it gives you.
  4. Paste it into Settings → Google Books API key in Margins and tap Save.
  5. Tap Test key right below the field — it looks up a fixed, well-known book to confirm the key actually works, and tells you plainly if something's wrong, rather than leaving you to guess from whether a lookup happened to succeed.

Restricting your key (recommended)

An unrestricted API key will work for anyone who gets hold of it, so Google lets you lock it to a specific app. You don't need Android Studio, a computer, or any developer tools for this — just two values, both fixed for every copy of Margins downloaded from the Play Store:

Package name com.miroda.margins
SHA-1 fingerprint REPLACE_WITH_PLAY_SIGNING_SHA1

Every phone that installs Margins from the Play Store gets the exact same signed app, so this SHA-1 is the same for you as it is for every other reader of this page — just copy it in.

  1. In the Cloud Console, open your key's settings and set Application restrictions to Android apps.
  2. Click Add package name and fingerprint.
  3. Enter the package name and SHA-1 fingerprint from the table above.
  4. Save.

Troubleshooting & FAQ

The wrong cover shows up

See how lookup works above — for English-language books, try setting your Google Books region to match the edition you own. If a cover still looks wrong, tap the cover on the book's detail page and replace it with your own photo; that always takes priority.

No cover appears at all

Some editions simply don't have a cover uploaded to either catalog. Margins would rather leave it blank than guess with a mismatched one — replace it with a photo of your own copy from the book's detail page.

My Google Books key isn't working

Use the Test key button in Settings — it shows Google's actual error message rather than a generic failure, which usually tells you exactly what's wrong: an invalid key, the Books API not being enabled on your project, or (if you've restricted it) trying to test it somewhere other than the real app.

A lookup found nothing

Some books, especially small-press or self-published titles, aren't listed in either catalog. Use Add it manually from the lookup screen.

Reminders aren't showing up

Check that notification permission is granted to Margins in your phone's system settings, and that you don't already have a book logged for the day — the reminder deliberately stays silent once you've logged progress.

Moving to a new phone

Export a backup on your old device, install Margins on the new one, and use Import from backup (or Replace entire library if it's a brand-new install). Covers are embedded in the backup file itself, so they'll come across too.