A modern EPUB reader with annotations, AI features, and Nostr integration. Available as both a desktop app (Electron) and web application.
- EPUB Reading: Full-featured EPUB reader with pagination and navigation
- Annotations: Highlights, notes, and AI-powered chat on selected text
- Local-First: Desktop app stores everything locally with optional Nostr publishing
- Cross-Platform: Desktop apps for macOS, Windows, and Linux
- Modern UI: Built with React, TailwindCSS, and shadcn/ui
Electron Window
↓
React Frontend (Vite)
↓
FastAPI Backend (localhost:8000)
↓
SQLite Database (~/.VibeReader/)
Browser
↓
React Frontend (Vite)
↓
FastAPI Backend (Cloud)
↓
PostgreSQL Database
Shared Code: 100% of frontend, ~95% of backend
See DEVELOPMENT.md for detailed setup instructions.
# 1. Start backend
cd backend
python3 -m venv venv && source venv/bin/activate
pip install -r requirements.txt
export VIBEREADER_DESKTOP=true
uvicorn app.main:app --reload
# 2. Start frontend
cd frontend
npm install
npm run dev
# 3. Run desktop app (optional)
cd desktop
npm install
npm run devVibeReaderTwo/
├── backend/ # FastAPI backend (Python)
│ ├── app/
│ │ ├── models/ # SQLAlchemy models
│ │ ├── routers/ # API endpoints
│ │ └── services/ # Business logic
│ └── requirements.txt
│
├── frontend/ # React frontend (TypeScript)
│ ├── src/
│ │ ├── components/ # UI components
│ │ └── services/ # API clients
│ └── package.json
│
├── desktop/ # Electron wrapper
│ ├── main.js # Main process
│ └── preload.js # IPC bridge
│
└── docs/
├── ELECTRON.md # Desktop architecture
├── MIGRATION_GUIDE.md # v1 → v2 migration
├── DEVELOPMENT.md # Dev setup
└── SPECIFICATION.md # Full spec
All documentation has been organized into a comprehensive MkDocs site:
- Getting Started: Quick start, development setup, troubleshooting
- User Guide: Features and interface documentation
- Technical: Architecture, Electron, Nostr, annotations, payments
- Development: Migration guides, implementation status, debugging
- Fixes: Bug fixes and refactoring documentation
Build and serve the documentation locally:
pip install -r docs-requirements.txt
mkdocs servev2.0 Refactor - Converting from proof-of-concept to production architecture
✅ Completed:
- FastAPI backend with SQLite/PostgreSQL support
- Database models (books, annotations, settings)
- REST API endpoints
- Electron main process setup
- API client services
🚧 In Progress:
- Frontend migration from IndexedDB to API
- Python bundling for desktop builds
- Auto-update functionality
📋 Planned:
- Nostr integration (NIP-84 for highlights)
- AI chat features (LangGraph)
- Cloud deployment (web version)
- React 19 + TypeScript
- Vite
- TailwindCSS + shadcn/ui
- epub.js
- Lucide React icons
- FastAPI (Python 3.11+)
- SQLAlchemy 2.0
- SQLite (desktop) / PostgreSQL (web)
- ebooklib (EPUB parsing)
- Electron 28+
- electron-builder
- Python embedded runtime
When backend is running, visit:
- Swagger UI: http://localhost:8000/docs
- ReDoc: http://localhost:8000/redoc
This is currently in active development. See DEVELOPMENT.md for setup instructions.
MIT
- Nostr NIPs: https://github.com/nostr-protocol/nips
- epub.js: https://github.com/futurepress/epub.js
- FastAPI: https://fastapi.tiangolo.com