Drafts, Shortcuts, Scriptable, and Working Copy – A Workflow Story, Part 3

In this series:

When I titled this series Drafts, Shortcuts, and Scriptable – A Workflow Story, I made a major faux pas by omitting an incredibly key piece of my blog post publishing puzzle, and that’s the incredible app Working Copy from Anders Borum. Maybe it’s because I’m stupid and simply forgot to credit the guy who created one of my most indispensable pieces of software1, or maybe it’s because while Working Copy is indeed part of my workflow story, you could also title anything I write about it a love story as well, because I truly love that app. Anders is a man who really gets the iPad, and he’s one of the few still making apps for getting real programming-related work done on the iPad.

Not that I’m bitter, but damn.

Working Copy plays a key role for me in my blog post publishing and podcast publishing workflows because I use a private GitHub repo for my site and Vic and I use private a private GitHub repo for the BubbleSort site (as well as pretty much everything on our respective servers). But it’s not just that we want our repos to match what goes up on the site to keep them in sync – the repos ARE what goes up on our sites.

At one point, Vic and I were keeping the files on our various sites and the files in our git repos synchronized manually. Let’s just say lots of mistakes were made. Finally Vic insisted on a GitHub repo push to site workflow, and we made it happen with GitHub Actions and self-hosted runners.

Ok, great: we update a repo main branch, and the associated site gets updated (and re-compiled too, since everything is based on the Hugo static site generator). Hooray for us, right? In fact, it’s actually better than that, because this workflow also greatly simplifies my iPad publishing workflows.

Working Copy has excellent Shortcuts support. I can use a shortcut to grab the contents of my blog post draft as well as the associated images located in iCloud Drive/Shortcuts/Drafts/images (see my previous post on this topic), do a bunch of tweaking of text to suit Hugo and prepare it all for publishing, and then simply update my site repo in Working Copy and push the changes to GitHub. Bam. Thanks to GitHub actions, this is all that’s needed to update the site itself.

In the old days, my publishing shortcut also had to upload files to servers and wait for that to happen and hope nothing timed out or otherwise failed to upload. As much as I love Shortcuts and am thankful that Apple continues to invest in it, any layers of complexity you can remove from a shortcut just makes it that much more robust, especially when it comes to doing anything that requires time or uploading anything anywhere.

Working Copy Shortcuts Actions

The bottom line to all this setup before I finally start showing you the actual puzzle pieces is:

  • I write my blog posts in Drafts,
  • Drafts can’t show me a photo picker UI, and I want one, so I use Shortcuts for inserting image links into blog post drafts,
  • I use a shortcut to publish blog posts which grabs the draft content and any associated images, does any text and formatting tweaks I need for Hugo site compilation on the server, and then commits it to my site git repository using Working Copy’s shortcuts actions,
  • Working Copy is integral to my iPad publishing workflow because my site gets updated on the server (which then recompiles the site) when I push committed changes in the main branch of my repository to GitHub.

Next time I’ll go into some detail on my blog post publishing shortcut, and then following that I’ll get into where I think my workflow will ultimately go given coming changes to both iOS Shortcuts and Drafts itself.


  1. That’s actually 100% the reason, I’m ashamed to admit. 🤦‍♂️ ↩︎