Ulysses App Review & Impressions

32 thoughts
last posted April 1, 2015, 10:05 p.m.
get stream as: markdown or atom

Support for YAML is probably a long way off but it could go several ways:

  1. Hardly Nothing: Just strip YAML headers in document previews (just like Marked)
  2. Minimal: Implement syntax highlighting for YAML headers along with stripping YAML in document previews
  3. Nice: Implement basic metadata (say title, date, and author) per-sheet and per-group, in an "internal" Ulysses format, and optional inclusion of this metadata as YAML when exporting to Markdown. Plus #1 and #2 for use in external files.
  4. Really nice: In addition to #3, allow users to define their own custom fields. To preserve some simplicity, these need only support strings of text and could be the same for all projects.

At this point, I find the app frustratingly close to perfect.

I don't mind the iCloud storage, though I'd mind it far less if I could export a group of sheets as individual files.

If it had YAML or some other metadata support I'd buy it now.

The editing environment itself, as I've said, is the best I've ever used for prose.

But absent the YAML support it doesn't really help me. I'd just end up implementing a bunch of complicated workarounds to compensate.


The dev team is very active on twitter so scrolling through their tweets is a good way to find out what other users are asking for.

Big things on their todo list seem to be:

  • iPhone version
  • Dropbox sync
  • Internationalization (for iPad)
  • Docx import/export
  • Support for Tables

Commonly requested features that they are still not committing to any time soon:

  • Collapsible groups
  • Goal support for "external files"

I was curious about how to create my own styles for PDF, HTML and ePub exports. I finally found a reference, Styles in Ulysses III, linked in the footer of the "download new styles" section of Ulysses' website.


Another image management idiosyncracy that is far from being clear or obvious:

  1. If you drag an image into your document (again, excluding "External Folders" documents here), Ulysses keeps its own copy of that image for use in previews, etc.
  2. But you can also specify a URL for that image. What happens then?
  3. If you don't add a URL to an image:
    • HTML previews and exports use Ulysses' copy of the image. When exporting, Ulysses will save its own copy of the image file alongside the HTML file.
    • Markdown previews and exports will refer to a generic local copy of the image. When exporting, Ulysses will save its own copy of the image file alongside the HTML file.
    • PDF previews and exports will embed Ulysses' copy of the image.
  4. If you do specify a URL for the image:
    • HTML previews and exports will use the image located at the URL. Ulysses will not save a copy of the image alongside HTML files when exporting.
    • Ditto for markdown previews and exports.
    • PDF previews and exports will still use Ulysses' local copy of the image.



Image management: If you drag and drop an image into a Ulysses document, you're not simply creating a link to that image. Ulysses keeps its own copy of the image and includes it in any future exports. You can move or delete the original with no effect on your document.

(The exception is if your document is living under "External Folders", however — you are merely creating a Markdown link in that case.)


App crashed for the third time today. Seems to happen most often when switching projects.


Most Markdown editors get the two-trailing-space rule wrong in their syntax highlighting, but get it right when actually exporting to HTML. Ulysses gets it wrong everywhere.

[EDIT: @UlyssesApp tweeted to explain that their app does manual line breaks with SHIFT+Enter, which exports as <br> in HTML and two trailing spaces in Markdown.]

The correct HTML result for the above snippet is:

<p>This is a block quote<br />
that should<br />
continue to<br />
the next<br />

Ulysses generates the following incorrect HTML:

<p>This is a block quote </p>

<p>that should </p>

<p>continue to </p>

<p>the next </p>


Minor Significant Markdown parsing issue: like nearly every other Markdown editor, Ulysses does not correctly interpret the "two trailing space" rule for manual line breaks.

Here is an example:

The original Markdown spec says you should be able to create a manual line break (i.e., without ending the current block or paragraph) by ending a line with two spaces.

In the example above, you can see the two trailing spaces but the block quotation syntax highlighting does not carry through to any of the lines after the first one.


Nice touch in the HTML conversion: If you put an image on a line by itself, Ulysses converts this to an HTML5 <figure> (along with a <figcaption> if you entered a caption) which is awesome. (This is one of those things that PHP MarkdownExtra still gets wrong.)


That's a real shame because Ulysses' actual text editing environment itself is the best I've ever used for prose.

  • Visually, the design defaults for various formats (bold/italic, links, block quotes, etc) are great
  • The shortcuts for footnotes and images are wonderful
  • Simple and easy-to-remember hotkeys for the most common editor tools (toggling side panes, opening previews, navigating headings)

So far I've found several things that prevent me from using Ulysses with the system I've developed for getting print-quality PDFs out of my Markdown:

  • No support for most metadata
  • No one-step way to export a group of sheets as a collection of files vs. one big file. (I could click and export each one separately but that would be far too tedious.)

Going into this review, I actually thought that list would be longer. Still, those two are enough that I'd have to either abandon Ulysses or scrap my system.

These are actually a concern for future-proofing as well. Should I invest time in using Ulysses and later decide to switch away from it, I would only be able to export my sheets as one long combined file per group. If my post-Ulysses world requires individual files then I would have a lot more work to do.


I'm not yet sure what I think of Ulysses keeping everything I write inside its own little black box.

Actually I think it's silly.


Sad to say, Ulysses has no concept of YAML metadata for Markdown files.

If you include it in your sheets, Ulysses will not know what to do with it. For example, the sheet "preview" will not recognize the title — here's a screenshot:

Also, the built-in previewer for HTML, PDF, etc, does not recognize YAML at all.

In fact there's no support at all, anywhere, for the most common kinds of metadata (title, author, date, etc), either per-sheet or per-project. This seems like a glaring omission for an app that purports to fulfill all the needs of novelists and bloggers and journalists.


I have to say that, for simple projects, Ulysses' quick export functionality is far superior to Scrivener's excessively fussy "Compile".

You can export any sheet (or group) as a PDF, HTML (snippet or standalone document) ePub or Markdown.


Thoughts on the above UI:

  • Did you know you can click on the word "Text" to switch to other types of export? Neither did I!
  • All those little blue buttons...I'm not sure what exactly they do, and in order to find out I have to sit over them for a frustratingly long time waiting for the "tool tips" to appear.

You know what would have been nice here? A full-blown dialog box which actually makes optimal use of my laptop screen, makes each function clear, and maybe comes with keyboard shortcuts of its own.

Instead, the design direction seems to have been (in this and many other cases) to ape the iOS version of the app to try and keep them identical.


OK, I think I figured out the PDF export option above.

Which leads me to: The "Quick Export" popup is actually an interesting case study in sub-optimal design.


OK it seems to be working normally again... for now.


Upon reopening, went to open my first "group" I'd created outside the intro/tutorial.


(I should note I'm using a late-2013 rMBP with 16GB RAM)



Oh well, hit reopen.


Now I've reached a part of the tutorial that says to try previewing a PDF export — but PDF doesn't seem to be available as an option. Weird.


An alternative to native "groups" is using "external folders" as groups.

In External Folders, you can edit classic text and markdown files from anywhere on your Mac. As an example, you can point Ulysses to a folder on Dropbox, and have its contents behave just like native groups and sheets.

In this mode, you can't use attachments or images.


Ulysses "projects" are called "Groups" (a group is a collection of "sheets")


Ulysses is somewhat opaque about how your writing is actually stored, so here's what it looks like after a few minutes.

  • Ulysses definitely Markdown-like, but it is not just a plain text editor with Markdown highlighting.
  • It appears to use its own internal file format.
  • By default your "files" are not saved anywhere you can see on your file system. They're either stored within the app itself (details unknown) or on your iCloud drive.

Nice touch in the editor: highlighting text displays invisible characters (spaces, line breaks, etc)


Ulysses "sheets" are somewhat analogous to "documents" within Scrivener — chunks of text that can be rearranged.

Unlike Scrivener, sheets cannot be in nested groups or folders. Only flat ordering is supported.


I must say I love Ulysses' bright blue text cursor. It's not block-style but it is nice and thick.

edit: It appears that this is the "iOS" style cursor, you can select the normal OS X black thin-line cursor in the preferences.


It pops up with a kind of tutorial in the form of a "sample project", probably the best way to do a tutorial. I don't mind this; I put in the time to complete a similar tutorial in Scrivener and found it well worth my while.


On startup it asks you how you prefer your Markdown italics & bold (asterisks or underscores). I found that kind of a strange design decision.


The demo gives you 10 hours to try out all the features so hopefully I can get this review done in that time today, in between everything else.


Looking for an editor to use within the context of Making a Book-Making Machine. Thought I'd give the demo version of Ulysses (Mac OS version) a spin.

Don't bother with the promo video on that site unless you like montages of people typing — that's literally all it is.