One reader, six native builds.
Nyora is shipped by a single developer across six platforms — a Kotlin Android app, two Swift/SwiftUI Apple builds, three desktop targets and a no-install web app — all sharing one account and sync layer. Each case study below digs into the real architecture and the hardest problems solved on that platform.
- nyora-android
Nyora for Android
A solo-built Android manga reader whose headline feature reads any page of foreign-language comic art, runs it through a three-stage OCR-to-translation-to-AI pipeline, and re-letters the result onto the original artwork inside a 60fps zoomable reader — across a roughly 120,000-line Kotlin codebase.
- Kotlin
- Android (View system + Material Components / Material You)
- Jetpack Compose (incrementally adopted)
- Hilt (Dagger) DI
- Room
- +10
- nyora-ios
Nyora for iOS & iPadOS
A native SwiftUI manga reader for iPhone and iPad that runs the same 11,507-line JavaScript source-parser engine as its sibling apps inside a hidden web view, and typesets whole-page AI translation back over the original artwork entirely on-device.
- Swift 5.9
- SwiftUI (iOS/iPadOS 17+)
- WKWebView + JavaScriptCore (JS parser host)
- URLSession (async/await networking)
- Apple Vision (OCR)
- +6
- nyora-mac
Nyora for macOS
A native SwiftUI Mac reader that translates whole pages of Japanese, Chinese, and Korean comics on-device, while driving a headless Kotlin engine as a private background service over a local-only API.
- Swift 6 (strict concurrency, language mode v6)
- SwiftUI (macOS 15+ native front end)
- Swift Package Manager (executable target)
- Apple Vision (VNRecognizeTextRequest + RecognizeDocumentsRequest)
- Core Image (CIFilter preprocessing pipeline)
- +8
- nyora-windows
Nyora for Windows
A self-contained Windows manga reader, built from one Kotlin codebase, that ships as native installers for both Intel/AMD and ARM64 machines and translates Japanese pages in place using only the operating system's own text-recognition engine.
- Kotlin 2.1.21 (JVM)
- Compose Multiplatform for Desktop 1.8.2
- Skiko 0.9.4.2 (windows-x64 + windows-arm64)
- GraalVM JS / Truffle (shared engine)
- SQLDelight 2.1.0 (SQLite/JDBC)
- +5
- nyora-linux
Nyora for Linux
A native Linux desktop manga reader that runs a complete server-grade source engine — JavaScript parser sandbox, SQLite store, and image proxy — inside its own GUI process, packaged as a self-contained, runtime-bundled binary that installs on every major distribution with one command.
- Kotlin/JVM (2.1.x)
- Compose Multiplatform for Desktop 1.7.3
- Material 3 + custom design system
- GraalVM Polyglot (GraalJS) for JS source parsers
- SQLDelight (SQLite/JDBC)
- +6
- nyora-web
Nyora for the Web
A browser-native manga reader that runs a full web-scraping parser engine entirely on the user's device with no application backend, reaching arbitrary manga sites through a single 270-line edge proxy while staying in cross-device sync with five native apps.
- Vanilla JavaScript (ES modules, no framework)
- esbuild (code-split, content-hashed production bundle)
- Cloudflare Pages + Cloudflare Workers
- Service Worker / PWA (offline app shell)
- IndexedDB + localStorage
- +5