Candela

TechEmpower's accessible resource app. Browse free tech guides, connect with peer-support Discord, dial 211 for local help — and listen to any of it through a neural-voice audiobook engine that reads everything aloud.

Under the hood: twenty-one fiction backends side by side — Royal Road, GitHub, RSS feeds, EPUB files on your device, Outline wikis, your self-hosted Memory Palace, Project Gutenberg, AO3, Standard Ebooks, Wikipedia, Wikisource, Radio (30k+ stations), Notion (defaults to TechEmpower's resource library — Guides, Resources, About, Donate), Hacker News, arXiv, PLOS, Discord, Telegram, Palace Project, Slack, Matrix — all read aloud by an in-process neural TTS engine that runs entirely on-device. A hybrid reader/audiobook view highlights the spoken sentence in brass as you listen.

Download latest APK Source on GitHub Install guide →

Sideload, Android 8.0+, ~140 MB APK. No Play Store. No tracking. No in-app purchases.

Candela reader playing The Archmage Coefficient with the spoken sentence highlighted in brass.

Why Candela

TechEmpower Home

A dedicated TechEmpower screen ties the resource app together: free tech guides, an About panel explaining the 501(c)(3) mission, a Browse-the-library shortcut, and the two help paths — peer-support Discord and call 211 for local services. Designed for users who came for help, not for fiction.

Peer support, on-tap

Tap once to open the TechEmpower peer-support Discord — real volunteers, no chatbot. Tap to dial 211 for local United Way services. Both routes live alongside the library, never buried under a Settings menu.

On-device neural TTS

Three voice families ship — Piper (compact), Kokoro (multi-speaker), and KittenTTS (lightest tier, designed for slow devices). Voices download once, then live on-device. No cloud, no API keys, no per-character billing.

Reader view, in sync

Swipe between audiobook view (cover + scrubber + transport) and reader view (chapter text). The current sentence glides along in brass, matching the read-aloud rhythm — so you can listen, read, or both at once.

AI chat per fiction

Per-book chat across seven LLM providers, with grounding (current sentence / chapter / whole book), cross-fiction memory, function calling ("queue chapter 5", "open Voice Library"), and multi-modal image input. Brass-edged tool cards show in-flight state.

Smooth on slow hardware

Cold launch in 0.8 s on a Galaxy Tab A7 Lite (down from 6.7 s) — R8 minification, Baseline Profile, and isDebuggable=false in release builds. Tier 3 multi-engine parallel synthesis (1–8 VoxSherpa instances × N threads each, twin sliders in Settings → Performance) plus PCM cache buffering keep playback gapless.

Beautiful Notion covers

TechEmpower's Notion-backed library renders with proper page covers and brass-edged synthetic tiles for pages with body images instead of explicit covers. The fallback uses a Library Nocturne palette so even cover-less pages look intentional.

Optional cloud voices (BYOK)

Bring your own Azure key for studio-grade Azure HD voices. Offline fallback to your local voice if the network drops or your key expires. Opt-in, never required, never billed by Candela.

Accessibility-first

High-contrast brass-on-near-black theme passes WCAG AA; prefers-reduced-motion collapses fold-in animations; TalkBack pacing tuned to chapter-list patterns. Twelve a11y audit findings closed in v0.5.43.

Brass on warm dark

Library Nocturne theme — brass accents, EB Garamond chapter body, Inter UI. Light mode is parchment cream. Wear OS gets the same theme with a circular brass scrubber. Adaptive grid: phones (2 col), tablets (5), foldables (more).

Twenty-one fiction backends, side by side

A plugin-seam architecture means each backend is ~4 touchpoints. Adding a new one auto-surfaces in Settings → Plugins. Each has its own on/off toggle.

Royal Road

The full filter set — tags include/exclude, status, type, length, rating, content warnings, sort. Follows tab syncs your bookmarks.

GitHub

Curated candela-registry plus live /search/repositories. OAuth Device Flow lifts the 60→5000 req/hr cap.

RSS / Atom feeds

Any RSS or Atom feed, plus a managed suggested-feeds list from candela-feeds.

Outline

Self-hosted Outline wiki as a fiction backend. Paste your URL + API token; collections become fictions, documents become chapters.

Memory Palace

Your own self-hosted Memory Palace. Drawers become chapters; the palace becomes a personal canon.

Local EPUB

Open any folder via the system file picker. OPF parser splits EPUBs into chapters; works fully offline.

Project Gutenberg

70,000+ public-domain books. Search by author, title, or subject; download EPUB or read inline.

Archive of Our Own

Per-tag feeds and official EPUBs. Browse by fandom, ship, or trope tag.

Standard Ebooks

Hand-curated, typographically polished public-domain classics. The good edition.

Wikipedia

Any article, heading-split into chapters. Long-form articles become quick audiobooks.

Wikisource

Walks multi-part works as /Subpage chapters. Free, primary-source texts.

Radio

Five curated stations (KVMR, Cap Public, KQED, KCSB, SomaFM) plus Radio Browser search across 30,000+ stations.

Notion

Any Notion page or database — defaults to the techempower.org resource library (Guides, Resources, About, Donate). Beautiful page covers + body-image fallback render brass-edged synthetic tiles for cover-less pages.

Hacker News

Top stories + Ask HN / Show HN threads with comments narrated in order.

arXiv

Abstracts in cs.AI and other categories — let the neural voice read the cutting edge while you commute.

PLOS

Open-access, peer-reviewed science papers. Hear research instead of skimming it.

Discord

Serialized fiction in Discord channels — channels are fictions, messages are chapters. Bot-token auth.

Telegram

Public Telegram channels — invite the bot, channels become fictions, messages become chapters. Simpler shape than Discord (no threads, no servers).

Palace Project

First library-borrowing backend — OPDS catalog walker for the Palace Project's free library titles. Non-DRM titles in this PR; LCP DRM deferred.

Slack

Slack channels as fictions via the Web API. Bot-token (xoxb-…) auth. Default OFF — workspaces are private and onboarding is high-friction.

Matrix

Federated open-standard chat (matrix.org, kde.org, FOSDEM, self-hosted Synapse / Dendrite / Conduit) — rooms are fictions, messages are chapters with same-sender coalescing.

Three voice families, all on-device

Voices download on demand from the voices-v2 release; nothing is bundled in the APK. The voice picker shows what's installed and what's available. Full voice catalog →

Compact

Piper

~14–30 MB per voice

Single-speaker neural voices in dozens of languages. Quality / x-low / low / medium / high tiers per voice. Punches well above its weight on phones from 2018.

rhasspy/piper

Multi-speaker

Kokoro

~330 MB (shared across voices)

One model, many speakers — male, female, and accent variants share weights. The sweet spot for modern Android tablets. Brass-warm narration that doesn't sound robotic.

hexgrad/kokoro

Lightest

KittenTTS

~24 MB (shared, 8 en_US speakers)

The new lightest tier — designed for slow devices where Piper-high struggles. Eight en_US speakers share a single 24 MB model. The "first chapter in 10 seconds" voice family.

In-tree (storyvox · v0.5.x)

Optional cloud: Bring your own Azure HD key for studio-grade narration on slow devices. Offline fallback to your local voice if your key fails or the network drops. Opt-in, never required.

What it looks like

Galaxy Tab A7 Lite, 800×1340 px. Tap the theme toggle (top right) to flip light/dark. Full gallery →

Browse tab
Browse — infinite-scroll across every source.
Fiction detail
Fiction detail — synopsis, tags, chapter list with read state.
Library tab
Library — TechEmpower hero card on top, currently-listening with progress + smart resume below, four-tab dock {Playing · Library · Voices · Settings} anchored at the bottom.
TechEmpower Home
TechEmpower Home — peer-support Discord, dial 211, Browse the resource library, About TechEmpower (v0.5.51).
Accessibility settings
Accessibility — high contrast, reduced motion, larger touch targets, screen-reader pauses, font scale override (v0.5.43).
Royal Road filter sheet
Royal Road filters — sort, tags include/exclude, content warnings.
GitHub filter sheet
GitHub filters — stars, language, topics, last-pushed.
Settings hub
Settings — brass-edged section hub (thirteen cards, post-v0.5.42).

Open. Free. Yours.

GPL-3.0

Inherited from the TTS engine — also a posture. Read the source, modify it, ship your fork. No closed components. License →

No telemetry

Zero analytics. Zero crash reporting. Zero "anonymous usage". The app talks to the backends you opt into, the voice repo for downloads, and nothing else.

No in-app purchases

No subscriptions, no premium tier, no upsell. Azure HD is BYOK — you pay Microsoft directly if you want it. Candela doesn't take a cut.

Sideload from GitHub

Not on the Play Store yet. Grab the APK from Releases, enable "Install unknown apps" once, open the file. Three taps and you're in.

What just shipped

v0.5.51 — Luminous Quartz · six-parallel-agent bundle. TechEmpower-as-default: Library leads with a brass TechEmpower hero card, a dedicated TechEmpower Home surfaces Guides + Resources + Discord + 211; four new fiction backends — Telegram (#462), Palace Project (#502), Slack (#454), Matrix (#457); home-screen widget with Continue Listening + Play/Pause; beautiful Notion covers with body-image fallback and brass-edged synthetic tiles; AO3 auth PR1 landed. Full release notes →

Earlier in v0.5: twenty-one fiction backends behind a plugin-seam (Telegram, Palace Project, Slack, Matrix on top of the earlier Hacker News, arXiv, PLOS, Discord, Wikisource, Radio Browser additions); three voice families with KittenTTS as the lightest tier (v0.5.36); the full PCM cache series — streaming-tee, cache-hit playback, background pre-render, Settings UI, status icons (v0.5.47–v0.5.49); cold launch 6.7 s → 0.8 s on Tab A7 Lite (v0.5.46 — R8 + Baseline Profile + isDebuggable=false); twelve a11y findings closed in v0.5.43 (high-contrast brass-on-near-black + reduced-motion fold-in + TalkBack pacing); nav restructure (v0.5.40) settling at the current four-tab dock {Playing · Library · Voices · Settings}; cross-device InstantDB sync (v0.5.39+); AI heavies — cross-fiction memory (#217), function calling (#216), multi-modal image input (#215).

See the wiki for build, voice catalog, and troubleshooting reference, or how the modules fit together.