Join Nostr
2026-08-28 20:04:26 UTC

Voca on Nostr: Voca 1.1.0 is out: the private listen-later reader now keeps its home-screen widget ...

Voca 1.1.0 is out: the private listen-later reader now keeps its home-screen widget in step through rapid short sentences, long documents, manual scrolling, resizing, process restarts and app upgrades.

Give Voca an article, web page, PDF, Markdown file or Nostr note and it reads it aloud in your phone's configured voice. The page follows by sentence and word, while your documents, position and bookmarks stay on the device.

This release also cuts background work during speech and prevents one document's timing measurements from carrying into the next.

Designed for GrapheneOS. Runs on Android 10 and newer. Free software under MIT.

Repository: https://gitworkshop.dev/npub17h9fn2ny0lycg7kmvxmw6gqdnv2epya9h9excnjw9wvml87nyw8sqy3hpu/voca

Full release story:

Voca 1.1: keep reading without stopping to read

Update to Voca 1.1 and the reader on your home screen keeps pace even when the writing moves quickly. Short sentences no longer leave the widget behind, long documents take less work to follow, and returning from a manual scroll feels dependable. It is a quieter release than a redesign, but it improves the part of Voca you can leave running for hours.

Voca is a private listen-later reader for Android. Give it an article, a web page, a PDF, a Markdown file or a Nostr note and it reads the words aloud in the voice already configured on your phone. Subscribe to RSS, Atom or Nostr authors and their writing becomes a listening queue. The page follows the voice, the current sentence and word light up, and your documents, positions and bookmarks stay on the device.

That experience should not require holding the phone. Voca's home-screen widget carries the whole document in a small reader of its own: you can watch it follow along, move through the text yourself, or tap any line to start there. The widget is the glanceable surface for a listening session—the place where the text remains visible while the full app stays out of the way.

There was one rhythm it did not handle well. Every sentence asked the launcher to settle before scrolling. When several short sentences arrived faster than that delay, each request replaced the previous one and restarted the clock. The words kept moving, but the widget could keep waiting for a quiet moment that never came.

Voca 1.1 changes the rule. Each widget gets one bounded settling window and remembers the newest spoken row while it waits. Fast updates collapse into one current destination without moving the deadline. The result is simple from the outside: the widget keeps up.

The same idea runs through the rest of the release—do less work, at the right time. Voca now finds the spoken row without walking the entire document. It keeps separate cached layouts for differently sized widgets, so one widget does not make another rebuild its view. Large documents are prepared away from the main refresh path, and viewport measurements are reused until the document or the widget's real geometry changes.

Following is more resilient too. Scroll position and row measurements survive an ordinary process restart, but they are now versioned so an app update cannot mistake an old layout for the new one. Resize the widget and it measures again. Scroll away by hand and Follow brings the spoken line back. Leave everything unchanged and the cached path stays cheap.

Speech itself now causes less incidental work. Word progress no longer rebuilds queue identity or crosses into the launcher when nothing visible in the widget changed. Replacing a document also clears the previous item's timing seam before the new one begins, keeping each listening session's measurements its own.

Voca is designed for GrapheneOS: local-first, account-free, built around the system speech service, and useful when the network is gone. It also runs on Android 10 and newer. Version 1.1 makes that private reader easier to trust from the first sentence of a note to the last page of a book—especially when the phone is in your pocket and the widget is the only page you need to see.