I Built a Manga Reader That Works on Every Platform –Here's How

작성자

카테고리:

← 피드로
DEV Community · Md Hasan Raza · 2026-07-24 개발(SW)

Md Hasan Raza

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:

  1. Detects text baked into speech bubbles and captions
  2. Translates using on-device ML
  3. 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 SDK pip 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.

원문에서 계속 ↗

코멘트

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다