Skip to main content
[MANGA_LN_READER]
[SWIFTUI]
[OPEN_SOURCE]

Mango

> Mango.read(yourFiles, inPlace: true)

A manga, comic and light novel reader for iPhone and iPad, for people who already have a library. It reads your files where they live \u2014 in Files, iCloud Drive, or straight off your NAS \u2014 never copies, moves or renames a single one of them unless you ask, and never asks you for money.

// Your manga. Your novels. Your files. No tip jar.

Mango reader on iPhone
[FULL_BLEED]

[PROJECT_METRICS]

[FILES_COPIED]
0
[TO_OPEN_328MB]
79ms
[NAS_PAGE_STREAMING]
SMB
[MANGA_BY_DEFAULT]
RTL
[OPEN_SOURCE]
GPL-3.0

[WHY_MANGO]

Most comic readers want to own your library: import it, duplicate it into their own sandbox, then charge you to see it in two columns. Mango does none of that.

You pick a folder. Mango keeps a security-scoped bookmark and reads in place. Your library stays exactly where you put it, so the same files still work in Files, on your NAS, and in every other app.

The NAS part is the interesting bit. A .cbz is a zip, and a zip keeps its index at the end of the file \u2014 so with ranged reads you can open a 330MB volume by fetching about four kilobytes, then pull one page at a time as you read. Reading off the NAS is not a download queue with a progress bar in front of it. It just opens.

[FEATURES]

[READS_FILES_IN_PLACE]

Point Mango at a folder in Files, iCloud Drive, or another app. Nothing is copied, moved, or renamed. Delete the app and your library is exactly where you left it.

[OPENS_A_300MB_VOLUME_INSTANTLY]

A .cbz is a zip, and a zip keeps its index at the end. Mango fetches a few kilobytes to find the pages, then pulls one page at a time as you read. Measured: 79ms to open 328MB over SMB.

[YOUR_NAS_IS_THE_SHELF]

Add an SMB share and the whole library appears. No download queue in front of it — remote volumes just open, and you can pull one local when you want it offline.

[RIGHT_TO_LEFT_BY_DEFAULT]

It is a manga reader, so pages turn the manga way. Per-series and per-book overrides for the western trades sitting in the same folder.

[SPREADS_LIKE_A_PRINTED_BOOK]

In landscape the cover stands alone and pages pair 2-3, 4-5. A real double-page spread is detected and given the whole screen instead of being sliced down the middle.

[WEBTOON_SCROLL]

Continuous vertical scrolling with no gaps between pages, for long-strip releases that were never meant to be paginated.

[READS_THE_FILENAMES_YOU_ACTUALLY_HAVE]

v01, Vol. 3, c012.5, #45, bracket tags, release groups. A folder is parsed as a set, so a bare “027” sitting next to v01-v05 and c020-c026 is understood as chapter 27, not volume 27.

[COVERS_WITHOUT_ASKING]

Page one of every volume becomes its cover in the background — 35 covers off a real NAS share in nine seconds, each one an index read plus a single page.

[KNOWS_WHAT_IS_NEXT]

Volumes land on one shelf in reading order, and the Continue button opens the one you are actually up to, not the first one in the list.

[FULL_BLEED]

Pages run edge to edge under everything. The chrome is two floating glass capsules that fade themselves out while you read.

[LIGHT_NOVELS_TOO]

An EPUB is an archive with an index, same as a .cbz — so .epub files land under a Novels tab with chapters and text size, streamed off the NAS a chapter at a time. Manga and novels stay on separate shelves even for the same series.

[DOWNLOADS_DEDUPLICATE]

Pull a volume local and it replaces the copy on the share rather than appearing twice — and it takes your reading position with it.

[IPHONE_AND_IPAD]

Built for both. The iPad is where spreads earn their keep — a full two-page layout at reading size.

[NO_TIP_JAR]

No accounts, no analytics, no ads, no donation screens, no catalog selling you anything. Free and open source, forever.

[SCREENSHOTS]

[TECH_STACK]

[SWIFTUI]
[IOS_26]
[IPADOS]
[IMAGEIO]
[PDFKIT]
[WEBKIT]
[SWIFT_CHARTS]
[AMSMB2_(SMB)]
[GPL-3.0]

// Archives: a zip reader built on ranged reads (ZIP64 + deflate), so local files and SMB take the same path.

// Pages: decoded straight to screen size via ImageIO, prefetched a few ahead, capped and evicted under memory pressure.

// No .cbr: RAR's only decoder is non-free and cannot ship in a GPL-3 app. Convert them to .cbz.