Writing is so important that I thought it deserved its own post. Unfortunately, most writers underestimate the importance of tools and workflow, thinking (with apologies to Truman Capote’s famous quip about Jack Kerouac) that typing is the same as writing. Of course you can write a great novel in emacs, or on a manual typewriter for that matter. I wrote my college thesis with WordStar on a Kaypro II (with the venerable DEC CP/M OS and 5 1/4” floppies), so I have been there. I would never go back.
Philosophically, I treat text the same way I treat photos, music and video. I want device independence and open (or broadly-accepted) file formats. I want my writing to be future proof. It sucks that I can’t access my college thesis today because I can’t read floppies, I can’t run CP/M and I can’t decode a WordStar file.
The answer to this problem, for me, is UNIX, Dropbox, and plain text. The Mac OS isn’t UNIX, but it’s running on UNIX, and it uses enough of the file system standards to give me OS comfort — I figure I’ll always be able to fire up a Linux client somewhere and mount a device. Dropbox, discussed earlier, gives me device and platform independence. I can get my files on my phone, my tablet, my PCs, and even a generic web browser. Plain text editing has moved well beyond programming and command line geeks, and tools now exist to make using plain text a better alternative than bloated old-school formats like Word.
Writing well means thinking clearly and organizing. I find outlining absolutely essential when I’m thinking about writing something, or doing a speech or presentation. I almost always scribble out a rough outline for anything longer than a couple of paragraphs.
My long-form writing workflow starts with OmniOutliner. I bang out a basic outline and refine it as much as I can, trying to figure out what I want to say in broad concepts, and in what order. Then I flesh it out a little, or throw it out and start again.
Every piece of significant writing has a narrative structure, an argument. I used to do a seminar for my teams on the art of presentations, and my main point was to get good at storytelling. And storytelling is fundamentally about structure. Beginning, middle, end. Introduction, exposition, conclusion. For me, the outline is an essential part of thinking through structure.
OmniOutliner is simple, powerful and fast. But the best thing about OmniOutliner is its connectivity. It exports to Keynote, rich text, plain text, Word, HTML and best of all, OPML. I’ll explain how I use OPML in my writing workflow in the next section.
Scrivener is the best $45 you will ever spend if you are a serious writer. Much has been written about it already, so I’ll only talk about what I do with it. It is so powerful and deep that it’s like a great programming IDE for writing. But despite its complexity and depth, it’s remarkably easy to use in a basic way. Scrivener gets out of my way and lets me engage with the page as cleanly as possible. It doesn’t feel like a “word processor” — it feels like a writing tool.
Scrivener is opinionated software. It assumes that writers want to write, not format. It assumes that writers want to work with discrete segments — chapters, scenes, sections — and potentially move them around without worrying about the rest of the document. It assumes that writers want to keep their notes and research close to but separate from their manuscript. But it also assumes writers will want to print — or at least read or export — their manuscript in a nice format with minimal effort. Since this mirrors the way I write (and I’d guess the way a lot of others write), this works well for me.
As I said before, I start with an imported outline. Scrivener converts standard OPML files from OmniOutliner into a set of files corresponding to my outline headers. It’s so great to start a potentially long and daunting writing project with a scaffolding like this. I can work on a section, move things around, keep a single idea compartmentalized. But with one click I can see the whole document any time I want. I can do research in a companion interface and quickly incorporate. It has flexible metadata capabilities. It’s fast, too.
With Scrivener’s sync capability, I can link my writing project to a folder on Dropbox, and Scrivener will then output all the distinct parts of my manuscript to the Dropbox folder as plain text files. I can edit them on literally any device — I’ve worked on sections of a book using a Chrome browser text editor in a hotel business center, or using a text editor on an iPhone. When I re-open the project in Scrivener, it syncs with the Dropbox files and incorporates all my changes. There’s a long-awaited iPad version supposedly on the way. If it materializes, it only makes this awesome tool even more awesome.
For short blog posts and longer emails, I use a standard text editor. For several years, I have been using TextMate, which I really like. I never felt the deep passionate love for it that many of my programmer friends did, but it worked fine. When I needed to make a quick text file edit in the Mac Terminal, I could fire it up from the command line with the “mate” command. However, the people behind TextMate are no longer supporting it, so I am now experimenting with Sublime Text as my new text editor. It’s ok, but again, not worthy of special praise. I still tend to prefer the old TextMate 1.5.
I’ve tried a bunch of iPad text editors. I don’t really feel strongly about any of them. Byword, iA Writer, Notesy, TextTastic, and PlainText all seem to work fine. The bigger issue for me on the iPad is text input. Despite a lot of practice, I’m not that comfortable touch typing on the iPad screen. I still prefer the tactile response and size of the standard QWERTY keyboard. I’m also conscious that in the near future this may be a bit like preferring the sound of vinyl records to mp3s — probably defensible, but irrelevant.
When I write for this blog, I write Markdown in a plain text editor. Markdown is a text formatting language that’s easy to type but which, when processed, produces nicely formatted rich text or HTML. The best thing about Markdown is that your plain text stays really readable as text, but can also take on sophisticated formatting for inclusion in a blog. It’s a major labor-saving trick with a relatively gentle learning curve. There’s a great tool for the Mac called Marked which lets you edit in Markdown on a text editor of your choosing, while seeing a formatted copy in a separate window, updated in real time. Highly recommended.
I don’t code for a living, but I’ve written a lot of code in my life and whether it’s simple scripting, a PHP web site app, Ruby on Rails, or Python, code is it’s own unique writing problem. Like with short-form writing, I’ve found that TextMate — particularly the ability to handle multi-file projects — did the job for me. I still use it for small projects. I have never used Xcode, which a lot of people seem to view as the go-to IDE on the Mac. Too complicated for my simple needs, which don’t include Objective C.
Then there is GitHub. This is an amazing workflow resource even for rank amateurs like me. For professional coders, it’s a godsend. It’s a key step in my deployment workflow for the couple of web apps I manage. It’s a great version control / code repository tool. But it’s also a wonderful educational tool, full of great examples of code that amateurs like me can learn from. Git itself is a very cool technology. If I was writing a novel or screenplay, I would try to figure out how to integrate git as a version control system for Scrivener.