Edmond Chang Others · 05

Android · Free

Passage

I built Passage because the EPUBs and PDFs already sitting in my Downloads folder had nowhere good to go. Every reader I tried wanted an account first, or an upload, or turned out to be a shop with a reader bolted on the side. Passage opens what is already on the phone, and does nothing else with it.

You point it at one folder. Android’s own picker hands Passage that folder and nothing else, the grant survives restarts, and the EPUBs and PDFs inside it become the list you import from — or you can pick a single file from anywhere without granting a folder at all. Passage asks for no storage permission, which is the whole point: an earlier version held all-files access so it could walk the card looking for books, and the price of finding them was handing over every file on the phone.

Underneath, a book is text rather than a document. An EPUB is unzipped and parsed on the phone; a PDF has its text pulled out page by page. That one extracted copy is what every reading mode runs on, which is the whole trick: page, continuous scroll, speed read and read aloud all track the same position, so you can be halfway down a page, switch to listening, and carry on from the same sentence — in either direction, as many times as you like.

Read aloud is the part I spent the longest on. The voice is a neural text-to-speech model that runs on the phone itself — no cloud service, no per-character billing, no connection needed. It downloads once, in the background, the first time you open the app, and can be cancelled from the settings screen if you know you will never use it. After that it never touches the network again. Speech is synthesised one sentence at a time, which is why the highlighting is exact instead of estimated: each clip of audio is the sentence lighting up.

Speed read is the other mode worth trying — one word at a time, held in place, with the letter your eye actually lands on picked out in colour. It runs from 150 to 700 words a minute and holds a fraction longer on full stops, without which sentences run into each other.

Then the smaller things. Long-press any word for a definition, from a dictionary built into the app rather than fetched from anywhere. Highlights are saved and drawn back into the text. Covers can be recoloured, retitled, or cropped to a shape you pick when a book arrives with a bad one, or none. Tags you invent become the filters on the shelf. Page numbers are per chapter, because a page number for a whole book is a fiction on a screen you can resize. Four page backgrounds, sans or serif, twelve to twenty-four point.

No account, no sync, no library to join. It reads your files, on your phone, and keeps its opinions to itself.

Your own books, read or read to you, without anything in between.

Platform
Android — React Native / Expo
Package
com.passage.reader
Price
Free, no ads, no purchases
Data collected
None