Grid and list views
Browse covers on a shelf or scan a dense list with status, category and language at a glance. A hundred books read as easily as ten.
Rafaki is a local-first personal library for Windows. Catalogue your shelves, track what you are reading, and keep every page of it on your own machine — no account, no cloud, no subscription.
Your reading at a glance.
Rafaki is built for the books already on your shelves — what you own, where it sits in your reading, and what the collection actually looks like.
Browse covers on a shelf or scan a dense list with status, category and language at a glance. A hundred books read as easily as ten.
Type the ISBN and Rafaki fills in title, author, publisher, year and cover from Google Books, falling back to Open Library when it needs to.
Mark each book Read, Reading or Unread, with an optional finished date that feeds straight into your yearly totals.
Create, colour, rename and delete your own categories — then filter the shelf down to just one of them. Six sensible starters are there on day one.
Badges and filters for English, Greek, Spanish, Italian, Chinese and Japanese, so a multilingual shelf stays legible. Adding another language is one line of config.
Find by title, author or ISBN. Narrow by status, category and language. Sort by title, author, date added or date finished.
Rafaki recognises a book you already own by ISBN — or by title and author when there is no ISBN — before it lands on the shelf twice.
Totals, reading progress, books by category and language, books finished per year, and your most recent additions — all computed locally.
Full lossless JSON for moving between machines, CSV for spreadsheets, and one-click backup and restore of the whole library.
Every theme is a full design-token set — colour, type, corner radius, borders, texture. The layout and behaviour never change; only the character does. Try them here.
248 books · 10 shown









Currently previewing Modern Minimal — clean, calm and contemporary. Neutral colours and gentle shadows. Your choice is saved locally and restored the next time the app opens.
A standard SQLite database in your Windows user-data folder. Copy it, back it up, or open it with any SQLite tool — it is your file.
There is nothing to register for and nothing being counted. Rafaki has no analytics, no crash reporting and no usage tracking of any kind.
Looking up an ISBN queries Google Books, then Open Library. That is the only request Rafaki makes, only when you ask for it, and the result is cached locally.
No dev server, no open port, no console window. Every feature except ISBN lookup works with the network unplugged — and lookup fails gracefully when it is.
# the entire library, one portable file %APPDATA%\rafaki\rafaki.db # created automatically on first launch # survives app updates # removed only when you remove it
| Activity | Leaves your machine |
|---|---|
| Your books, notes and categories | Never |
| Reading statistics | Never |
| Theme and settings | Never |
| Usage analytics | None collected |
| ISBN lookup you trigger | The ISBN only |
No Node.js, no npm, no terminal, no database server. A normal Windows installer and a normal Windows uninstall.
Grab Rafaki-Setup-1.0.0.exe — 93 MB, 64-bit, Windows 10 and 11.
Choose an install folder or accept the default. Rafaki installs for the current user, so no administrator prompt is needed.
Launch it from the Start Menu or the desktop shortcut. The local database is created on first run and you can start adding books straight away.
About the SmartScreen warning. The installer is not code-signed —
a certificate costs money that a free app does not have — so Windows may show
"Windows protected your PC" the first time you run it. Choose
More info → Run anyway. The full source is public if you would
rather build the installer yourself with npm run electron:build.
No servers to run, no ports to open, no background processes. Just a desktop app and a file.
The Electron window loads a static Next.js export over a custom app:// protocol. Nothing listens on a port and no console window appears in production.
better-sqlite3 creates and migrates the database automatically the first time you open the app. Synchronous, transactional and fast at any library size.
The renderer never touches the filesystem. It talks to a narrow, typed window.rafaki bridge, handled in the main process — context isolation intact.
Components never hardcode a colour. One [data-theme] attribute re-skins the entire app instantly, which is why six themes cost almost nothing to maintain.
%APPDATA%\rafaki\rafaki.db — a standard SQLite file. You can copy it to another machine, keep it in a backup, or inspect it with any SQLite browser.rafaki.db across. The JSON export is lossless.Download once, own it forever. No account, no cloud, no subscription.