books-freedom Svelte Themes

Books Freedom

scan book barcode / ISBN + export/import/merge lists to/from anywhere

Book Freedom

no account. no cloud. no tracking. | scan it. shelve it. own your data.

WHY

because your reading list shouldn't live on some corpo platform that sells your habits, goes down randomly, or gets acqui-hired into oblivion.

your books, your list, your rules.

HOW

  • scan ISBN barcodes with your camera or type them in
  • auto-fetches title, author, cover, and metadata
  • organize with status (to read / reading / read), ratings, notes, tags
  • search, filter, sort your whole library
  • export anywhere: JSON, CSV, Goodreads, LibraryThing, Google Sheets
  • works offline as a PWA — install it like a native app

WHAT

a dead-simple book library app. point your camera at a barcode, get the book info, done.

everything stays on your device in localStorage. nothing leaves the browser.

STACK

svelte 5 + vite + astro (workspace). pure static clients. local storage and ISBN lookup logic.

MONOREPO

  • apps/webapp → current Book's Freedom app
  • apps/astro-site → Astro SSG site with BOOK FREEDDOM CLIENT
  • packages/library-core → shared types + list/search/sort helpers

RUN IT

pnpm install
pnpm dev:webapp
pnpm dev:astro

HTTPS DEV (LOCAL + LAN PHONE)

Generate local certs (includes localhost + detected LAN IPv4 addresses):

pnpm certs:generate

Run webapp over HTTPS:

pnpm dev:webapp:https

Open:

  • https://localhost:5173
  • https://<your-lan-ip>:5173 (phone on same Wi-Fi)

Note: phone browsers may still require trusting the local cert before camera APIs behave as secure context.

ASTRO JSON INPUT

Canonical drop-in files:

  • data/library.json (default dataset)
  • data/library.dummy.json (optional demo dataset)

The workspace auto-syncs data/library.json to:

  • apps/astro-site/src/data/library.json
  • apps/webapp/src/public/library.json

Run manually:

pnpm data:sync
pnpm data:sync:dummy
pnpm data:apply ./my-export.json

Note: Astro SSG cannot write back to repo files from the browser at runtime.
Use data:apply (or replace data/library.json) to persist edits into the drop-in folder.

Supported shape (data/library.json):

{
  "version": 1,
  "books": []
}

LICENSE

CC BY-SA 4.0 — share it, remix it, just keep it open.

COMMERCIAL

want to use our SDK or build something commercial? hit us up at info@junglestar.org

Top categories

Loading Svelte Themes