Two years with Ulysses

My two years using Ulysses coincides with the release of Ulysses 20, so I review the update and reflect on my time with the app.

Two years with Ulysses

Two years ago, I settled on Ulysses to write my blog articles. In a couple of days, my annual subscription will turn over once again. As I draft this post, Ulysses 20 was just released. So, all things considered, I think it is time to reflect on my journey with the app.

Is it value for money?

Let’s get this out of the way because I know the subscription model ruffles many feathers. My unequivocal answer is, yes, Ulysses is worth the money. The app costs me a shade over $40 Australian a year — that’s about 10 coffees from a wanky café here in Melbourne. Since I don’t drink the vile brew, I guess I’m ahead.

Trite comparisons aside, Ulysses has lived up to my expectations in terms of the promises made by the developer. Since first subscribing, Ulysses’ developers have put out about at least 6 releases.

They’ve been good updates too. True, nothing earth-shattering in any one release, but the app is incrementally improving in a tangible way. If I’m honest, I much prefer this to Scrivener’s approach of delivering major overhaul updates that occur years and years apart.

Moreover, I enjoy the experience of writing in Ulysses. The features that attracted me to the app — aesthetics, focus, simplicity — still hold true. I use Ulysses every day, not just for my blog, but also my private journal, notes and a bunch of other things. There is a value to that experience that’s well worth the price of entry.

Ulysses 20 (and 19)

Ulysses 20 was released mere hours before I started this review — and I’m kicking the tyres as I draft. Ulysses 20 is a pretty substantive release, particularly on the Mac. Below, I also include my favourite features from versions released earlier this year, which I didn’t formally review.


Dubbed the Dashboard release, Ulysses 20 overhauls the app’s document inspector, and makes it much more useful and easy to read.

We now get an overview panel displaying the progress and word count, keywords, and an outline view. Previously these were all on separate tabs and UI elements. You can also customise what’s shown using the gear icon at the bottom of the panel.

Dashboard panel in Ulysses 20
Dashboard panel in Ulysses 20

The outline view (in the dashboard, and now a separate panel), is an improvement on the previous drop-down display. If you select two or more sheets, the outline expands to display all headings accordingly. This is fabulous for non-fiction documents. However, it’s not much use for fiction as novelists generally don’t title their scenes within the text. Scrivener, with its concept of document titles and synopses as metadata, is the better approach in this regard.

Grammar checker and revision mode

Ulysses 20 introduces an online grammar checker — online, meaning it’s not the one that ships with macOS. Instead, it relies on a third-party service, LanguageTool that Ulysses’ developers have partnered with.

When you first attempt to use revision mode, Ulysses displays a privacy notice prominently. Like Grammarly, your text is sent back to a third-party server where it’s analysed for grammar, usage and style. Since I already Grammarly, I’m less concerned with privacy, and more interested to see how useful it is.

To activate revision mode, you must open the revision panel and click the Check Text. You’ll then get a list of suggestions in the panel, and the editor will highlight them with a different coloured line to the recommendations made in the built-in macOS grammar and spelling system. Note you can also customise what’s displayed using the gear icon in the bottom of the revision panel.

Revision panel and advanced grammar checker
Revision panel and advanced grammar checker

While it’s a nice to have, my initial appraisal is it’s not going to replace Grammarly, ProWritingAid or HemmingwayApp. That said, it did pick up some of my glaring errors, and it works in real-time without much of a performance hit as you get when using Grammarly.

Material sheets

Ulysses 19 introduced material sheets, which is intended for supporting information you don’t want to be included in your exported manuscript. Material sheets also don’t add to your word count and related statistics. This makes them ideal for things like notes, character/location sheets etc. for those who like keeping them right next to their manuscript sheets. Personally, I’d include that sort of thing in a separate folder. Still, just like Scrivener’s equivalent Include in compile checkbox, it’s a nice to have.

What’s missing?

While Ulysses continues to improve, there are still some glaring omissions, at least for my use case. Since this post constitutes as more than a mere review of one release, I felt I could get away with airing some of my grievances.

Table support

The lack of table support hampers Ulysses use for technical writing (my day job) and many flavours of non-fiction writing. Since I use tables in my character and location sheets, the lack of support also limits my ability to use Ulysses for writing stories.

Many markdown editors and flavours support tables. I can only assume Ulysses’ developers have yet to include table support in a manner that suits the app — or maybe they just don’t want them.

The workaround of adding tables using Raw Source blocks is ugly. I’d love to see Ulysses add MultiMarkdown’s table syntax, and then abstract them away as a preview in the editor similar to how it handles images. Bonus points if they could somehow provide support with Table Flip.

Regular expressions

Okay, I’m an edge case here — very few creative writers have heard of regex, much less know how to use them. I have a technical background, however, and use regex as part of my day job. Scrivener’s ability to perform a search based on regex and highlight matches in the text is a KILLER feature. Coupled with Collections and it’s one of the most powerful weapons in my editorial arsenal.

Ulysses’ Filters operate similarly to Scrivener’s Collections, in that they are saved searches. I would love if Ulysses allowed searches based on regex — bonus points if the matches are highlighted in the editor as they are with Scrivener.

Inter-document linking

A neat feature I use in Scrivener all the time is the Scrivener Link, allowing me to create internal hyperlinks between documents. This turns Scrivener into a handy offline wiki or knowledge base. While not really useful for writing novels, it’s spectacularly good for creating encyclopaedic-sized fantasy worlds or running a D&D campaign.

Ulysses does have an undocumented linking feature, its clunky to use and is intended for automation on iOS with Workflow rather than to create an actual wiki-like experience within the app.

Group-level outliner

I alluded to this omission in my discussion of the sheet outline in the new dashboard. Ulysses does not have Scrivener’s equivalent of an outliner (or corkboard). Scrivener’s outliner functions like a spreadsheet view of the manuscript, and it’s one of the most potent structural tools a novelist can use to manage the complexity of an epic narrative.

This is also one feature I don’t expect Ulysses’s developers will ever add because a spreadsheet view flies against the aesthetic of the app. Ulysses would also have to add more metadata fields to make it useful.

Concluding thoughts

Ulysses 20 is a great release, and I really appreciate the new dashboard. As I glance at it now, I see all the pertinent information about this article laid out in an easy-to-read manner. When I write, I hate sifting through UI elements to find information; I hate lifting my hands from the keyboard. Ulysses absolutely nails the writing experience.

Yet, Ulysses’ omissions prevent me from using the app for anything longer than an article. I admit that’s as much on me, and my preferences, as it is on Ulysses’ shortcomings. Plenty of authors write novels with Ulysses, though Matt Gemmell who switched from Scrivener after going iPad only does use OmniOutliner, GoodNotes and Things to make up for the app’s limitations. Matt also told me on Twitter he still uses Scrivener on macOS to compile paperback versions of his books. Scrivener’s compile is clunky, but it’s much more capable than Ulysses’s export feature for creating the finished product.

Personally, I see no reason why the two apps can’t coexist in my toolbox, as indeed they have since 2018. Scrivener’s strength in long-form writing makes it far less appropriate for writing articles. One day I might draft a short story or perhaps even a novella in Ulysses.

Ulysses continues to live up to my exceptions. I’m thrilled with Ulysses as a drafting tool and a content management system for my blog. The continual and steady march of improvements makes the app materially better each release, upholding the promises made by the developer when Ulysses shifted to a subscription model.