Your Private Family Digital Library
Read beautifully. Sync seamlessly. Own your books.
Why diRead โข Features โข Quick Start โข Screenshots โข Roadmap
Ever wanted your own private e-book library that just works?
diRead is built for families who:
- ๐ Have a personal collection of PDFs and EPUBs
- ๐ Want their reading data private โ no tracking, no ads
- ๐ฑ Read across multiple devices and want everything synced
- โจ Appreciate a clean, distraction-free reading experience
Think of it as your personal Apple Books โ but you own the server too.
| Feature | Description |
|---|---|
| PDF & EPUB Support | High-quality rendering with Syncfusion PDF Viewer |
| 6 Reading Themes | Light, Dark, Sepia, Blue, Green, Cream |
| 3 Scroll Modes | Horizontal swipe, Vertical swipe, Continuous scroll |
| Smart Navigation | Slider, Go-to-page, Table of Contents |
| Bookmarks | One-tap bookmark with visual feedback (red when active) |
| Progress Tracking | Automatic save & sync across devices |
| Offline Reading | Downloaded books work without internet |
- Your server, your data โ Self-hosted backend
- Secure authentication โ JWT tokens with refresh rotation
- Encrypted storage โ Tokens stored in secure storage
- Per-user libraries โ Each family member has private books
- No telemetry โ Zero tracking, zero analytics
Works everywhere you read:
| Platform | Status |
|---|---|
| Android | โ Ready |
| iOS | โ Ready |
| Web Browser | โ Ready |
| macOS | โ Ready |
| Windows | โ Ready |
| Linux | โ Ready |
- Flutter SDK 3.1+
- Python 3.9+
- 10 minutes of your time โ
# Clone the repository
git clone https://github.com/YOUR_USERNAME/diread.git
cd diread/backend
# Create virtual environment
python3 -m venv venv
source venv/bin/activate # Windows: venv\Scripts\activate
# Install dependencies
pip install -r requirements.txt
# Start the server
python main.py๐ Backend running at http://localhost:8000
# From project root
cd ..
flutter pub get
flutter run- Open the app
- Tap "Create Account"
- Start uploading your books!
Coming soon โ beautiful screenshots of the reading experience
Choose the theme that's easiest on your eyes:
| Theme | Background | Best For |
|---|---|---|
| โ๏ธ Light | Pure White | Bright environments |
| ๐ Dark | Deep Black | Night reading |
| ๐ Sepia | Warm Beige | Long reading sessions |
| ๐ Blue | Soft Blue | Reduced eye strain |
| ๐ฟ Green | Calm Green | Relaxed reading |
| ๐ฆ Cream | Soft Yellow | Comfortable contrast |
| Format | Max Size | Features |
|---|---|---|
| 100 MB | Full rendering, zoom, scroll modes | |
| EPUB | 100 MB | Reflowable text, TOC, custom fonts |
Automatic extraction of:
- ๐ Book title
- โ๏ธ Author name
- ๐ผ๏ธ Cover image
- Provider โ State management
- go_router โ Navigation with auth guards
- Dio โ HTTP client with token refresh
- Syncfusion โ PDF rendering
- flutter_secure_storage โ Secure token storage
- FastAPI โ Async REST API
- SQLAlchemy โ Database ORM
- PyJWT โ Authentication
- bcrypt โ Password hashing
- pypdf + ebooklib โ Metadata extraction
- PDF & EPUB reading
- 6 reading themes
- 3 scroll directions
- Bookmarks with visual feedback
- Session persistence (stay logged in)
- Splash screen
- Cross-platform support
- Offline reading
- Progress sync
- Full-text search inside books
- Highlights with notes
- Export annotations
- Reading statistics
- Family sharing
- Book collections
- Text-to-speech
- Reading goals
diread/
โโโ lib/ # Flutter app
โ โโโ core/ # Config, theme, utilities
โ โโโ data/ # Models, repositories, API
โ โโโ presentation/ # UI screens & providers
โ
โโโ backend/ # FastAPI server
โ โโโ app/ # Routes, models, services
โ โโโ main.py # Entry point
โ โโโ requirements.txt # Dependencies
โ
โโโ assets/ # Images, icons, fonts
SECRET_KEY=your-super-secret-key
DATABASE_URL=sqlite+aiosqlite:///./diread.db
MAX_FILE_SIZE_MB=100static const String apiBaseUrl = 'http://YOUR_SERVER:8000/api/v1';flutter build apk --release
# Output: build/app/outputs/flutter-apk/app-release.apkcd backend
docker build -t diread-api .
docker run -p 8000:8000 diread-apiWe welcome contributions! Here's how:
- Fork the repository
- Create your branch:
git checkout -b feature/awesome - Commit changes:
git commit -m 'Add awesome feature' - Push:
git push origin feature/awesome - Open a Pull Request
This project is designed for private/family use. See LICENSE for details.
Built with love using:
- Flutter โ Beautiful cross-platform apps
- FastAPI โ Modern Python API framework
- Syncfusion โ PDF viewer component
Made with โค๏ธ for families who love reading together
diRead โ Because your books deserve a beautiful home.
