A Scrivener user reviews Ulysses

Posted on Fri 01 September 2017 in Articles • 17 min read

It's no secret that my workhorse is Scrivener. I was an early adopter and apart from a brief interlude on Linux (2014-2016), it's been my go-to place for writing stories (and more) since early 2007.

But that doesn't mean I put on blinkers and ignore the competition. I'm open to new ideas and ways of working. Indeed, while using Linux, I started a new novel written in markdown and used basic text editors to write it instead of Scrivener. There was a lot I liked about this approach, not least the enormous flexibility, portability and longevity of plain text as a medium.

Being back full-time in Apple's Ecosystem has given me pause to consider Scrivener's chief competitor, Ulysses. This app, developed by German company, The Soulmen, has a lot going for it and several writers whom I respect considerably have sung its praises and switched away from Scrivener.

But is it enough to make me switch?

I should note that this isn't so much as a review, more my impressions of Ulysses as a long-time Scrivener user. I'm not going to hate on Ulysses or bash it for the change in business model. Rather, think of it as me looking over the neighbours fence to see if her lawnmower cuts the grass as well as mine.

I'll cover some of the highlights and differentiators with Scrivener and evaluate if I think Ulysses can fit the app into my workflow.

Subscription model

Well, it is the elephant in the room...

Halfway through evaluating Ulysses its developers changed their business model from outright purchasing to a monthly or annual subscription. I originally railed against this decision under the mistaken belief it would become ransomware, locking writers' data behind a paywall. That isn't the case, which Matt Gemmell rightly pointed out to me on Twitter.

Having reflected, I'm no longer of the opinion that this is a dick move. In fact it has lowered the barrier of entry. I'm writing this post in Ulysses on my iPad, by taking advantage of the trial period. Even if I run long in my review, for $6.99 AUD I can extend that for another month. This is something that the previous model did not allow for.

Ulysses pricing

One subscription price unlocks both the macOS and iOS versions, which I think is great given that I use both platforms and don't see that changing any time soon. Previously, you had to buy both versions separately which cost nearly $100 AUD; not exactly an impulse purchase.

Much vitriol has been spilt over the subscription software model and while I have reservations, I recognise why many developers feel it the most sustainable model for them. It must however be taken into consideration because it changes the nature of our relationship as writers and as consumers with the developer of this app.

User interface

Ulysses is a beautiful, refined and visually polished writing application. It is elegant, responsive and, for the most part, intuitive (especially if you have worked with markdown or variants thereof in the past).

This applies to both the macOS and iOS versions. On both platforms it is a visual delight.

Ulysses is based on a flexible tri-panel design with the library, sheet picker and sheet editor. Panels can be collapsed at will. When a sheet (the Ulysses name for a document) is selected, an additional slide-over panel for attachments (which include notes, keywords and images) is also made available).

What I like about it, is that everything can be packed away or revealed as needed. Features are invoked with keyboard shortcuts and gestures so your hands don't have to venture far from the keyboard/glass, breaking your flow. There's no clutter and everything seems like it's meticulous placed and designed to promote writing with minimal friction.

Ulysses on Mac

The iOS version is consistent with it's Mac counterpart, albeit my iPad mini doesn't show all panels at once like I believe the larger iPad Pros do.

Ulysses on iOS

Scrivener by contrast is all business, a functional, utilitarian tool packed with features packed away in an assortment of menus, toolbars, panels and windows. Aesthetics is not high on its list of virtues, even after the lick of paint it got a few minor releases ago. On the desktop, Scrivener feels old, though the forthcoming Scrivener 3.0 release promises to address that issue and bring a more modern UI.

Scrivener of Mac

Part of Scrivener's aged feeling is due in part to its traditional way of structuring the application. It's a desktop app of yesteryear with its multitude of panes, palettes, toolbars, dialogue boxes and windows. That's fine -- as I noted this partly due to Scrivener's enormous feature set -- but it does feel sometimes that it's a victim of its legacy. Scrivener was born in the desktop age in a time when Word and desktop computers dominated a writer's toolkit. Ulysses by contrast is a product of the mobile age.

Scrivener for iOS in contrast to the desktop, is much more aesthetically pleasing and I really enjoy it as a comping environment. However it lacks most of the desktop version's feature set. This makes it more an accessory than a primary environment so in this respect Ulysses is the better choice for writers who've embraced the iPad only lifestyle.

Native markdown editing

Well, almost…

In Ulysses, documents are written using a variation on Markdown, Markdown XL. It's not exactly Gruber's vision of markdown, nor is it as fully featured as MultiMarkdown but it's fit for purpose and has its own bevy of strengths not least in how it's presented and how it handles elements like attachments and footnotes.

I like plain text for a number of reasons but in the context of writing, it provides a semantic layer that rich text does not. Headings in markdown mean something. Headings in rich text editor just look like headings without any semantics or bearing on the document's structure beyond it's visual cues. Professionally I use plain text for this reason but for fiction I don't feel as compelled to do so.

As you'd expect, Ulysses handle markdown as well as any editor by styling certain syntax features with rich-like text. This improves legibility.

Something that may annoy markdown purists is the way Ulysses obscures the syntax for images and links. This was a little strange at first, but not only did I get used to it but I came to prefer it. It's cleaner and as a result, makes the writing experience much nicer when compared to a regular text editor.

I don't have many complaints but one, and it's minor, is that I wish they used CriticMarkup, instead of their own editing syntax. Scrivener doesn't have a native change tracking feature at all, so it's not exactly a black mark against Ulysses, which at least does something.

Editing syntax in Ulysses

One thing I really like is the style editor, allowing you to modify and create different styles for different syntaxes. Out of the box Ulysses has style sets for Markdown, Markdown XL, Textile'd and MiniMark. It's only available on the Mac version.

Markup editor

That got me thinking of the possibility of using other markups, including the extremely powerful AsciiDoc, which I use professionally as a technical writer. It wouldn't support everything, but Ulysses allows for the passthrough of text blocks which is how I was able to use MultiMarkdown tables as well as metadata headers.

Scrivener by contrast is a full rich-text processor so it doesn't need UI hacks or cues to display styled text -- it displays it as is. Scrivener has support for Markdown, at least on compile, but it feels like a second-class citizen. It doesn't provide any syntax highlighting in the editor so because of this limitation, its never stuck with me as a markdown tool.


Syncing in Ulysses is much better than Scrivener.

Ulysses's syncing mechanism is based on Apple's CloudKit, using iCloud as the source of truth. It's faster than Scrivener and automatic. It can do this because it's file-format is much more conducive to Apple's CloudKit API.

Scrivener meanwhile is dragging its legacy package-based format like a ball and chain into the mobile age. It's a complex, macOS bundle that mixes XML, pLists and RTF wrapped up in a folder masquerading as a file. It doesn't work well with iCloud or CloudKit and that's not likely to change.

Scrivener's syncing is initiated manually and only works with Dropbox, a company I neither like nor trust. I've also had several conflicts and even crashes that prompted me to stop using Scrivener on my Mac mini. Mac to Mac syncing seems to have been the cause of my woes. That said (and once I ditched the Mac mini) it has worked well enough for my needs and in some respects, I like the manual control and the assertion by the developer that Dropbox's API is much better for Scrivener. There's altogether too much smoke and mirrors with iCloud, but in fairness, it does seems to work very well indeed.

Feature parity

I've touched on this already. Ulysses enjoys almost complete feature parity between its iOS and macOS versions. Where differences exist they are mostly to do with the lack of multi-window management on iOS , the differences in input or more advanced features like the theme and markup editors.

This parity offers users much more flexibility. You can use Ulysses on iPad and never have to use the macOS version. For writers like me who prefer the dual-platform approach, Ulysses offers a near seamless workflow.

I love Scrivener for iOS and I've made it work for me as the mobile accessory to my writing workflow. However, Scrivener for iOS lacks many of the power features of its desktop counterpart meaning that I'm still reliant on Scrivener for macOS. I'm fine with that because it suits the way I prefer to work now, but if I ever migrated full-time to iOS that would be a bummer.

One library

Scrivener is project based and most users, myself included, typically create a Scriv document for each project be it a book, trilogy, thesis or whatever.

Ulysses by contrast gets you to shove everything in one bucket it calls the Library. I'm not sure how that scales, but in theory I could use Ulysses for all my writing: notes, correspondence, stories and even this blog (which is written in Markdown). Writer Matt Gemmell, recently showed how he organises his books in Ulysses, which was both instructive and reassuring that Ulysses is capable of handling that kind of complexity.

All my writing, in one app that's virtually the same on my Mac or iPad does make for a very compelling argument. The older and busier I get, the less I tolerate friction. Ulysses is very good at reducing friction.

Yet, it also scares me. In contrast to Scrivener, the Ulysses library is hidden from sight, residing somewhere in the guts of your home folder's Library (hidden for several versions now) in some obscure iCloud directory. This is likely to do with iCloud so I'll give the Ulysses developers the benefit of the doubt that this is not deliberate obfuscation. Yes, I know it can load external folders, however this does not enjoy feature parity with the Library.

Ulysses file format

Even if you choose to use Scrivener with Dropbox, you still have an easily-accessible file you can interact with.

The Ulysses library has some conceptual and practical downsides, especially for an old school UNIX nerd like me. Principally, there's a level of abstraction between you and your files that makes interoperability between applications and utilities much more difficult.

When I use plain text, I do so because I value its interoperability. I edit text files in multiple applications because 1. no editor is perfect and 2. I use multiple operating systems. As a UNIX/Linux user, much of my interaction with plain text is on the command line. I script, grep, pipe, cat and transform text.

Ulysses makes this very hard on a Mac short of copying and pasting like an animal. Ironically though, it might actually be easier to interoperate Ulysses on iOS, thanks to its well-documented URL X-callback scheme, which is supported by the excellent Workflow app. This is something I would like to explore, given more time.

In fairness, Scrivener's format makes this even more difficult. It's true that Scrivener's project files are easily accessible in the file system. However, its package-based, rich-text-dependent format is unsuited to direct manipulation of its internal components (in fact it's something you definitively should not do). For the most part though, Scrivener is feature-rich enough that I don't feel the need to do this1.

In some respects, the file formats of both apps mean they aren't a one-stop solution. Both encourage you to export and edit elsewhere, especially if you collaborate with others. This isn't a failing but more to do with the fact that neither are built for collaboration and the de facto standard in the publishing industry (at least dealing with editors) is Microsoft Word.

Export and sharing

Scrivener’s compiling feature is both comprehensive and complex. Given that Scrivener is the writer's analogue of programmer’s IDE2, it almost seems fitting that compiling a manuscript feels like your are compiling and app in Xcode.

It offers a dizzying array of formats and options within each target format. I personally like and appreciate this power, however to the novice, it’s potentially bewildering and overwhelming. But with it, you can do amazing things and produce an end product for just about any purpose.

Scrivener compile window

Ulysses by contrast is much simpler. It has a quick export menu that feels analogous to the share sheet in iOS or iWork. It's also fast, very fast and works on iOS and macOS. As a result, it offers less options, less output formats and is reliant on templates rather than Scrivener's dizzying array of settings.

Ulysses export share sheet

Where Scrivener shines

Yet, despite all the things I like about Ulysses, I still prefer Scrivener, particularly for writing structurally complex projects like my epic fantasy novel.

Scrivener is a power users paradise and I revel in its power, its flexibility...below I'll describe where Scrivener outperforms Ulysses at least for my needs.


Scrivener is unmatched in its organisational capabilities and its flexibility in how structure is displayed is truly outstanding. With Scrivener you can view your project in its entirety as merged text or down to its constituent parts. Ulysses can do this to a limited extent.

However, Scrivener gives you an outliner, index card board, split screen panels, a collapsable project tree and the ability to view two documents (or structural views) simultaneously. Ulysses does not offer this at all.

I spend almost as much time in the outliner as I do in the text editor. Ulysses doesn't have this feature at all. Scrivener's outliner is almost as powerful as Omni Outliner (which costs more than Scrivener for the pro version) and more useful because it gives me the hierarchical representation of my project, complete with metadata.

Metadata and keywords

Ulysses has basic support for keywords which you can use to build smart searches. That's a nice feature, but again it pales compared to Scrivener.

Scrivener provides a lot of metadata fields out of the box, including the familiar title, synopsis and status. It also lets you create your own, allowing writers to add arbitrary classifiers to track POV, locations, subplots and so on -- you can literally add whatever you want and I use this feature extensively.

Couple metadata and keywords with Scrivener's organisational mechanisms and you can break down you project's structure instantly by any element you choose.

More over, Scrivener allows you to export this data which you can then analyse in a spreadsheet, which I've done to visualise character POV in a pie chart.

Search and Collections

A lot of Scrivener's power features really come into their own when you start chaining them together with searching and collections. The search system allows you to search through document text, keywords and metadata field. It also supports regular expressions.

The documents returned in a search can be saved to a collection -- a list of documents that's independent of their position in the binder. They work similarly to smart searches in Finder or smart playlists in iTunes. Collections based on search results automatically update.

Want to view the collection of scenes where your protagonist has POV in the antagonist's romantic subplot on board the HMS Intrepid in Act 2? Scrivener's got you covered.

Ulysses in fairness supports something similar with its Filters, which operate as a smart search however I didn't get time to fully explore the feature before my trial ran out.

Can I use Ulysses?

Yes, of course. I could use Vim if I had to.

The more pertinent question is should I use Ulysses?

That's much harder to answer and is the point where I begin to scratch my head and wonder what it would mean for my writing. Ulysses is beautiful and while is does somethings better than Scrivener, it lacks in ways that are important to me.

If I adopted Ulysses for writing fiction, I would have to rely on other apps for things that it does not support (like outlining) and I would have to change the way I view and manage my project. As I've argued, Ulysses does not promote interoperability in ways I expect from a plain-text editor, at least on my primary operating system (macOS). Scrivener is not the best text editor or word processor, it's not the best outliner, it is not the best research bucket but it is bloody good at all these things and provides all this functionality in one, convenient package.

Another potential use

If not fiction then perhaps I could use it for blogging, which I already do in markdown. Blogging does not require the complexity of writing a novel.

I would still find myself relying on different apps and utilities to achieve my end. Not in itself a problem as I do this now. However, why not simply use the tools I'm using now? What do I gain by adding another (proprietary) app to the start of my process?

The friction

Ulysses is all about reducing friction but I already have a suite of great tools at my disposal. They do what I want. I write the way I write because of my long use of Scrivener and I'm thankful for it. Change for me is the biggest friction point but if I get over that, I still have to reconcile with Ulysses subscription service.

Ulysses is not a complete writing environment like Scrivener. Ulysses is not a truly interoperable and interchangeable text editor like Sublime Text or MultiMarkdown Composer or Editorial. By hoarding my data, Ulysses wants to make itself indispensable but without providing the feature set that would make it so for me.

Does all this mean that I cannot or will not use Ulysses? Does it mean that I can't recommend Ulysses to you?

Absolutely not.

Ulysses' limitations are because of the crosses I've either chosen to bear or have become necessary by circumstance. They should not put you off. I could outline my novels in OmniOutliner and draft side-by-side with Ulysses. I could blog instead with Wordpress or Medium, which Ulysses supports nicely. I could dump legacy file-systems and command line utilities in favour of the app-centric model of mobile computing.

There are compelling arguments to do all of these things.

If so, Ulysses would be my first choice. Ulysses is the most beautiful place to compose text I have ever used. Ulysses does away with complexity in a way that is intuitive, elegant and utterly compelling. Should I embrace this workflow, it might even afford me more time for writing.

So what's my conclusion?

Ulysses is not for me, at least not yet.

Engaged as I am in redrafting a complex, 200,000 word novel that began life fifteen years ago as a collection of Word documents, I'm not in a position to change. The Weaver of Dreams Scrivener file is an enormous kludge with more than 2 million words across the draft, previous editions (6 of them), notes, world-building articles and research material. I have custom meta-data, keywords and collections, notes embedded in documents and God only knows what else. Migrating that project would take me weeks if it's even possible.

Future projects though is another matter. I've got several projects on hold that aren't as complex as Weaver of Dreams, and one of which is already written in markdown. That's a decision though for future Chris.

Where I could see myself using Ulysses right now is blogging but that too is not without overhead. Migrating to Ulysses means I'd need to change my publishing system, if not the platform itself then at least to wrangle Ulysses' output to be compatible with Pelican. Not a big technical problem but one I don't feel compelled to tackle now. Again, something for future Chris.

Finally, I'm left with the question of value. If I only use Ulysses for my blog is it worth the ongoing expense?

Honestly, I'd have to say no.

To get over the mental hurdle of renting software, not only would I need to use it more but it would need to be because it's essential, irreplaceable and offers me something I can't get elsewhere. Given time, I'm pretty sure I could do more with Ulysses but this doesn't qualify as being essential or irreplaceable. Throwing more writing tasks at it would be an exercise to justify the cost, like driving more because you took out a loan on a second car you didn't need just because you liked the design.

The bottom line is, with subscription pricing, Ulysses is no longer playing on a level field. For a few years, it did something Scrivener did not -- work on iOS but that changed a year ago. Now it does something Scrivener doesn't, hit the hip pocket every week.

I imagine that part of the decision to switch business models was made under the assumption that the competition would eventually follow suite. They might be right but in the meantime it's given Ulysses an enormous handicap and lost a lot of goodwill in the process.

I don't want end on a downer. I can't judge or dismiss Ulysses purely on price or business model; it deserves better. I wrote this post in Ulysses and was able to fully evaluate its potential because of this new model and I'm grateful for it.

I thoroughly enjoyed the experience of using Ulysses. I appreciated its performance, seamless syncing, attention of detail, the wealth of keyboard short cuts, the integration with Workflow on iOS. Moreover, in almost 30 years of writing on a computer, I've never used a writing program that is as beautiful, elegant and refined as Ulysses. That in itself speaks volumes and as the app continues its relentless improvement, I reckon future Chris is going to have a very tough decision indeed.

Ulysses is great; an outstanding example of a modern writing application for the mobile and web-connected world. It's a first-class iOS citizen and is equally at home on the Mac.

Scrivener's power and flexibility keeps me firmly in its camp for now and in the near future. It's still firmly wedded to the tried-and-true desktop metaphor using principles and design cues that it popularised more than 10 years ago. It's like a well-worn Swiss Army knife that's stood the test of time.

So there you have it; a Scrivener user's reflections after trying Ulysses. There's a lot to like and recommend. My advice to new writers, or those transitioning from other programs is to try and take advantage of the trial periods offered and give them both a thorough go.

Are you iOS centric? Do you prefer simplicity over complexity. Do you prefer opinionated designs over old-school flexibility? Do you prefer to outline in different app to what you write in? If you answer yes to these questions then Ulysses may be the perfect app for you.

  1. Scrivener has regular expression support while Ulysses does not. 

  2. Integrated Development Environment 

Share on: Diaspora*TwitterFacebookGoogle+Email