A mobile-first, open source e-book reader built with React Native — format-agnostic, cloud-agnostic, and free forever.
Every mainstream e-reader locks you into something:
- Kindle locks you into Amazon's ecosystem and DRM
- Adobe Digital Editions is desktop-only and format-restrictive
- Calibre is powerful but not built for mobile reading
- Every cloud-sync reader charges a monthly subscription for storage you already pay for elsewhere
You own your books. You already pay for Google Drive, Dropbox, or S3. You shouldn't need a middleman charging you monthly to read them on your phone.
Libre Reader connects directly to whatever cloud storage you already use. No accounts beyond what you already have. No subscription. No lock-in.
Bring your own cloud:
- Google Drive
- Dropbox
- AWS S3 / compatible (Cloudflare R2, Backblaze B2)
- Local device storage
Read what you own:
- EPUB
- MOBI / AZW3
- Plain text, Markdown
| Framework | React Native (Expo) |
| State management | Redux Toolkit |
| Local storage | SQLite via expo-sqlite |
| Cloud abstraction | Pluggable provider interface |
| Navigation | React Navigation |
The core design principle is a pluggable storage interface. Each cloud provider implements the same interface:
interface StorageProvider {
listFiles(path: string): Promise<FileEntry[]>
readFile(id: string): Promise<ArrayBuffer>
writeMetadata(id: string, meta: BookMetadata): Promise<void>
}This means adding a new provider is isolated — it doesn't touch the reader, the library, or the sync logic.
SQLite is used locally for:
- Reading position persistence (per book, per device)
- Bookmark storage
- Library metadata cache (so the app works offline)
- Reading history and statistics
libre-reader/
├── app/
│ ├── providers/ # Cloud provider implementations
│ │ ├── gdrive.ts
│ │ ├── dropbox.ts
│ │ └── s3.ts
│ ├── reader/ # Format-specific rendering
│ │ ├── epub.tsx
│ │ └── pdf.tsx
│ ├── store/ # Redux state
│ ├── db/ # SQLite schema and queries
│ └── navigation/
├── app.json
└── tsScript: TypeScript throughout
Early development. Current focus:
- Expo project scaffold with TypeScript
- SQLite schema for books, positions, bookmarks
- Google Drive provider (first implementation)
- EPUB rendering (react-native-epub-creator / custom)
- Basic library UI
E-reader software should be a utility, not a subscription product. This project is built in the open so anyone can audit it, self-host, add providers, or fork it for their own needs.
Early stage — architecture decisions are still being made. Open an issue if you have thoughts on the provider interface design, format support priorities, or the SQLite schema.
MIT