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](SPEC.md) for the full spec, architecture, and design areas.
|
|
|
|
|
|
|
|
|
|
## Status
|
|
|
|
|
|
2026-07-17 22:12:44 +02:00
|
|
|
Scaffolded, no features implemented yet. `backend/` and `frontend/` both run
|
|
|
|
|
and have a passing test suite; actual simulation/narration/TTS logic is next.
|
2026-07-17 22:04:33 +02:00
|
|
|
|
2026-07-17 22:12:44 +02:00
|
|
|
## Stack
|
2026-07-17 22:04:33 +02:00
|
|
|
|
2026-07-17 22:12:44 +02:00
|
|
|
- Frontend: SvelteKit (`frontend/`) — `bun`
|
|
|
|
|
- Backend: FastAPI (`backend/`) — `uv`
|
2026-07-17 22:04:33 +02:00
|
|
|
- TTS: Piper (server-side)
|
|
|
|
|
- Narration: Anthropic Haiku API (server-side)
|
|
|
|
|
- Reverse proxy: Caddy
|
|
|
|
|
- Deployment target: Zeus, `sagaphone.orbitstack.casa`
|
2026-07-17 22:12:44 +02:00
|
|
|
|
|
|
|
|
## Dev
|
|
|
|
|
|
|
|
|
|
```bash
|
|
|
|
|
# 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).
|