Search Icon, Magnifying Glass

Marmanold.com

Graduation CapHeartQuestion MarkMagnifying Glass

Archiving my Website with Workflow & Hazel

Tue, Jun 27, 2017

I really enjoy automating things using Workflow, Hazel, shell scripts, or just about anything else.

Last night I got the idea that it would be cool to have a graphical archive of each post to my website as it appeared the day it was posted. Over time I’ll have a visual history of how my website has changed and, who knows, might make a little coffee table book or something.

The automation for this is fairly simple. I took an existing Workflow I had that used the JSONFeed of my site to grab the most recent post and modified it

When Workflow has finished, I’ve got Image.png sitting in a directory in Dropbox.

Hazel takes things from here. I monitor the directory looking for new image files matching Image.png.2 When Hazel sees a file matching this pattern it trims the file of whitespace3 and uses pngcrush to compress the resulting PNG as small as we can get it.4 From there, Hazel renames the file and we’re all done.

Nothing in this automation is groundbreaking or difficult, but it was a fun little project. Without iOS being involved in the process I could have used a small daemon to monitor my JSONFeed and something like webkit2png to generate the initial image. That might be something I try in the future, but for now I really enjoy pressing the button in Workflow to kick this process all off.


  1. JSONFeed to Dropbox PNG Workflow [return]
  2. Hazel Preference Pane, Hazel Monitoring Rule [return]
  3. convert Image.png -trim Image.png Hazel Shell Syntax [return]
  4. pngcrush -brute -ow Image.png Hazel Shell Syntax [return]
Tags: #automation #workflow #cli #terminal #hazel #png #json #jsonfeed