How makinuki/makidoku works
MakiDoku is a local manga library, source-plugin host, downloader, and reader served as a single Go daemon with an embedded React UI. The main workflow is to browse or search installed sources, add titles to the library, download chapters, and read them while recording progress; progress can enqueue tracker updates. Separate branches cover source installation, backups, and settings. The README documents these capabilities, but several backend handlers and subsystems were not sampled, so uncertain internal wiring is omitted.
Main entry points: App.tsx React workspace · engine.go WASM source engine · repository.go Domain repository · queue.go Queue and workers
Components 25
Web workspace
- React workspace
web/src/App.tsx - Web API client
web/src/api.ts - Reader and progress
web/src/features/reader/ReaderPage.tsx - Progress client
web/src/features/reader/useReaderProgress.ts - Settings UI and API
web/src/features/settings/SettingsIndexPage.tsx
Daemon API
- HTTP daemon
internal/app/server.go - REST and events
internal/api/api.go - Source endpoints
internal/api/sources.go - Download endpoints
internal/api/downloader.go - Library endpoints
internal/api/library.go - Backup endpoints
internal/api/backup.go
Source plugins
- WASM source engine
internal/engine/engine.go - Plugin registry
internal/engine/registry.go - Plugin fetch and host
internal/engine/fetch.go
Library and reader
- Domain repository
internal/db/repository.go - SQLite state
internal/db/database.go
Downloads
- Queue and workers
internal/downloader/queue.go - Chapter artifacts
internal/downloader/artifact.go
Tracking and backups
- Tracker sync
internal/tracker/sync.go - Tracker providers
internal/tracker/registry.go - Backup import/export
internal/backup/export.go
Other components
- Reader / operator
- Source catalog
- Manga sources
- Tracking services
Connections 33
- Reader / operator → React workspace: uses
- React workspace → Web API client: requests
- Web API client → REST and events: calls HTTP API
- HTTP daemon → REST and events: mounts routes
- HTTP daemon → React workspace: serves UI
- Reader / operator → Source endpoints: manages sources
- Source endpoints → WASM source engine: installs and lists
- WASM source engine → Plugin registry: fetches plugins
- Plugin registry → Source catalog: reads catalog
- WASM source engine → Plugin fetch and host: runs plugins
- Plugin fetch and host → Manga sources: fetches source data
- React workspace → Library endpoints: browses library
- Library endpoints → WASM source engine: requests source data
- Library endpoints → Domain repository: reads and writes
- Domain repository → SQLite state: persists state
- React workspace → Reader and progress: opens chapters
- Reader and progress → Progress client: samples reading
- Progress client → Web API client: writes progress
- REST and events → Domain repository: records progress
- Reader / operator → Download endpoints: controls queue
- Download endpoints → Queue and workers: enqueues and controls
- Queue and workers → Domain repository: claims queue items
- Queue and workers → WASM source engine: fetches chapter pages
- Queue and workers → Chapter artifacts: writes chapters
- Reader / operator → Tracker sync: starts sync
- Tracker sync → Domain repository: claims sync jobs
- Tracker sync → Tracker providers: dispatches updates
- Tracker providers → Tracking services: calls provider API
- Reader / operator → Backup endpoints: requests backup
- Backup endpoints → Backup import/export: imports and exports
- Backup import/export → SQLite state: stores backup data
- Reader / operator → Settings UI and API: changes preferences
- Settings UI and API → Web API client: saves settings