How yash-dhanda/manhwamaniacs works
ManhwaManiacs is a self-hosted, multi-source manga/manhwa and novel reader. The main journey is to browse or search source catalogs, open a series and chapter, then read while retaining profile-specific follows and progress; clients can also save chapters for offline use. The backend exposes the API, coordinates source connectors and persists account/library data in SQLite. The README documents OCR, novels/audio, backups, and mobile clients as additional capabilities. Sampled source is partial, so the graph shows documented subsystem boundaries without asserting unsampled internal call wiring.
Main entry points: routes API routes · main.py FastAPI app · database SQLite database · browse_service.py Browse and source services
Components 20
Reader clients
- Reader
frontend/src/app/reader/[sourceId]/[seriesKey]/[...chapterKey]/page.tsx - Library and search
frontend/src/features/library - Novel reader
frontend/src/features/novels - Offline reading
frontend/src/features/offline - Profile preferences
frontend/src/features/profiles
API and domain
- FastAPI app
backend/main.py - API routes
backend/routes - Authentication
backend/services/auth_service.py - Browse and source services
backend/services/browse_service.py - Reading services
backend/services/reader_service.py - OCR ingest and search
backend/services/ocr_ingest_service.py - Novel and audio services
backend/services/novel_service.py - Backup and restore
backend/services/backup_service.py - Novel render queue
backend/services/novel_render_queue.py
Source ingestion
- Source connectors
backend/connectors - Connector registry
backend/connectors/registry.py
Persistence and jobs
- SQLite database
backend/database - Audio render worker
tools/tts/render_worker.py
Other components
- Household reader
- External catalogs
Connections 27
- Household reader → Reader: reads chapters
- Household reader → Library and search: browses library
- Household reader → Novel reader: reads novels
- Household reader → Offline reading: saves chapters
- Library and search → FastAPI app: requests catalog
- Reader → FastAPI app: requests chapters
- Novel reader → FastAPI app: requests novels
- Offline reading → FastAPI app: downloads chapters
- Profile preferences → FastAPI app: manages profiles
- FastAPI app → API routes: dispatches requests
- API routes → Authentication: authenticates
- API routes → Browse and source services: browses sources
- API routes → Reading services: serves reading
- API routes → OCR ingest and search: handles OCR
- API routes → Novel and audio services: serves novels
- API routes → Backup and restore: handles backups
- Browse and source services → Connector registry: resolves connectors
- Connector registry → Source connectors: selects source
- Source connectors → External catalogs: fetches metadata
- Authentication → SQLite database: reads and writes
- Browse and source services → SQLite database: caches catalog
- Reading services → SQLite database: stores progress
- OCR ingest and search → SQLite database: stores OCR text
- Novel and audio services → SQLite database: stores novel state
- Backup and restore → SQLite database: backs up data
- API routes → Novel render queue: queues rendering
- Audio render worker → FastAPI app: polls and reports