Tools of my trade

I like reading about the tools other writers use so I thought I'd write my own up. This pages list the tools I use and I'll endeavour to keep it updated.


My daily drivers are an iPhone 5s, iPad mini 4 and a MacBook Air (2015). The iPhone is for communication, quick lookups and tethering. The iPad is for reading and writing on the go. The MacBook Air is my workhorse. It's light, fast and versatile. I can't overstate how much I depend on the Mac as my preferred platform for productivity and creativity.

I also have a Mac mini, which is used as a server and for automation.

Writing - Fiction

I write most of my fiction in Scrivener and have done so since the earliest days of the program. Having Scrivener on iOS cemented my return to the Mac after two years battling Linux on the desktop. During the Linux years, I wrote the first draft of the Florentine Conspiracy in pure Markdown; I'll be importing those files into Scrivener when I return to that project.

I use, in a supporting role, Aeon Timeline and Apple Numbers.

Writing - everything else

For general documents and the content of this site, I use markdown. My choice of editor is mostly dependent on what I'm doing and what device I'm using. I use MultiMarkdown Composer, Sublime Text, Editorial, Gedit, Pluma and Vim. If I have the misfortune of writing on Microsoft Windows, I use Notepad++.

I've been a professional technical writer for nearly 15 years. In that time I've used everything from Word, InDesign to MadCap Flare. Today my toolkit is built on Asciidoctor, Git and various shell scripts I've cobbled together. This work gets done in a Linux VM because my employer won't let me use a Mac. I do all my technical writing in Gedit, which I've customised with snippets and macros.

General productivity software

iCloud is the backbone of many aspects of my productivity including notes, calendar, contacts and reminders. I can probably add basic office docs to the list too, since I prefer to use iWork over Microsoft Office.

For outlines, I don't have a fixed approach. If I'm in Scrivener I use its outlining function. If I'm brainstorming, I use Markdown, either in a text file or directly in Apple Notes (I do wish Apple Notes supported markdown).

For tasks, again, I don't have a single approach. Story related tasks are kept in Scrivener. Sometimes I use Taskpaper or iCloud Reminders. OmniFocus has piqued my interest but as with their Outliner, it's more app than I need.

My primary web browser is Safari. I only use Chrome on the rare occasions I need Flash. At work, I use Firefox. Safari is fast, elegant and is not trying to be an operating system.

For mail, I use Apple's and have done so for years. It's had its ups and downs but has improved. Email is not as important to me as it once was and so it's not worth the time or effort to me to switch to something new and shiny.

For mobile automation, I use the excellent Workflow app for iOS.

For keyboard macros, I eschewed the commercial heavy weights and built my own solution using Automator, Python and SQLite.

For file synching I use Dropbox and iCloud. iCloud has greatly improved and I'm slowly migrating a lot of my files to it from DropBox. If Scrivener supported iCloud, I'd relegate Dropbox to file sharing and collaboration for the community group I'm part of.

Graphics and cartography

My general purpose raster editor is Pixelmator. At work, I use GIMP and Inkscape.

Cartography is a shifting target at the moment, which I'll address another day.


I started out as a PHP developer long before the Composer renaissance. Today, I prefer to use Python and Bash. Bash mostly gets used for automation while I use Python for just about anything. I hate JavaScript and Ruby but I use them daily.

For coding, I prefer to use Sublime Text as my editor. I occasionally use Pythonista and Textastic on my iPad and iPhone.


My website is powered by Pelican, a static-site generator written in Python. All the content is stored in Dropbox and written in Markdown. Twice a day, I run a cronjob on my Mac mini server that builds and publishes (over SSH) the website's files to my host. There's no database to secure, no server-side code to optimise, no forms to protect from bots. I prefer it this way.

My host is DigitalOcean and I use a VPS running Ubuntu 14.04. Note this is an affiliate link. If you click it and sign up, you'll receive $10 credit, which is enough to run a basic virtual private server for two months.


I run a basic email newsletter, mostly for readers who don't use Facebook or Twitter. Instead of using a third-party service, I rolled my own solution using a simple HTML form, a PHP script to process sign up requests and a couple of workflows on my iPad to retrieve the recipient list and generate the email content from my sites's RSS feed.