Skip to content

Repository files navigation

BookShelf

An offline-first interactive bookshelf for the Holy Qur'an and the six canonical Hadith collections (Sahih al-Bukhari, Sahih Muslim, Jami' at-Tirmidhi, Sunan Abi Dawud, Sunan an-Nasa'i, Sunan Ibn Majah).

An Open Source project by Bugsfree Studio

🌐 Web version (PWA)

https://worldbookshelf.vercel.app

⬇️ Downloads (EXE / APK)

https://github.com/bugsfreeweb/BookShelf/releases

🕌 Texts source

bugsfreeweb/islamicdata


Features

Reading

  • Page-flip reader — lightweight CSS-3D magazine page-flip with photo-backed pages, 3D corner folds, drag/swipe/arrow navigation
  • Wheel scrolling — long reading pages scroll naturally with the mouse wheel; flip pages by drag/swipe, arrows, or clicking the page edges
  • Qur'an — all 114 surahs with tajweed highlighting, 11 translation languages, recitation audio, page-flip and scrollable flow views, Juz' navigation
  • Search — instant search across every downloaded hadith (runs in a Web Worker)
  • Read-aloud (TTS) — adjustable speed with auto page-flip
  • Bookmarks & progress — persisted per book; resumes where you left off

Themes & Appearance

  • 6 color themes — Dark, Light, Sepia, Midnight, Forest, Ocean
  • Quick theme switcher on the home page for instant switching
  • Custom accent color — Gold, Blue, Green, Rose, Purple, Orange, or pick your own
  • Night reading mode — reduced brightness for comfortable low-light reading
  • Font styles — Serif, Sans-serif, or Monospace for the reader
  • Line spacing — Compact, Normal, Relaxed, or Spacious
  • Text size — adjustable from 80% to 160%

Backgrounds

  • Islamic backgrounds — free photo API by default (Wikimedia Commons, no key needed)
  • Switchable to Pixabay / Pexels / Unsplash with your own API key, or a custom URL
  • Upload your own image — stored locally in IndexedDB
  • Auto-rotation — photos change automatically at configurable intervals
  • 5 built-in patterns — Star, Arabesque, Geometric, Night, Minimal

Offline & Install

  • Full offline support — books and the Qur'an download once into IndexedDB; service worker caches the app shell
  • Smart install detection — install button appears only when the app can be installed

Platforms

Platform Method Notes
Web (PWA) Vite + vanilla JS Installable, offline via service worker
Windows Tauri 2 EXE standalone + NSIS installer + MSI
macOS Tauri 2 Universal binary (ARM + Intel)
Linux Tauri 2 AppImage + .deb
Android Capacitor 6 Signed APK

Development

npm install          # install dependencies
npm run dev          # Vite dev server → http://localhost:5173
npm run build        # production build → dist/
npm run preview      # preview production build → http://localhost:4173

Project structure

├── index.html            # Main HTML entry point
├── package.json          # Dependencies & scripts
├── vite.config.js        # Vite configuration
├── vercel.json           # Vercel deployment config
├── public/               # Static assets (icons, fonts, service worker)
│   ├── assets/           # Font files & worker JS
│   ├── icons/            # App icons (SVG + PNG)
│   ├── covers/           # Book cover images
│   ├── bg/               # Background images
│   ├── sw.js             # Service worker
│   └── manifest.webmanifest
├── src/
│   ├── main.js           # Application logic (all JS in one file)
│   └── styles.css        # All styles
└── src-tauri/            # Tauri desktop app config

Building Desktop Apps

Windows (Tauri)

npm run tauri:build

Artifacts in src-tauri/target/release/:

  • bookshelf.exe — standalone
  • bundle/nsis/bookshelf_*_x64-setup.exe — installer
  • bundle/msi/bookshelf_*_x64_en-US.msi

macOS / Linux (Tauri)

npm run tauri:build

Android (Capacitor)

npm run build
npx cap sync android
cd android && ./gradlew assembleRelease

License

Texts by bugsfreeweb/islamicdata · Translations by Google Translate · Icons by koboyo

About

An offline-first interactive bookshelf for the Holy Qur'an and Hadith collections

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages