I Built a Manga Reader That Works on Every Platform — Here’s How
Nyora is a free, open-source manga/manhwa/manhua reader for Android, iOS, macOS, Windows, Linux, Web, and even Docker — with AI-powered on-device translation and cross-platform sync.
The Problem
Every manga reader makes you choose:
- Free but ad-riddled (most Android readers)
- Polished but paywalled (commercial apps)
- Powerful but single-platform (Tachiyomi, Aidoku)
I wanted one library — same titles, same progress, same bookmarks — on my phone, laptop, and browser. No ads. No account required. So I built it.
What Nyora Does
Every Platform, One App
Platform Distribution Android APK (sideload) iOS/iPadOS IPA via AltStore/SideStore macOS.dmg or brew install --cask nyora
Windows
.exe (x64 + ARM64)
Linux
.deb, .rpm, or curl installer
Web
web.nyora.xyz — zero install
Docker
Single container, self-hosted
No account needed to read. Cloud sync is opt-in.
AI Translation That Understands Manga
This is the flagship feature. Instead of dumping translated text over the artwork:
- Detects text baked into speech bubbles and captions
- Translates using on-device ML
- Typesets the result back over the original artwork
Each platform uses the best local engine:
- Android: Google ML Kit + ONNX Runtime
- iOS: Apple Intelligence + Google Translate
- macOS: Apple Vision + MangaOCR CoreML
- Windows: Windows OCR
- Linux: Tesseract
There’s also an Ensemble AI Narrative Engine that tracks character names and speaking styles across chapters so translations stay consistent.
1,100+ Sources
The Android app pulls from 1,100+ manga sources via 35 generic engine templates (Madara, FoolSlide, MMRCMS, etc.). Web has ~390 live, health-checked sources. Desktop ports are growing toward parity.
Free Cloud Sync
Sync library, categories, reading history, bookmarks, and exact page progress across all six platforms. Two sign-in methods:
- Google OAuth
- Nyora Cloud (email + password, free)
Self-hostable — the backend is just Supabase/PostgreSQL with row-level security. The server stores only reading state, never page images.
Reader Features
- Paged and webtoon (continuous vertical) modes
- LTR / RTL / vertical layout
- Pinch zoom, double-page spreads
- Per-title settings (direction, layout, fit remembered per series)
- Dynamic color correction
- AMOLED true-black theme
- Material You theming
- Home screen widgets (iOS)
- App-lock with PIN or fingerprint
- Incognito mode
- Tracker integrations: AniList, MAL, Shikimori, Kitsu
Tech Stack
Component Stack Android Kotlin 2.2, Jetpack Compose, Hilt, Room, Coil 3, ML Kit iOS Swift, SwiftUI (fork of Aidoku) macOS SwiftUI + Compose Multiplatform Windows/Linux Compose Multiplatform (Kotlin) Web TypeScript SPA (100% client-side, no framework) Python SDKpip install nyora — bundled engine + TUI
JS SDK
npm install nyora-sdk — cloud-powered
Sync backend
PostgreSQL, RLS, last-write-wins
Marketing site
Astro
How It Started
Nyora began as a fork of Kotatsu on Android. I loved the data-driven source engine approach but wanted it on every platform. I forked Aidoku for iOS and started porting the source engine to Swift. Desktop came next via Compose Multiplatform. Web was a clean-room TypeScript rebuild.
The hardest part: cross-platform manga ID hashing. Every platform needed to resolve the same manga to the same UUID for sync to work. I built a stable nyoraId hash that works identically across Kotlin, Swift, TypeScript, and Python.
Try It
Web (no install): web.nyora.xyz
Native apps: GitHub Releases
Self-hosted: docker run -d -p 8080:8080 -v nyora-data:/data hasan72341/nyora
Python: pip install nyora
Discord: Join the community
What’s Next
- TestFlight builds for iOS
- Source parity across all platforms
- Refined translation quality and language coverage
- The iOS NyoraEngine port — ~1,300 source parsers to port from Kotlin to Swift
Contributing
Nyora is GPLv3 (mobile apps) and Apache-2.0 (everything else). The source engine templates are beginner-friendly and highly parallelizable. If you’ve ever wanted to contribute to open source, porting a parser is a great first PR.
Check the GitHub and Discord to get started.
Built with Kotlin, Swift, TypeScript, and the stubborn belief that manga readers shouldn’t require compromises.
답글 남기기