I wanted to wake up to something better than a phone alarm: chant, a short saint or scripture quote, and the day's readings, put together fresh each morning.
Back to all projects
[ Case study ]
Surge
A self-hosted morning alarm app that builds a new audio playlist every day from Gregorian chant, a spoken quote, and the day's Mass readings.
- Role
- Solo project
- Runs on
- Mac Mini M1, at home
- Stack
- Python, Flask, launchd
- Status
- Playlist engine in progress
The idea
How it works
- Flask backend running as a background service on a Mac Mini through launchd, so it starts on boot and restarts if it crashes
- Playlist engine that strings together chant, then a quote read aloud with ElevenLabs text-to-speech, then more chant
- Daily readings pulled from the USCCB's RSS feed
- Secrets kept out of the code in an environment file loaded with python-dotenv
- A custom interface in blue and gold with classical typefaces to match the purpose
What it shows
This is the same pattern I'd use for any small internal tool: a service that runs unattended, pulls from outside APIs, keeps credentials out of the code, and recovers on its own.