Web-based, procedural family-saga narrator with TTS
Find a file
Tim e5b4f54cd8 Scaffold backend (FastAPI/uv) and frontend (SvelteKit/bun)
Backend: FastAPI app with health check, AppError hierarchy, stderr
logging via LOG_LEVEL, ruff+pyright(strict) config, pytest passing.

Frontend: SvelteKit (TS) with prettier, eslint, vitest (unit +
component), adapter-node for self-hosted deployment on Zeus.

Co-Authored-By: Claude <noreply@anthropic.com>
2026-07-17 22:12:44 +02:00
backend Scaffold backend (FastAPI/uv) and frontend (SvelteKit/bun) 2026-07-17 22:12:44 +02:00
frontend Scaffold backend (FastAPI/uv) and frontend (SvelteKit/bun) 2026-07-17 22:12:44 +02:00
spec Initial spec for Sagaphone 2026-07-17 22:04:33 +02:00
.gitignore Scaffold backend (FastAPI/uv) and frontend (SvelteKit/bun) 2026-07-17 22:12:44 +02:00
README.md Scaffold backend (FastAPI/uv) and frontend (SvelteKit/bun) 2026-07-17 22:12:44 +02:00
SPEC.md Initial spec for Sagaphone 2026-07-17 22:04:33 +02:00

Sagaphone

A web-based, procedural family-saga narrator with TTS — generates random family trees and narrates their story out loud. Intended as a "fall asleep" tool: set a timer, and it reads family sagas until time runs out.

See SPEC.md for the full spec, architecture, and design areas.

Status

Scaffolded, no features implemented yet. backend/ and frontend/ both run and have a passing test suite; actual simulation/narration/TTS logic is next.

Stack

  • Frontend: SvelteKit (frontend/) — bun
  • Backend: FastAPI (backend/) — uv
  • TTS: Piper (server-side)
  • Narration: Anthropic Haiku API (server-side)
  • Reverse proxy: Caddy
  • Deployment target: Zeus, sagaphone.orbitstack.casa

Dev

# backend
cd backend && uv sync && uv run uvicorn app.main:app --reload

# frontend
cd frontend && bun install && bun run dev

Each subproject's own README has more detail (lint/test/typecheck commands).