on Workflowy and the Tao of outlining

So when I think about software that could seriously alter the way I write, one of the first examples that comes to mind is Workflowy. Now, Workflowy seems to have been designed largely as a task manager, but I’m intrigued by it because its design brings a certain degree of desirable structure to what Giles Turnbull once memorably called the big-ass text file, or BATF.

The BATF idea is simple: put all of your thoughts, ideas, plans, tasks, and drafts in one, well, big-ass text file, and then search inside of it when you need to find something. No folders, no nested hierarchical stuff, just text — though possibly fitted out with tags or other searchable metadata to make it easier to find stuff. (And then, perhaps, move something into its own file when a draft is completed. But only if you want to.) The primary virtue of the BATF is that you eliminate the time spent creating new files and deciding where to put them. You just type. So there’s less friction between the idea and the act of recording it.

(By the way, the Drafts app for iOS has a command for appending the text you type to a selected Dropbox file, which would agreeably strengthen the BATF method for people who use iPhones and iPads: just type out your thoughts and tap that command, and the text, helpfully date-stamped, is added to your BATF and will be visible when you next open it on your computer.).

It seems to me that Notational Velocity and its higher-powered clone nvALT offer a slightly more sophisticated version of the BATF idea: you don’t have just one file, but you have one window into which you type, and searching replaces sorting. I love nvALT and throw almost everything textual into it — I’m typing in it right now, though at some point I’ll probably move this over to BBEdit, just out of ancient habit.

It is the nature of the BATF and nvALT to be unstructured, which is why you might have to think about how to create relevant metadata. And there’s no really visible structure, which can sometimes be disorienting. And here’s where Workflowy comes in.

A Workflowy document is an outline: if you want to use it well you’ll need to master just a handful of keyboard shortcuts for indenting and outdenting and moving up and moving down, but once you do that you’ll be free just to type your ideas. You can, as with all other outliners that I know of, expand or collapse nodes, so you can focus better on what you want to work on. But Workflowy has a distinctive feature that I haven’t seen in another outliner: the ability to zoom in on a single node and make everything else disappear, just by clicking on a handle — and then zoom out again, just by clicking on a word or phrase.

Here’s a screenshot of a part of my Workflowy document:

This is from an in-progress outline of the book I’m working on. Here I’m working on the section of the preface to the book in which I’m identifying the book’s chief theme. Nothing else is visible on screen, except, at the top of the document, its higher levels: I can click on “Preface” to see the whole of the Preface; or on “Christian Humanism and Total War” to see the complete outline of the book; or on “Home” to see everything I’ve put into this document, which might include everything from grocery lists to upcoming travel plans. And then from that Home view I can drill down into any the document at any depth I choose. In other words, Workflowy could become, if I chose, a BATF with an adjustable-view organizational structure. Which is pretty cool.

All that said, I’m probably not going to be using Workflowy. It’s a web app, which means that my data is on somebody’s server, something I don’t like (though it does have nice export options). And I can approximate many, though not all, of its features in OmniOutliner and TaskPaper, which reside on my computer. TaskPaper is not a real outliner — more than a couple of levels of indentation and things start getting unmanageable — but its files are plain text. OmniOutliner files, by contrast, are basically OPML/XML — readable by multiple apps, but not as plain as I’d like. Plus, OmniOutliner is plagued by feature bloat that makes it hard to use well.

I’d love to see a desktop version of WorkFlowy — as far as I know, there’s nothing quite like it. There are plenty of mind-mapping apps, most notable among them being the venerable and much-loved Tinderbox, but those have never worked for me. The linearity of the outline seems to soothe my turbulent mind. A desktop zoomable outliner might stand a chance of genuinely changing the way I think and write.

the plain text gospel revisited

For some years now I have been a big believer in the Gospel of Plain Text: eschewing whenever possible word processors, and indeed anything in a proprietary file format that creates documents I might someday be unable to open — or could open only by paying a hefty upgrade feed to a software maker. Plain text files are very small and fully portable: they can be opened on any computer, and are as future-proof as anything in this vale of tears can be.

But still, I read with interest a recent post by Federico Viticci that points to the limits of a plain-text-only workflow:

I came to the conclusion that, in spite of the inner beauty of plain text, some things were better off as rich text or contained inside an app’s database. By saving links to interesting webpages as plain text URLs, I was losing the ability to easily tap on them and open them in a browser; by organizing tasks in a plain text list, I started feeling like a GTD hippie, presumptuously denying the higher appeal of tools like OmniFocus and Reminders. Plain text is great…until it’s not. It’s silly to deny the fact that, in today’s modern Web, we’re dealing with all kinds of rich content, which gets lost in the transition to plain text or hierarchical file structures (such as Dropbox); managing tasks in a text list is an elegant, old-fashioned concept that I’m sure Don Draper would have appreciated 50 years ago, but that, today, I wouldn’t choose over smart features like alarms, notifications, and location data in my todo app. I didn’t drop plain text altogether: I chose plain text for some tasks, and started using other apps for different purposes.

I get that — but I think Viticci is neglecting a really interesting development in recent writing software, what we might call enhanced plain text. (Maybe there’s an actual name for this and I just don’t know it; if so, please let me know in the comments.) For instance, I am writing this post, in plain text, in a remarkable new iPad app called Editorial. But this is what I see as I type:

In Editorial, I create plain text files but, instead of a .txt file extension, I label it as .md, for Markdown, John Gruber’s simple markup syntax. Editorial then provides appropriate syntax highlighting, as you can see from the image, and when I’m ready it will, with a single click, convert this document to nicely formatted HTML, ready for posting.

But, as when you view an HTML file in your browser (HTML files also being plain text), what changes here is merely the presentation, not the text itself. If I ever find myself trying to open this file in a text editor that doesn’t recognize the .md extension, I just have to change it to .txt and my file will be perfectly readable. So an app like Editorial gives me the simplicity and portability of plain text with structural markup that makes that text easier for me to read and use.

Similarly, when I’m on my Mac I take all my notes in an app called nvALT, in which I use plain text files only — but the app recognizes links I paste or type in and makes them clickable, and in one note I can link to another one simply by placing its title in [[double brackets, like this]] — and now that title becomes clickable: a click takes me to that note. This, along with the use of tags, enables me to keep all my research for the book I’m working on highly organized and easily accessible — a major boon for me.

Or consider TaskPaper, an app that’s far too little-known: it’s a simple but very useful task manager, which can also serve as an outliner. In TaskPaper I can keep track of projects, tasks, and sub-tasks in a hierarchical list with clickable tags; and I can create a color scheme that keeps all these elements visually distinct from one another. And yet .taskpaper files are just text files: as with .md files, I can just change the extension to .txt with no loss of data.

And then there’s LaTeX, about which I can geek out so enthusiastically that I probably shouldn’t even allow myself to get started….

Anyway, I love apps that do this: that give the structural and visual appeal we typically associate with complicated and proprietary file formats while retaining the underlying simplicity and universality of plain text. So while there may be good reasons for going beyond plain text at times, those times don’t come around as frequently as many people think. I’m gonna keep preaching that Gospel.