An afternoon build: Unravelled

This morning's digest email

I use to collect links at work to read later. Every now and then I'd go in to the Inbox and read some of those things. But it's outside my normal routine, and for a while now the links have been accumulating.

What I wanted was a service that'd email me a few of the links every week, as if it was a newsletter.

A few days ago, in my holidays, I finally got around to building it, and came up with Unravelled — a script that takes the latest 8 links from a collection, sends me a newsletter email, and removes them from the collection.

This was the fastest project I've ever built from start to finish. I made a point to start with all the boring deployment bits:

  • writing a Dockerfile
  • building the Docker container in a GitLab CI script
  • getting Podman to run it via a SystemD timer

I hadn't used SystemD to actually run a container before (previously only to call start/stop), and it worked really well.

Once I had my script running, getting it to actually do what it needed to do was straightforward: calling out to the Raindrop api a few times and generating an email body. Sending emails isn't intuitive in Python, but at least it's short.

And now it's running. After a couple hiccoughs with podman, it's now reliably emailing me every week.