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

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.

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.