Ulysses – The Ultimate Writing App

There are so many apps for writing on iPad, with each one boasting unique features in an attempt to stand out. I’ll be taking a look at Ulysses, which has features such as the ability to add attachments, markdown support, splitting and merging documents and much more, Ulysses will appeal to students, authors and anyone else who finds themselves writing. In short – it’s one of the best apps I have ever used.

Ulysses is described as an enhanced plain text editor by its creators, The Soulmen. Using markdown, Ulysses produces a realtime preview of what you write. It’s got powerful features such as inline images, footnotes and text annotations that are powered by the custom Markdown-XL language it uses, based of the most popular markdown syntax. Let’s first look at the basics of the app, and then go into the editor and all of its unique features.

Ulysses is available for all Apple devices. It has a universal iOS app that is available for iPad and iPhone, and also has a Mac counterpart. Ulysses used iCloud, or optionally Dropbox, to quickly sync your documents1 – called ‘sheets’ in Ulysses.

With three ‘panels’, Ulysses will look right at home for people who have used Finder on MacOS. In the first panel, your groups appear. Groups are like notebooks, and they are used to organise sheets2. The second panel is where sheets come up, showing you the title and a small snippet of text as well as the keywords attached to that sheet (this will be explained in more detail later). Finally, the third panel is where all the action happens. Tapping on a sheet collapses the first two panels, and brings up the editor. I’ll go into the editor later into the review.

The three panels - groups on the left, a sheet in the middle, and the editor on the right
The three panels – groups on the left, a sheet in the middle, and the editor on the right

If you ever need to quickly access a sheet, Ulysses allows you to favourite sheets so they show up in a dedicated favourites area. This allows for quick and easy access to certain sheets, so you don’t need to go hunting around for them.

Ulysses also has filters, which enable you to drill down to find sheets that contain certain words, keywords and dates. This adds another layer of customisation and power to the app, and allows you to find the things you need quicker.

Search is another less powerful feature of Ulysses. It doesn’t have any powerful options such as wildcards, Boolean operators and other snazzy stuff that apps like DevonThink Go have – it just searches your entire library. And to be honest, I don’t really think it needs super powerful features. As Ulysses is an enhanced markdown app, you don’t use it to store PDFs, images and more. You just write in it, and I think that the search in Ulysses is perfectly fine as you are just searching text.

One of my favourite features in Ulysses is actually a pretty small one. It has a custom library of around 100 icons that you can apply to your groups. You may be wondering what use this has, but it actually can help you to quickly identify a group by just the icon. For example, I have two sub-groups under by main ‘The Nerdy Student’ group. One is for current posts that I am writing and that need to be published, so it has an open book. When I’ve published a post, I move it to the group underneath, which has a closed book and a tick. I can quickly glance at these icons and know what that group is for.

Icons in Ulysses allow for quick identification of groups
Icons in Ulysses allow for quick identification of groups

The editor

Opening a sheet brings you to a distraction free (I’ll go into the distraction free aspect later in the post) editor, which is amazing in Ulysses. It uses a custom markdown syntax that is based off John Gruber’s markdown, so it’s easy to learn for existing markdown users. Fan of alternative markup languages such as Minimark or Textile? Ulysses allows you to use those if you want. In Ulysses, the editor is the preview. For example, when adding asterisk to make a text bold like you do in markdown, for example: **bold**, the text appears bold between those asterisk. This is great as you can see what the person reading your text will see as they read it, without having to change to a preview screen.

Plain text enhanced, with a live preview of markdown.
Plain text enhanced, with a live preview of markdown.

Adding URLs is another great feature in Ulysses. To add a link in markdown, the syntax is [Site](site.com). In Ulysses, as soon as you type [Site], a pop-up appears that allows you to add a link and an optional title that appears when you hover a cursor over that link. After you close the pop-up, the words that you added a link to are highlighted to show that they are linked to. Another nice way to add a link to text is by highlighting the text you want to link to with the link on the clipboard, then tapping the paste button. This automatically links that text to the link on the clipboard, which is really handy.

Adding a link to a piece of text with the popup (left), and the linked text as seen in the editor (right)
Adding a link to a piece of text with the pop-up (left), and the linked text as seen in the editor (right)

One of the best features of Ulysses by far is the ability to add inline images, and this is one of the features I use the most. Typing (img) brings up a pop-up very similar to the link one, that allows you to add an image inline with your document. You can add an image description and title too.

Footnotes are also supported by Ulysses – by typing (fn), a pop-up appears that allows you to type the footnote in, and then you can close this pop-up. The footnotes are added to the end of the document and link to the corresponding note and the document entry.

For those of you that markup drafts a lot, Ulysses may also interest you. Markdown-XL allows you to cross out, highlight and comment on a document. For example, by surrounding text with ||, you cross that text out. What to add an inline comment? Just type ++ at the start of the line. The nice feature about this is that some exports hide the annotations, whilst some show them. For example, exporting your document as the Swiss Knife style PDF export hides them, but exporting them with the Rough Copy shows them (rough copy is used for sharing draft annotations in paper form).

Fans of distraction free editors will also like Ulysses. When editing a document, Ulysses enters a full screen mode that hides everything apart from the suggestions bar at the bottom of the screen3. If you want, you can have a bar that shows the page metrics at the bottom of the editor, which some may find handy.

The distraction free interface of Ulysses.
The distraction free interface of Ulysses.

Ulysses supports all the newest iOS features, such as split screen. You can use Ulysses to write as you have research showing, or if you want to be distracted, Twitter or YouTube. I often plan a post on a mindmap in MindNode before writing it, and split screen is really useful to have that mindmap up whilst I am writing the post.

Using Ulysses with MindNode
Using Ulysses with MindNode


If you want to change the look of Ulysses, you can. Ulysses allows you to customise the editor theme, and comes with a handful of themes preinstalled, and also has a dark mode. If you don’t like any of those themes, the Ulysses style exchange has user made themes that anyone can make4 and install into Ulysses. You can customise line height, paragraph spacing and text zoom in the editor too, and writers will be interested in the automatic indentation of new paragraphs that can also be enabled.

Custom fonts are supported by Ulysses – a feature that lacks in many other apps. If you have a font you like, you can use the Ulysses extension to install that font into Ulysses and use it.

The shortcut bar

Ulysses provides shortcuts that are built into the suggestions bar to allow users to quickly access keys that would usually take a while to access, and things such as sheet metrics and search in the sheet. The advantage of all these buttons being integrated in the suggestions bar means that they can be seen even when in split view, which is handy as they are not compressed.

A search tool can be found to the left of the suggestions bar – it’s pretty self-explanatory. You can search the whole sheet for a word, and you can also use it to search and replace.

Sheet statistics are next in the suggestions bar. By tapping on the speedometer icon (or pressing CMD+7 with an external keyboard), a bar with statistics appears at the bottom of the document. On it you can have characters, words and the usual statistics you find in text editors, but there are also some other useful ones. For speakers, you can have an ‘aloud’ metric, that tells you roughly how long it will be to speak out loud, and for writers the reading time metric will come in handy – you can set this for a slow reader to a fast reader, and everything in between (including an average reading speed).

The shortcut bar with text statistics
The shortcut bar with text statistics

Next are three icons, the first of which allows you to easily add markup like headers, raw code blocks, lists and more. You can also use it to indent and outdent a paragraph, as well as to remove markup. The middle one is an A with a cursor next to it – this one is more markup such as image markup, footnotes and making text bold. Finally, the command style button has shortcuts to keys that would usually take quite a while to reach on the software keyboard, and that button allows them to be quickly added.

Powerful features


As mentioned before, you can choose two ways to save your documents – with iCloud and Dropbox. One of the terrors of the modern age is losing work that you didn’t save, but Ulysses has you covered with this. If for some reason iCloud didn’t save a document and you lost all of your work (I’ve used Ulysses for ages and this has never happened to me), Ulysses automatically backs up your sheets locally to your device. Hourly backups are made of the past six hours of work, daily backups for the last five days, and weekly backups for the past two months. This is really nice as it adds a layer of safety to the app.

To access the backup, go to the first panel where you find your groups and tap on the back button. You’ll see iCloud, Dropbox and external files. Tap on manage, and you’ll see a button saying backup. When you tap on this, the panel will switch to timestamps and a black and yellow bar will appear at the top of the app to warn you that you are touching backups and you probably don’t want to mess around. Tapping on a timestamp will show you how your library was at that time, and you can reinstall individual sheets from there.

The backup in Ulysses
The backup in Ulysses

As I’ve said before, iCloud backup is super reliable, and you probably won’t ever need to use the backup. However, it is a nice safety net just in case.

The sidebar

When in the editor, to the right you’ll see a paper clip. Tapping on this brings up the sidebar, a place where you can add keywords to your sheet, goals, notes and attachments.

Keywords are like tags – they are words that are ‘key’ to that sheet – for example, when I wrote this post in Ulysses I added the keywords of ulysses, ios and mac. For an essay you may write, you could tag it with the subject it is for, and so on. Keywords can also be used in filters, which I went into earlier in this post, and you can sort sheets by keyword.

Writing goals are so helpful. You can track metrics of your sheet5 with them, and they help you know if you are on target to reach your goal, on your goal or past your goal. Goals are super-customisable. You can set the metric you want to track – words, characters, reading time, speaking time and more – and then you can set if you want the sheet to be at least, at most, or about that metric. For example, if you were writing a speech, you may want that speech to last ten minutes. You would set the metric to be tracked to be aloud time, and then set it to be about ten minutes. This means that you can be slightly shorter or longer than ten minutes, and your goal will be green. If the speech becomes eleven minutes, the goal will go red as you have overrun it. When you hit a goal, Ulysses shows a little green circle in the top right of the editor, and also shows the same circle in the sheet overview when you are viewing it in the second panel.

An uncompleted goal, with completed goals below.
An uncompleted goal, with completed goals below.

If you want to add quick reference notes to a document, Ulysses lets you do that too. The sidebar has a ‘mini-editor’ built into it, and you can use Markdown in that sidebar to style the notes, so you can add links, lists and more. You can also add images into the sidebar so you can refer to them quickly.

My sidebar for the [Things 3] review
My sidebar for the Things 3 review


X-callback-URL is also supported by Ulysses, which is handy if you use an app like Launcher. X-callback-URLs are URLs that link to certain parts in the app. For example, Ulysses allows you to make a specific sheet in a certain groups with x-callback-URLs, which I use a lot. I use Ulysses to write my school essays, so I have a widget in Launcher that launches this URL: ulysses://x-callback-url/new-sheet?group=/School. This creates a new sheet in the group called ‘School’.

The x-callback-URL can also be used to launch certain views, such as a certain group and more. It’s pretty handy when you want to quickly create a sheet.


Exporting is an important part of any text editor, and Ulysses does it very well, and offers users lots of ways to export their sheets. In fact, you can export entire projects which is very handy if you are a writer. There are multiple formats that Ulysses supports:

  • Text – There are four ways to export as text – plain text which is without images and without formatting. Next is rich text, where it exports with images, formatting. Markdown is like plain text, but exports with all the markdown syntax left in, and then there is Textbundle, a way of exporting and sharing markdown that includes images.
  • HTML – This is handy if you want to paste your writing into a web page. You can choose between a full page – where <body> tags are included, with tab header and all the meta data, or snippet, which is just the body of the HTML and the stuff you want.
  • ePub, PDF and DOCX – Each of these exports are similar – you can choose a theme, and there are loads to choose from that come preinstalled in the app. Don’t like any of them? Simply go to the Ulysses style exchange and choose a theme you like there. Then, open it in Ulysses and it will install. If you are exporting with ePub, you can add author name, title and a cover image for the book.
  • Publishing to WordPress and Medium – If you write a WordPress blog, or use Medium, you can publish to those platforms directly from Ulysses. I write all my posts in Ulysses, and then publish them from the built-in WordPress publisher. It’s great as it lets me add tags, categories, a featured image, schedule the post and so much more all inside the app. It’s really helped with my workflow, and I recommend any writers who use WordPress or Medium get Ulysses to start publishing posts.

Exporting is a strong point in Ulysses – it lets you export the text easily to anywhere you want it. This being mentioned, I found when I tried to save a Ulysses sheet into Evernote using rich text, it would save as a .zip file. However, using this Workflow, you can extract the zip and then add the extractions to Evernote, so it looks like it should.

Ulysses on Mac

If you are a Mac user, everything I said above applies to the Mac app. One of the great things about Ulysses is that there is no variation between platforms, so you don’t have to learn how to use the Mac app if you used it on your iPad or iPhone. The only notable difference between the MacOS app and the iOS apps is that you can make themes on Ulysses for Mac.

Of course, all your sheets are synced across your devices by iCloud or Dropbox.


Ulysses is certainly one of the best five apps on my iPad and iPhone – it even earns its way into the quick launch bar at the bottom of the home screen. I write all my posts in it Ulysses, and I also write essays and any long form text in it. The diversity of export methods means that I’ll find the right look for whatever I’m writing, and DOCX export means I can share it to people who use Word. Ulysses also looks great – its clean and polished, and looks right at home on iOS.

I recommend Ulysses to anyone who writes.

Ulysses is free on both iOS and macOS, with a 14 day trial, and is £39.99 afterwards. View full pricing here.

Thanks for reading!

Feel free to comment below!


  1. You can still access, make and do anything in the app offline, as all your sheets are downloaded locally to your device. The app shows a little cloud icon next to a sheet that needs to be synced.
  2. Think of them as notebooks, and of sheets as notes.
  3. I would like to see a setting that allowed the status bar (with battery info, wifi .etc) to stay at the top.
  4. However only on Ulysses for Mac. Sadly, at the moment making themes on iOS is not supported – hopefully it will be soon!
  5. Writing goals can also be set for entire projects, which comes in handy if you are an author and you use a project for a book, and sheets for individual chapters.