Foundry Vox is a macOS desktop app for local text-to-speech generation, built from PRD.md.
The current app uses a hybrid desktop architecture:
- Tauri/Rust is the native app shell and primary app-facing API boundary
- React/Vite renders the interface
- Python/FastAPI remains the internal ML engine sidecar for TADA inference
The frontend no longer behaves like a generic localhost web client. Core app state, generation, clone uploads, export, setup actions, and progress updates are routed through Tauri commands.
frontend: React + Vite desktop UIbackend: FastAPI backend, SQLite persistence, TADA engine integrationsrc-tauri: native macOS shell, sidecar bundling, App Store configdocs/release.md: release and App Store notesdocs/app-store-runbook.md: canonical App Store submission runbook and pass/fail gatedocs/app-store-rejection-map.md: reusable App Store rejection guide for future appsdocs/app-store-preflight-foundry-vox.md: Foundry Vox-specific App Store submission checklistdocs/public-links.md: current privacy/support URL targets and source pages
npm run build:webuv run --project backend --python 3.12 ruff check backend/app tests/backenduv run --project backend --python 3.12 python -m pytest tests/backendnpx tauri build --bundles appnpx tauri build --bundles app --config src-tauri/tauri.appstore.conf.json
- macOS bundle:
src-tauri/target/release/bundle/macos/Foundry Vox.app - Sidecar binary:
src-tauri/binaries/foundry-vox-backend-aarch64-apple-darwin
- Foundry Vox now prefers local model assets before attempting remote Hugging Face access.
- On macOS, the app stores its working data under
~/Library/Application Support/Foundry Vox. - The model cache directory is
~/Library/Application Support/Foundry Vox/modelsin dev, and the packaged app exposes the same models folder through the in-app setup card.
- The checked-in preset WAV files are development placeholders generated locally. Replace them with rights-reviewed production references before App Store submission.
- The backend runtime is currently pinned to Python 3.11 or 3.12 because the current
pydubstack is not ready for Python 3.13. - Actual App Store submission still requires your Apple signing identity, provisioning profile, and notarization credentials.