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>
947 B
947 B
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).