← Back to home@Gishi1

calaloud

Thin-client Android reader for Calibre + FanFicFare + Kokoro TTS (Tauri v2 + Svelte 5)

Stars
0
Language
TypeScript
Created
Aug 4, 2026
Updated
Aug 6, 2026

Introduction

Calaloud

A thin client Android (Tauri v2) reader for fanfic and ebooks. It does not bundle or host any service — it only connects to three separately-run services the user already has, each with its own codebase/docker image:

ServiceRole
Calibre content serverBook library (per-user libraries), EPUB download, progress column
Kokoro TTS (OpenAI-compatible)Default narration voice
FanFicFare-as-a-serviceTurns a story URL into an EPUB

The client is a Svelte 5 UI wrapped in Tauri v2 producing an Android APK (a desktop build is optional, same UI). It keeps the reader, library shelf, narration playback, and an offline cache. All service-side logic (calibredb, FanFicFare worker, TTS model) stays out of the binary.

User experience is modeled on the Webnovel app (library/shelf UX) and Librera Reader (reader ergonomics), with Kokoro TTS as the default voice.

Docs

  • docs/spec.md — detailed design spec.
  • docs/plan.md — phased implementation plan.
  • docs/TODO.md — tracked TODO / task checklist (root TODO.md is a pointer).
  • docs/build.md — building the Android APK.
  • docs/docker-compose.services.yml — reference Compose for the three services.

Status

Working Android client (Tauri v2). Builds and installs as an APK; see docs/build.md and docs/TODO.md for what's done and what's next.

Quick facts

  • Thin client: the app only points at user-configured service endpoints in Settings (Calibre, Kokoro, FanFicFare) — nothing service-side is bundled.
  • Stack: Svelte 5 + Vite + TypeScript frontend; Tauri v2 native shell; IndexedDB offline cache; FanFicFare / Calibre / Kokoro HTTP clients.
  • Dev environment: Nix dev-shell (nix develop) provides Rust with Android targets, Android SDK + NDK + JDK 17, and cargo-tauri.