Brett Terpstra's Writer Workflow

I think it's appropriate to start this series with someone that makes and shares some of my favorite Mac things. I conceived this series with Brett in mind.

Brett Terpstra is the creator of Marked, a partner in the development of NVAlt and the proprietor of, where he shares things like TextExpander snippets, Lorem Ipsum generators and super-power AppleScripts.



What are the applications you use for making a post to

I write in Markdown, so I can easily port my work between platforms and applications. I use various combinations of apps depending on the circumstances: nvALT, Byword, MultiMarkdown Composer, Scrivener, TextMate with the Blogging and Blogsmith bundles and my Markdown QuickTags plugin for WordPress.

For brainstorming and structuring I use mind mapping, where my favorite apps are MindMeister (web, iPhone, iPad), MindManager and MindNode. I can export any of those to a text outline in nvALT or directly to an editor for expansion.

Can you give an overview of your workflow starting from the initial idea through the posting to the site?

Most of my posts start in nvALT. I keep a list of ideas there, and then create [[links]] to new notes when I want to flesh them out and brainstorm further. If an idea is larger than I can fit in my head or a simple outline, it goes to a mind map for development.

The outlines (from nvALT or a mind map) generally end up in Byword or MultiMarkdown Composer for development (Byword is excellent for Markdown writing, and upcoming features in MultiMarkdown Composer make it especially ideal for link-heavy writing).

The next step is usually to paste into a TextMate blog post template using the Blogging bundle, add additional links using the Blogsmith Bundle linking tools, auto-tag it with keywords using my AutoTag2 bundle/plugin, add images with my drag and drop uploader and then post it to my blog directly from TextMate.

If a post requires more visual refinement and I want to see a preview first, I’ll publish it as a draft from TextMate and then use the tools in the Markdown QuickTags plugin to develop it further on the web.

It all sounds a bit complicated as an overview, but my basic rule is to use the best tool available for the job, selected in a way that’s intuitive to me. Knowing what to use when is a split-second decision, and my tools are all geared toward the way I think, so using them is second nature.

How long have you been doing it this way?

This particular workflow has been in place, in a general form, for about a year. Prior to that I was doing my writing purely in TextMate.

Does your workflow change based on the type of post?


  • For long pieces where I need to deal with changing structure as it comes together, I’ll start in Scrivener and finish in TextMate.
  • For quick posts that are really just a paragraph or two, I’ll skip straight to WordPress and write in Markdown QuickTags.
  • For shorter posts that don’t require a lot of linking, I’ll skip other steps, starting the post in one of nvALT, Byword or MMDC and then pasting directly into Markdown QuickTags for publishing.

Do you have a particular process/tool for researching a post?

I open a new Safari window and start searching (DuckDuckGo is my favorite tool), opening a new tab whenever I find the information I was looking for and starting fresh with the next topic. I have Services set up to grab selections (and their urls) and add them to a scratchpad in nvALT with a keystroke, and I can insert a Markdown reference list of all the open tabs in the window to my post with one of my Markdown Service Tools. I also use my TabLinks Safari extension frequently to gather lists of links to start referencing in my posts.

I often collect links in a mind map as I build, but when it comes down to the average post it’s much faster for me to just have all of my references and notes open in Safari at once and use scripting to pull it all together.

One often-overlooked tool for doing deep research is DEVONagent. It allows you to really dig into a topic and find citations that might take much longer with a straight Google search. DEVONagent Express is equally useful, especially in blogging situations.

What are your custom tweaks to your workflow that are tailored just to you?

As I’ve peppered throughout this interview, I use a lot of custom plugins, System Services and TextMate bundles. My personality type pretty much ensures that I won’t rest until everything works exactly the way I think it should, which means I’ve spent a lot of time making the tools work with my style of writing and information gathering.

I’ve publicly shared most of the tools I’ve developed in this area and am constantly updating and tweaking them as my workflow changes.

What parts of your workflow are you looking to change or improve?

I’m always looking for faster ways to do the tedious parts. I have a Service that takes selected text and returns a Markdown link to the first Bing result for that text. I’d like to develop that idea further. In TextMate I have a similar command, but it allows me to modify the search text prior to sending and then select a link from the top 10 results in a popup. My goal lately has been to develop application-agnostic tools (because I work in so many different apps), so brining that kind of additional functionality to, say, Byword or MultiMarkdown composer is a priority for me.

What parts of your workflow are you least willing to change?

There are very few aspects of any of my workflows that I’m not willing to reconsider. If a better option presents itself, I’m almost always willing to switch.

The (Multi)Markdown core of the process is really not malleable. I chose it for its future-proof nature, its ease of editing and its innate cross-platform, cross-application compatibility. It’s not that I wouldn’t ever consider changing it, but changing would mean invalidating years of work and a massive headache. The tools are a different story, though.

TextMate is the one area I’ve held off the longest on changing, primarily because my customizations have made it a superior choice (for me) to anything else that has come along. I’m hoping TextMate 2 comes through and lets me continue using my current workflow without interruption, but if something like Sublime Text 2 ends up being the better option, I will grudgingly switch.

Anything else you would like to share about your workflow?

Well, I’d like to mention TextExpander, a huge timesaver for me both in writing and in web development. My custom snippet collection is constantly growing.

I think that every post I write ends up following a slightly different path, but the core concepts of plain text and Markdown mean that any post can be updated and maintained using any of my tools, and it doesn’t matter what I used to begin with.

All of my posts are stored in my WordPress database as plain Markdown. I render them into cache when I publish them, but I can pull a post down into TextMate at any time, make changes to the post or the metadata, and send it back up with zero hassle.

This malleable workflow works great for me. Portability has become a major factor in all of my tool choices, and I expect that to continue for long into the future.