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.
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 →
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.
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.
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.
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 →
{Playing · Library · Voices · Settings} anchored at the bottom.
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.