Category Archives: Plaintext

Plaintext Productivity: Still productive after all these years

I am still using the Plaintext Productivity system that I wrote about in 2013. It is a productivity system, based primarily on plaintext files, for Microsoft Windows users. Since I published a few people have asked me to write an update to Plaintext Productivity. The fact is, the system has held up so well for me that I really don’t have any updates to report.

One reason my system remains pretty much the same as it was in 2013 is that the operating system it is based on, Windows, despite some cosmetic changes, remains pretty much the same as it was in 2013. Sure, it got a better UI when Windows 10 supplanted Windows 7 and 8, but Windows still works just as well and just as poorly. Another pillar of the system, Sublime Text, also had a design change recently, to display more crisply on high-DPI screens, but it, too, works pretty much the same as it did in 2013.

A little bit of history

I developed my Plaintext Productivity system slowly over the years, as a result of the limitations I faced on my relatively locked down work computers, and my frustration with third party productivity apps going out of business and disappearing over the years. Gradually, I stripped down my productivity system to a great text editor and a todo.txt-format task list (with a good client), with some clever ideas about using a journal for planning, and for managing files.

Because I was stuck on Windows, an operating system I did not particular like, I had to make do with built-in functionality, portable apps that I could sneak onto my system, and a universal file format: plaintext. Even this was challenging. Windows, for all it’s ubiquity, has a dearth of good third party (non-Microsoft) software for it. There is a lot of crapware in the Windows Store, several world class apps from Adobe that everyone knows about, and not that much in between. Macintosh, iOS, and to a far lesser extent, Android, have attracted the attention on small, boutique publishers and indie developers who have contributed great plaintext-based apps. Like me.

Notes and drafts

I still firmly believe in writing lots of notes and drafts to help document thoughts as well as meetings. I draft emails, write planning documents, write out procedures for work I have to repeat, and so on. I also keep a work journal every day (well, I’m not perfect about writing it every single day, but I try). At the start of each workday, I write a short journal post to plan my top activities for the day. At the end of each workday, I wrote an even shorter journal entry to help remind me where I left things, which sets me up for the next day. I set up calendar entries to remind me to do these journal entries. These activities help keep me, a person who works remotely and alone, organized, engaged with my work, and on task throughout the day.

My text editor

Sublime Text is still my favorite Windows text editor. It is even better than when I first bought it, over five years ago, and it was worth every penny. I love that it is lean, fast, flexible, and handles both my short notes and huge data files with aplomb. Its plugin system makes it a serviceable Markdown editor. I have syntax highlighting for Markdown, HTML, todo.txt, TaskPaper, and the various programming languages I use at work: ACL scripts (which I created myself), SQL, C#, VBScript, and Python (and there are far more available).

Best of all, in my opinion, are its numerous, well-defined keyboard shortcuts for shifting lines around, selecting words, selecting whole lines, deleting whole lines, and so on. Its support for multiple text selection and multiple cursors makes certain quick edits, like making a bunch of lines a bullet list in Markdown, a snap; it’s actually kind of mind blowing when you get used to it. Lastly, I=its find and replace functionality is incredibly powerful as well, considering it supports regular expressions.

I have found no compelling reason to switch it out for a newer, shiner app—which is the whole point of having a simple productivity system in the first place.

I should say, though, that I do use Editorial or Ulysses on my iPad as a sidekick text editor quite frequently. I started to do so for a non-software related reason: my work machine’s mechanical keyboard is so loud that it bothers people on conference calls, while my iPad’s keyboard—the Apple Magic Keyboard—is so quiet that my phone does not pick it up. Those iOS apps are fantastic, but they are not vital to my Plaintext Productivity system.

My task list

I still use todo.txt for my work task list. Since I wrote Plaintext Productivity, I contributed a ton of patches to my favorite Windows todo.txt app: I contributed multiple task selection and editing, and a lot of other things. I went on to write Mac and iOS todo.txt apps, SwiftoDo Desktop and SwiftoDo for iOS. I tend to use SwiftoDo for iOS most of the time, and revert to only when I don’t want to context-switch away from my PC to my iPad or iPhone. My todo.txt file is synced via Dropbox between all these apps, so it doesn’t really matter which app I use at any given moment.

Todo.txt is the best system for me because my work, and my GTD-inspired way of looking at my work, tends to present itself as a large number of tasks that get picked up, dropped, and re-prioritized frequently. I have started to dabble with TaskPaper for some of my planning needs, either in my daily work journaling, or when I have a self-directed project to plan, such as drafting a proposal or creating a software-based audit tool. TaskPaper is interesting, but I do too much sorting and filtering of tasks throughout the day for it to supplant todo.txt as my main task list system.

I don’t keep track of every task in my life in todo.txt, however. I prefer to keep my personal tasks separate from my work ones, mainly because I find having them commingled with work tasks distracts me from my work. Therefore, I keep my personal tasks in Reminders, which has had solid Siri support and cross-Apple-device syncing since 2011, and has only gotten better since then. I have changed a lot about how I managed non-work tasks since 2013, but those fall outside my Plaintext Productivity system.

Filing and searching

I still use the same filing system, too, and have been consistently happy with it. While I believe that you should rely on search rather than elaborate folder structures for finding what you need to, Windows Search still is not great. Despite its weaknesses, and the frustrations those weaknesses sometimes cause, I still get by with it.

Hardware and other things

I also wrote about hardware and other things in Plaintext Productivity. Since 2013, I have had the fortune to upgrade my keyboard to a 87-key mechanical keyboard with Cherry MX Blue switches. I really like the clicky-clacky keyboard switches and the keyboard’s smaller size, which I credit with helping eliminate repetitive stress injuries in my wrists. I also made things easier on my eyes by upgrading my display from two 1080p monitors to one, much bigger, 4K display. Crisper text has reduced eyestrain and has made me much happier, though Windows has had, and still has, awful and inconsistent high-DPI support. I don’t miss having two screens at all, actually. I can tile two to four windows on screen, and use the virtual desktop feature that premiered in Windows 10, to get most of the benefits that multiple monitors afforded me in the past.

The future of plaintext productivity

I have never used the same productivity system for so long. It has been solid and reliable for me for years now, and required no real tweaks worth mentioning when upgrading from Windows XP to Windows 7 to Windows 10. I see no obvious need to replace or upgrade my system in the near future, either. Maybe someday, when everything is in virtual reality or something—but maybe not even then.

If you are interested in streamlining your Windows workflows, and discovering a productivity system that really lasts, I encourage you to check out my Plaintext Productivity guide.

Picking a great writing font

One thing to do when you’re supposed to be writing is to fuss about your writing environment.

Not wasting time

Choosing the perfect writing font is a classic way to procrastinate—but it is not a waste of time. Fonts are important. A good font is not only highly legible, it also conveys a subliminal emotional effect on the reader. Naturally, it follows that it will also have similar effects on the writer. A good font will make you feel better while you are writing—maybe because you can read it more easily, or because you find elements of it, its curves or serifs, aesthetically pleasing. Whatever the reason, picking a font that is pleasing can have a profound effect on your writing.

What makes a good writing font?

For me, as a writer and programmer who began typing text on a computer in the 1980s, I gravitate toward monospaced fonts. Every character in a monospaced font has the same width. This is useful in programming or for data files, because, in those uses, you often want to align columns of text. It is not useful at all in typesetting books, of course; text laid out in monospace fonts looks primitive and wide-open. Primitive and wide-open, however, are perfect attributes for text that I am writing, breaking apart, moving around, and recombining. Writing in monospaced fonts is, on a subconscious level, freeing. It helps me feel like nothing in my text is set in stone.


Whether the font is monospaced or proportional is only part of what is important. Other things matter, too: the shapes of the characters; whether they have serifs or not; whether some look identical to others (l vs. 1, or O vs. 0, for example); and so on.

Beyond that, some fonts render better on screen than others. For example, Verdana and Georgia were commissioned by Microsoft specifically to be look good, clear, and legible on screens, rather than on paper. This was revolutionary at the time, as was their free-to-use licensing. Consequently, these two fonts were adopted almost everywhere on the web for a while. Georgia is still one of the eight font options in Apple’s iBooks ebook reader.

Your particular display and operating system have a lot to do with what font looks good. In general, displays are much higher resolution and much higher quality now than when Verdana and Consolas were invented. As you might expect, this means that all all scalable fonts look better on modern, high-resolution displays. Still, some fonts will look much sharper than others on some displays. For example, on my Dell 27” 4K display for my work machine, a Windows 10 laptop, Consolas looks the best for the terminal and any coding I am doing, and Sax Mono looks better for writing actual documents. These fonts don’t offer similar advantages to me on my Mac or on iOS, however. They look fine, but they really pop for me on my work machine.

My favorite writing fonts over the years

There are tons of monospaced fonts available. Here are a handful that I have used over the years, with the platform I used them on in parentheses. I recommend trying them in your text editor, especially the newer ones listed at the bottom.

  1. Monaco (Mac)
  2. Menlo (Mac)
  3. Consolas (Windows)
  4. Source Code Pro (Windows)
  5. Droid Sans Mono (Windows, Android)
  6. Sax Mono (Windows)
  7. IBM’s Plex (Mac, iOS, Windows)
  8. iA Writer Duospace (Mac, iOS)

These are listed in the order in which I have adopted them. I tend to use only a few at a time, depending on which one looks best on my hardware and software at the moment. Below, I highlight two of my favorite, very much related, fonts for writing these days: Plex and iA Writer Duospace.

IBM’s Plex

IBM released Plex, an open source font that will be used in all of IBM’s published materials going forward, in late 2017. It isn’t the only open source font that’s free for anyone to download and use, but it is a really good one. Plex Mono, its monospaced variant, looks fantastic on my iPhone, iPad, and Mac. Its edges are crisp, and the stroke has a consistent width; it looks like the lines fit just right in the pixel grid that makes up the screen.

iA Writer Duospace

The iOS development company iA took IBM’s Plex Mono and tweaked it a little bit to make it even better, in their opinion, for writing. They kept the font monospaced except for M’s and W’s. It’s a pretty simple change, but a lot of thought went into it. iA Writer’s article about this process is absolutely fascinating—I highly recommend reading the whole thing.

The resultant font, iA Writer Duospace, looks great on my MacBook Pro. I prefer Plex Mono on my iPad and iPhone, though. There is something about the wider W and M that looks different in the two platforms. It could just be that my iOS screens are a lot smaller, and width is at a greater premium. It could also just be that I prefer my letters to line up vertically, especially when my text is constrained to a narrow column.

Perfect, for now

For now, I am very happy writing in Plex and iA Writer Duo on my Apple devices. I still happily use SaxMono and Consolas on the PC for writing notes and coding, though Plex Mono is starting to creep into use for my todo.txt file and in other places. Every year or two I look for something better, but I probably won’t change from these four main fonts until I get new hardware, which could change how everything is rendered, but that is probably a long way off.

Ghost, a leaner, faster, WordPress alternative

I learned about the Ghost blogging platform today. It looks awesome, especially with its simplified feature set (just what I need, nothing else), strict adherence to Markdown for writing, well-designed multi-platform front-end applications, and so on.

Mostly, Ghost’s speed impresses me. I hate how slow WordPress (the software that powers this blog) is compared to, say, a static website or a Jeckyll blog. I love fast-loading websites, and went out of my way to create static sites for and for that very reason.

Unfortunately, I doubt I will ever use Ghost. I am very dedicated to Ulysses as a writing tool, and Ulysses does not publish directly to Ghost. It publishes directly to WordPress, which is the main reason why I use WordPress. (Sure, there are workarounds for publishing from Ulysses to Ghost, but nothing beats a one-step solution.) WordPress is also ubiquitous, making it very cheap and easy to self-host.

I could pay more for faster WordPress hosting, but, considering how few readers I have, I can’t justify the additional expense. So, for the foreseeable future, I will enjoy easy publishing to WordPress via Ulysses, extremely cheap hosting expenses, and my readers will have to wait a second or two for my blog to load. I hope nobody else minds.

Ulysses, a peerless writing tool

I love Ulysses.

This post on the Ulysses blog illustrates its value proposition. It is a minimalistic plaintext editor. It eschews common word processing features (such as rich text formatting) and some high-end “writing app” features (storyboarding, a character name generator, etc.) in favor of a stark, clean interface and generalized organizational tools (a unified library of “sheets” that can be organized in folders or with keywords).

In a way, its lack of features is its greatest feature. It focuses on the text, both from a writing standpoint and a publishing standpoint. That’s what writers should do—and want to do (really!). But writing is hard work. It requires incredible focus, and achieving and maintaining that focus is really hard. Just about anything is easier than writing most of the time. That’s why writers, famously, procrastinate. Sometimes, though, writers get into a flow state, just like software developers do, and any distraction will break that flow. App-induced distractions are particularly unwelcome. The worst offenders, ironically, tend to be features that promise to help make your writing process easier—especially if those features don’t exactly gel with what you are doing.

Ulysses gets that. Its feature set is intentionally uncomplicated and applicable to a broad base of writers. It hides some of its most powerful functionality, such as its awesome publishing features, until you actually need it. It doesn’t impose any system, workflow, or rules on you. Its simple system of sheets, folders, and keywords allows you to build your own organizational system that is specific to your projects—or, alternatively, to ignore organization until you absolutely need it. Most importantly, it puts the focus on the text, right where it needs to be.

Contexts in Getting Things Done and todo.txt

One of the great insights of the Getting Things Done (GTD) system is that tasks not only have projects, but contexts as well. A context is, basically, a thing or place or situation you need in order to do a task. Examples include: @home, @work, @phone, @computer, @errands, and so on. With projects and tasks, you can visualize your task list as a two-dimensional grid, with one row per project, and one column per context. This helps you determine what your next action should be. You can only do the tasks that are in the context you are currently in. That’s great, right?

What good is a context when I have everything at hand at all times?

Well…what I have found is that the typical set of contexts outlined in the “Getting Things Done” book are not really that useful to me. I only use my task list for work, so I’m always “@work”. I do all my work on a computer, which is portable, so I’m always “@computer”. I always have my mobile phone on me, so I’m always “@phone”. After diligently typing out these contexts in my todo.txt file and later ignoring them, for a long, long time, I realized that doing so was pointless. I only work in one context, so why bother to track it?

A foolish consistency is the hobgoblin of little minds

This was not immediately obvious to me because I was trying really hard to be a faithful GTD practitioner, and do everything that entails completely and correctly. When I realized that one of GTD’s key tools, the context, was useless to me, I felt lost. After rereading the “Getting Things Done” book, and trying even harder to commit to the system, I finally threw in the towel on contexts: I stopped using them entirely, for several years.

Doing so felt weird at first, and then liberating, like removing a little stumbling block from every task I wrote. I realized that following the system is not the important thing: getting my work done efficiently is the important thing. There was no point to keep adding contexts to tasks that did not need them.

Not using contexts in GTD

What I learned, obviously enough, is that not using contexts in GTD is fine. It doesn’t matter that it isn’t “pure” GTD. The system doesn’t matter; the results matter. If using contexts is just a minor drag on productivity, drop them and don’t give it a second thought.

Using contexts again, differently than before

After not using contexts for a few years, the nature of my work changed, and, as a consequence, I discovered new uses for them. My prior job entailed leading rather lengthy one-off audits, start to finish, with little commonality between them. My current job had me working mainly on data analytics procedures within over fifty similar audits, all performed over a several year period. Because of the highly structured nature of this work, and the tighter timeframes for producing deliverables, I sought to add more structure to my task list system. Contexts helped me do that.

The breakthrough for me was when I started using contexts to indicate phases of work (@planning, @development, @analysis, @reporting), and people I was working with (@Jo, @Susan, @Craig). These contexts had nothing to do with time, place, or equipment. Instead, they had to do with mental state (the type of thinking I had to do) and relationships with my coworkers. I am not always in the right mindset to perform a particular type of work (say, rigorous data analysis), and the people I am working with have different availability and expectations, so it is useful for me to keep track of those things in my task list.

Using projects and contexts with todo.txt

Todo.txt lets you manage your tasks using several axes: project and context, which tie directly to GTD concepts; and priority, which does not (though it is helpful to consider priority “A” your GTD “next action” indicator). While I have not come across any software that outputs your todo.txt file as a two-dimensional grid, pretty much all todo.txt apps have effective sorting and filtering capabilities. I filter and sort by todo.txt list on project and context numerous times throughout the day (mainly using SwiftoDo on my iPad), as I complete tasks and try to identify my next actions. Sorting and filtering on project and context, and diligently setting and resetting priorities, helps me stay productive and avoid letting things fall through the cracks every day.

Three ways to create nested projects in todo.txt

The todo.txt format does not support nested projects, which is something outline-based formats such as TaskPaper do very well. Fortunately, nested projects can be faked in todo.txt in a few different ways:

  1. Use two project tags, as in: write blog post +Blog +Plaintext
  2. Use one project and one context tag, as in: write blog post +Blog @Plaintext
  3. Combine the project and sub-project in the project tag, as in: write blog post +Blog-Plaintext

I have found option 3 to work best for me, for two reasons:

  1. Multiple project tags can confound todo.txt applications’ sorting and filtering algorithms. It defeats the point of having nested-projects if you can’t filter properly on them.
  2. I use contexts either for broad, overarching categories of work (@planning, @coding, @testing) or people (@Dave, @Greg, @Dom), so they are off limits for other uses.

While the todo.txt format is not the best for planning hierarchical projects, it can be done with a simple workaround. Concatenation of the project and sub-project names is the best method for me.

Comparing todo.txt and TaskPaper formats

I am a huge fan of managing my tasks using plaintext files. I mostly use todo.txt, but I have recently learned about the TaskPaper format. This is what I have learned about both formats.

Both formats

Both todo.txt and TaskPaper formats are, of course, plaintext files. You can open them in any text editor on any platform. There are several clients available on each of the major computing platforms specifically built to handle them. None of the clients controls your data or is able to lock you in. You are free to organize your task list any way you wish, and even to have multiple task list files. Both formats offer different ways to define projects and tasks, and both have some kind of tagging support, which helps in filtering tasks. You can also have multiple task list files, though most clients work with only one file at a time. Last, but not least, you are on your own when it comes to syncing your task list across systems. Dropbox is the most common third-party file sync service.


File format

Todo.txt is a simple flat-file format—just a list of tasks, in a particular format—that was initially built for command-line querying. It acts as a junk drawer that you can throw stuff into and easily get out later through sorting, filtering, and searching. It is for the sort of person who, for example, archives all their email into one folder, figuring it can be found later with search, rather than those who file every message into an elaborate folder tree. It works for me because I tend to have dozens, and sometimes hundreds, of tasks at a time, spread across a variety of projects, with only minor dependencies between them.

App ecosystem

There are many todo.txt compatible apps on all the major platforms. I created SwiftoDo (iOS) SwiftoDo Desktop (macOS), which are todo.txt apps highly focused on filtering and sorting tasks, and allowing for easy updating and reprioritizing. On Windows, is my favorite client. I sync them all via Dropbox. As long as you have a good client, like the ones I mention above, the todo.txt format is especially good for entering and managing large amounts of tasks, and rapidly reprioritizing them.


File format

The TaskPaper format is much simpler than todo.txt’s format. It is a multi-level outline that includes support for tags and notes…and that’s it. It uses tags for just about everything: project, context, priority, due date, completed status, etc.

Because it is an outline, I find that the TaskPaper format is superior to todo.txt for planning—either project planning or simple day planning in my work journal. Having different outline levels makes it easy to see how tasks are grouped, ordered, and inter-dependent.

These strengths as an outliner are weaknesses, for me at least, when it comes to working through my task list, finding my next actions, and adjusting priorities to reflect what I need to work on next. The outline and order of tasks feels fixed in TaskPaper files, and it feels somewhat unnatural to sort and filter them. It is possible to flag all of the tasks to do today with a @today tag and filter the file to show them. I prefer to work with one very short TaskPaper file for the day, containing only the few tasks I plan to do that day, and mark tasks complete as the day progresses.

App ecosystem

TaskPaper’s macOS app is, as you would expect from the creator of the file format, the gold standard TaskPaper editor. It is clean, well thought-out, and deceptively simple. It has powerful outlining and filtering features that I admire, and extensive keyboard shortcuts that cover everything.

Because I have to work on Windows, I mostly use a bastardized version of TaskPaper format in Sublime Text, using the PlainTasks plugin. Editorial on iOS is the best mobile app I have found that supports the format. It looks like the next version of Drafts will do so in the near future, as well. In my opinion, outside macOS, you are best off using a text editor for TaskPaper files.


Both todo.txt and TaskPaper are useful tools in the plaintext toolbox. I use todo.txt to manage all my tasks, but I use TaskPaper to plan new projects or to outline priorities for my workday.