I have gone through a decent number of text editors geared towards writing, and while most of them have been quite workable and even pleasant, there has always been something missing. My demands are fairly simple, and the gist is to focus on the writing experience and not having to deal with minutiae, like saving revisions and naming files.

My first demand is about integrity and reliability, which means that I don’t want to worry about sync conflicts when writing on multiple devices — everything just has to work without a fear of losing anything.

My second demand stems from my programming background where every single piece of written code is always checked in to a source repository, meaning it’s trivial to rewind and optionally restore previous versions of documents. This should be possible within the writing environment as well, and it should optionally even display the changes between the different revisions.

My third demand is that the writing app must support Markdown1, since that is what I prefer to use when writing. It’s not that writing HTML or rich text is inherently bad, but the simplicity and the way Markdown lets me stay in the flow, even when doing on-the-fly formatting makes it an obvious choice.

My fourth demand is not having to be bothered with managing text files and naming them. The software must handle this automatically and just show me the current title and optionally an excerpt as the main way of finding a particular note. It should additionally have support for filing these notes into different collections.

My fifth demand is that publishing to WordPress directly from the app should be reasonably simple. The bare minimum is that the text should be exportable as raw Markdown, and it should preferably have a way of dealing with images within the text as well.

A while back I switched to a writing platform called Ulysses, which ticked most of the boxes. The app is available for both iOS and macOS, but what really surprised me is the iOS version, which is as fully featured as the macOS counterpart. It’s not a scaled down companion, which is becoming a lot more important given that the iPad is a fantastic writing platform.

The basic structure of the app is that individual notes are called “sheets”, which can be grouped into a nested tree of folders. When writing long-form text, eg. a book or similar, it’s possible to split the chapters into separate sheets for an easier overview. The overlying folder will then act as glue, making it possible to export all (or just linked) notes from within that folder.

With the recent 2.6 update came a couple of features which fortifies Ulysses as one of the best platforms for writing for the web. While it has previously been possible to export directly to Medium, it is now possible to export directly to WordPress as well. This simplifies my workflow tremendously, especially if the document contains a lot images or photos. Before this update, the attached images needed to be saved to the filesystem and manually uploaded to the post in WordPress, which made it hard to work with comfortably from iOS. With this new publishing feature however, all attached images will automatically be uploaded as part of publishing the article. The publishing sheet contains everything that can be configured for a post, including the available categories and tags. Not only that, but it’s even possible to select the post format and set a custom URL slug if needed.

Another feature that has finally been added to the iOS counterpart is the “typewriter” mode, which essentially means that instead of the cursor changing rows while your write, the document scrolls behind it — like the sheet in a typewriter. This means that the cursor will always be on the same row on the screen. While other apps also have this feature, I have never seen it as thoughtfully implemented as in Ulysses.

While exporting to online publishing platforms is my main use case, it also possible to export to various other formats including ePub, PDF and Microsoft Word2, as well as standard Markdown and HTML.

Get Ulysses for iOS and Ulysses for macOS.