A local-first personal reading tracker for managing your library, logging progress, and building a reading habit.
- Personal library — Track books with statuses (currently reading, want to read, finished), page/percent progress, ratings, and notes
- Discover books — Search Open Library and Google Books, or scan ISBN barcodes
- Reading sessions — Timed sessions with notifications to stay focused
- Goals & reminders — Set yearly reading goals and daily reminders
- Stats & recaps — Weekly charts, activity feed, and shareable reading recap images
- Import & backup — Goodreads CSV import and JSON library export/import
- iOS extras — Live Activities, home screen widget, and quick actions for fast progress updates
- Your profile — Display name, avatar, and light/dark theme
BookMarked is local-first. Your library, sessions, and stats stay on your device in a SQLite database. There is no account system or cloud sync.
The app only uses the network to look up book metadata and cover art via Open Library and the Google Books API (no API key required). Backups are JSON files you export and keep yourself.
- Flutter & Dart
- Riverpod for state management
- Drift + SQLite for local storage
- go_router for navigation
- Flutter SDK (stable channel, Dart
^3.12.0) - Xcode (iOS) or Android Studio / SDK (Android)
git clone https://github.com/KillCode2301/bookmarkedapp.git
cd bookmarkedapp
flutter pub get
flutter runAfter changing the Drift database schema, regenerate code:
dart run build_runner build --delete-conflicting-outputsflutter build apk # Android
flutter build ios # iOS (requires macOS + Xcode)Issues and pull requests are welcome. For larger changes, open an issue first to discuss what you'd like to change.
This project is licensed under the MIT License.
