This Week's Sponsor:


Ensure that if a device isn’t secure it can’t access your apps.  It’s Device Trust for Okta.

Drafts 5: The MacStories Review

Drafts as a Modular Interface

Now that you have an overview of the changes in Drafts 5, taking full advantage of those changes will require a fundamental shift in how you set up Drafts. Sure, you could make the app imitate your Drafts 4 setup today – but you’d be missing out. When you couple the separate views of Workspaces with the power of actions - especially when accessed from the extended row – it starts growing clear that you’ll have a lot to gain from changing how you use Drafts.

People use Drafts for different things: small snippets of text that go elsewhere, a place to keep simple lists, a place to create messages or emails, or a long list of other, more complex things like a journal, blogging platform, or text editor. Over time, Drafts grows with the user and encompasses multiple facets of an individual’s workflow. So the lens in which you view Drafts - the editor interface and the extended row - needs to change with what you are doing.

This idea of coupling Workspaces and the extended row’s Action Groups together leads to the idea of what I’m calling modules. Each customized module is modified to what you need to do in each type of environment: whether it be action scripting, GTD, or journaling, you’re only a couple taps or swipes away from being in a whole new environment that can behave differently for the task at hand. This creates a separation of functionality optimized for the use case of the moment. If I’m writing, whether that’s for my journal, my website, or even this review, there is a specific way I want to view my drafts and there are critical actions I want to have at my disposal.

With the draft drawer pinned and my workspace selected, I have access to my actions directly from the keyboard row. If I move from a draft of writing to a draft of tasks, I can quickly swipe on the extended row to change actions. And this brings up a subtle, but transformative thought: the keys aren’t really gone, they have simply transformed. They become useful, powerful, and integral to the environment in which I’m working. In the course of spending more time with Drafts 5, I’m actually using the action drawer less and less; instead, I’m running actions from the extended row, without having to open up another pane.

However, this doesn’t mean that I have to be locked into a single action group either. I can have one set of actions in the extended row, and a completely different set of actions in the action drawer. This duality enables me to distinguish what I’m doing. For example, I might have a thought that I want to share, whether on my blog, a tweet, a message, etc. I will use a “writing” action group in the extended row that contains actions I employ for writing, and couple that with a “social” action group in the action drawer to send the text elsewhere. If I end up writing a lot, I can post it; if it’s short, maybe I’ll tweet it. Having all relevant actions a swipe or tap away is nothing short of magical. Modules are going to be a major idea going forward with how I approach my use of Drafts.

Here are a few ideas I’ve developed so far that highlight the utility of modules.

Action Scripting

Drafts contains a full JavaScript editor in the Script action step. Additionally, you can import or export a script via iCloud Drive or any other app that integrates with iOS 11’s Files app. An additional way to create and edit scripts is to write them directly in the editor using the JavaScript syntax highlighting, then copy/paste them into a script step.

While I was moving and creating actions in Drafts 5, I started off using that last method. I have a separate workspace for my scripts, and I developed an action scripting group to use in the extended row. I don’t need to open a separate app to code for Drafts, because I’m able to use the same app in a different module.

Using a module for action scripting helps the coding process of creating actions.

Using a module for action scripting helps the coding process of creating actions.

Thanks to JavaScript syntax highlighting, I was able to create an action that starts a document with this highlighting already applied; it also adds a script tag at the same time. I then thought of other useful actions to add: inserting a prompt step, inserting an ‘if’ or ‘else’ statement, and some other coding elements as well. I also added indent and outdent so I could move within the code a bit easier. Now, whenever I need to script something in Drafts, I can tap an action to create a new document, and I’m off to coding. When I’m done with my scripts, I use the Save Scripts action within the group, which saves all of the drafts with the script tag to iCloud Drive.


I’ve said it before: Drafts is more than capable of being used as a main text editor. Although this could be done in some form in the previous version, the changes to syntax highlighting – primarily Markdown – enhance the differentiation in the various text elements a user wants or needs to stand out.

For this review, I really wanted to use Drafts as my sole writing instrument. I tried very hard to make it work, but at the end of the day, it really couldn’t be done in the way I needed. I wrote this in multiple stages – requiring notations, notes, highlights, etc. – and Drafts isn’t built for that purpose. Drafts became too unwieldy for my use case.

That is, until Workspaces came along. When the feature was rolled out and the ability to omit specific tags was added, I quickly moved the entire review back into Drafts. I created a workspace that filtered by the tag I created for the review (d5review), and sorted by text. As I developed the sections, I would number each one: this way, I could view the drafts in the order that I want them. I would love to see a manual sort option come to workspaces for this type of thing, but for now, this will do.

My Drafts 5 review module, which worked perfectly.

My Drafts 5 review module, which worked perfectly.

As I was writing the review, I could simply tap on the new icon (+) in the draft drawer and start a new draft with the d5review tag already applied. This saved quite a bit of time, especially since I kept the draft drawer pinned. If I ever needed to write something else down, I could simply tap the new icon in the editor and it would create a regular draft. Having the workspace environment flexible enough to focus on my writing while still allowing me to capture other thoughts has been invaluable.

With this ‘D5 Review’ workspace, I’m able to use my writing or general action groups, along with my external keyboard shortcuts, to write and include other elements like images via Workflow. I developed a tagging structure and some visual elements to help me along the way. After the review is finished, I’ll save all of the text as a document and create a new ‘Writing’ workspace so that I can clean up my views.

With Drafts 5’s drag and drop implementation, I’m able to take this writing workspace even further. For the review, I was able to drag all of my sections over to a single action, and have the action run on all the drafts. I saved copies of each section as Markdown files in a specified directory; in addition, I saved to both iCloud Drive and Dropbox with the same action, using the proper formats and conventions I needed. This made the reviewing and editing process completely smooth.

Drafts can also be a great blogging tool. Even though I’m not a programmer, it is possible now to create a single script action which posts to WordPress. It could be combined with other script elements to save the file in iCloud Drive or Dropbox, and send out a link to the published post via Twitter in the same script as well. If you know how to code, you can make all of this happen. People have made some of it happen already, though I’d really like to be able to use OAuth to make it happen with Drafts. Or better yet: I’d love to see Drafts natively support posting via WordPress, as with other apps, or in a nice script object. Perhaps in the future we’ll see this happen, but until then, I’ll continue to publish via Workflow.

What my writing module demonstrates is the newly improved ability to work on a longer writing project. While apps like Ulysses and Scrivener are also available for long-form writing and research, Drafts is now able to work for me for anything that I write. I like that my idea can start and finish in Drafts – with the new features that have been added, I’m eliminating the mental overhead of where my writing needs to live.


Just like a text editor, Drafts is amazing for journaling. I’ve been using it that way for a while now as a cathartic tool to share my own thoughts and feelings in a non-public way.10 While my approach is much the same as I had previously, the setup that a module provides is completely different.

I created a journal action group which contains multiple actions that aid in the creation of my text journal. I have an action that starts a pre-formatted journal for me and adds a journal tag. I use the ‘General’ workspace I’ve created to house journal entries for now: I could use a different one in the future, but as I’m only keeping one per day and then sending it to DEVONthink, I don’t need to have something separate. But it feels like a journal setup when I switch to the extended row for my actions.

Journaling with Drafts, Workflow, and DEVONthink gives me a great journal.

Journaling with Drafts, Workflow, and DEVONthink gives me a great journal.

I also have a time/date entry to quickly add multiple timestamps throughout the day. And of course, there are several Markdown items for links, images, and quotes, along with a divider action for separating my daily journal into sections. Thanks to the prompt and callback scripting objects, I have a single action to runs multiple Workflow-based workflows, which help me insert other items for my journal like images, weather, music, etc. It’s a well-rounded set of tools which enable a quick reach for what I need at my fingertips so I can focus on writing more than searching.

Could I use a journaling app like Day One? Certainly. The features of the app are great, the interface is nice, and it’s a well done app. But I don’t need to go to a fancy app to journal when I can stick with what I already use on a daily basis, cutting down on the number of subscriptions I’m paying for.


Drafts has been a central place of trusted capture for years, functioning as the focal point for anything I need to get done. It’s a core way in which I use it, and that’s only going to grow with Drafts 5.

One of my single biggest use cases of capture is small lists. When I’ve had a long week and am getting ready for the weekend, I’m always looking to plan what I need to accomplish during that time off. I’ll pull out my task manager to take a look at what’s there, but I’ll also just dump a bunch of things into a plain text list in Drafts, which includes nesting subtasks or notes inside those items. When I know what the task name is, I’ll simply add a checkbox using an action that inserts a - [ ] for each line; this serves as a visual indicator and is also now a functional checkbox, marked complete by tapping in between the brackets. This small change, coupled with the way text is visually wrapped based on indentation, has a profound effect for me: in a way, the app been made into a simple task manager all on its own.

Checkboxes can now be marked complete with a tap.Replay

Now that Drafts has TaskPaper syntax highlighting, you could even use it to create templates that share to OmniFocus or 2Do. You can create actions to add contexts or due/start dates, and any other item you might use to build complex templates. Then, via a single action, it’s sent to your task system; if you develop the template and copy it into a clipboard step, a single action gets you a whole project formatted right within the app.

Calendar entries can be created in Drafts using the scripting object. Taking a similar parsing approach to Fantastical’s syntax, one could create an action that will take each line of the draft and create calendar events.11 Because it wouldn’t have to do the back and forth dance that an app like Fantastical has to, it would run quickly. In the future, I’d love to see the calendar script object expanded to include the importing of calendar entries to provide greater extensibility of Drafts.

Setting this up as a workspace, I created a filter tag gtd; every time I create a draft that is related to tasks or calendars, I quickly tag it and move on. When I need to view my task or calendar items, I simply select the GTD workspace. This takes all of the drafts which are tagged, and sorts on created date in ascending order so I can see the the oldest drafts first. This ensures that I don’t miss a single task or event that I need to process.

I also have an action group for GTD. This contains my actions for sending items over to GoodTask/Things/Todoist12 or a grocery Reminders list, and some convenient keys for applying tags, Markdown formatting for lists & tasks, as well as a few others. There were times during this review that I wanted to keep the writing/editing going on specific sections, so I created a Remind Me of Things action to replicate Siri’s “Remind me of this…” feature: it takes the title of the draft as the task, prompts me for a reminder date, then sends over a task to Things with the permalink to the draft in the note.

Actions in the module help remind me of specific drafts.

Actions in the module help remind me of specific drafts.

The GTD module I have set up is one that will definitely change over time, especially as I modify my task management system. The inclusion of Reminders and Calendar integrations is a start; the more ways that Drafts gets integrated, the more power I’ll have to get things done within this system. As I start to expand on this idea, I might even look to include the gtd tag as the notification badge count, so that I know how many items I have left to act upon.

But what about extending that further? What if I could receive a Drafts notification about a task like I would with any other task manager? What about storing notes, files, and other items that other task managers provide? What if I could take these ideas and incorporate them? This is where it starts to get interesting; it has already started to change the way I look at my task management. The concept is beginning to take shape with Drafts’ existing features, but there are a few features related to calendars and contacts that need to be implemented via script objects before I can create the solution I have in mind. I’ll share that one with you when it’s ready.

Actions and Groups

Here are the Actions and Action Groups that were a part of this review:


Action Groups


I love the direction Drafts is taking. Leveraging the groundwork of the previous versions, Drafts 5 breaks that foundation down and builds it back up to be something even better. It has taken another large leap while keeping true to its “capture and action” roots.

The feature set that has been created for Drafts 5 gives new life and intriguing possibilities going forward. With tags, I organize my drafts like I would files on a traditional personal computer and use Workspaces to create different projects I might be working on. With actions and the powerful new scripting features, I save or act upon those drafts to expand the capability of the app.

Drafts has done a fantastic job with the implementation of new features, but there are some missing features I would have appreciated in this release. While the app aims to be a text-focused application, support for images and files through drag and drop would be a welcome addition. Dragging an image from Safari into a Markdown-formatted draft, for example, could provide a formatted link to that image from its web location. Dragging a file from Dropbox could provide an option for insertion of the text or a link back to the file provider. These features would allow Drafts to utilize more data than just text, while keeping the text-based nature it strives to maintain.

Pushing modules further, I would love to see Workspaces get improved by allowing a pre-defined action group. That way when switching Workspaces, the user can automatically have all necessary tools at their disposal right away, thus speeding up capture.

When you combine Workspaces and Action Groups to create powerful modules to work within, adding syntax highlighting elements and using focus mode to concentrate on your text, Drafts becomes the ultimate productivity tool. I write, journal, program, manage and create task and calendar entries – and so much more – all within a single app simply by changing my modular environment. I don’t need to have a ton of different apps for these different tasks, which saves me money spent on subscriptions. It also eliminates the mental friction of where I need to begin – all my text starts in Drafts.

Drafts morphs to be whatever I need with a tap or swipe. I use it day in and day out to do real work from my iPad and even my iPhone; it is a model example of what a productivity app can be on iOS.

One unique element of Drafts is how versatile it will be to each individual user. Some may use it as a simple text capture app, while others use it for almost everything they do on iOS. Both extremes, along with everything in the middle, are what makes this app amazing. The app can be completely adaptable to the user, much in the way that task managers are used in unique ways from person to person. And Drafts comes with a strong community of other users – highly capable, supportive, and helpful people to assist you.

The current state of Drafts reminds me of the way apps like Workflow and Pythonista worked their way to maturity in the world of productivity apps on iOS: each started out with small pieces and iterated over time, becoming better with each release. The new version of Drafts builds on an already strong foundation, while providing new functionality and room for future enhancements.

As I look toward the future and the features that will be added over time, what other creative ways will I be able to use this simple text editor? What other apps could I replace with some script object additions, giving me more power in Drafts? I’m not sure, but I’m excited to find out. One thing is certain: Drafts, for me, has become the most versatile app on iOS.

  1. I like some of my thoughts and feelings to remain private, and don’t need a big company to keep – or mismanage – my personal data. ↩︎
  2. I’m not savvy enough to create this. I’m not an expert programmer, so I’m hoping someone who is ends up creating an awesome one inside of Drafts. For now, I’ll use Fantastical. But someone please give me a reason to reduce my app count. ↩︎
  3. My task management stuff is a bit of a mess right now. ↩︎
  4. Prices are USD. See the App Store price in your country, as the price may vary. ↩︎

Unlock More with Club MacStories

Founded in 2015, Club MacStories has delivered exclusive content every week for over six years.

In that time, members have enjoyed nearly 400 weekly and monthly newsletters packed with more of your favorite MacStories writing as well as Club-only podcasts, eBooks, discounts on apps, icons, and services. Join today, and you’ll get everything new that we publish every week, plus access to our entire archive of back issues and downloadable perks.

The Club expanded in 2021 with Club MacStories+ and Club Premier. Club MacStories+ members enjoy even more exclusive stories, a vibrant Discord community, a rotating roster of app discounts, and more. And, with Club Premier, you get everything we offer at every Club level plus an extended, ad-free version of our podcast AppStories that is delivered early each week in high-bitrate audio.

Choose the Club plan that’s right for you:

  • Club MacStories: Weekly and monthly newsletters via email and the web that are brimming with app collections, tips, automation workflows, longform writing, a Club-only podcast, periodic giveaways, and more;
  • Club MacStories+: Everything that Club MacStories offers, plus exclusive content like Federico’s Automation Academy and John’s Macintosh Desktop Experience, a powerful web app for searching and exploring over 6 years of content and creating custom RSS feeds of Club content, an active Discord community, and a rotating collection of discounts, and more;
  • Club Premier: Everything in from our other plans and AppStories+, an extended version of our flagship podcast that’s delivered early, ad-free, and in high-bitrate audio.