My main writing tool is Ulysses III. Simply put, it’s where my text is. In a way, it’s like an office. When I open the app I write.
What is Ulysses
Most importantly, Ulysses is a writing environment. All writing is done on “sheets,” which are managed by the app. The sheets (documents) are kept in a library, organized with a database. This means all files are kept out of sight and don’t clutter up the documents folder.1
Markdown is Ulysses’ native language, Markdown XL being it’s preferred dialect. It combines plain text with an easy to read display. The brackets, parentheses, and other markup are hidden behind tokens.
At first I thought this was unnecessary ornamentation. Something that was cute, and not in the spirit of “plain text only.” I changed my mind after only a few minutes of use. Simply having URLs hidden behind a token made reading proofing extremely easy.
I’d much rather see this:
Because all files are managed by Ulysses, they’re accessible using the lists in the sidebars.
Native iCloud sync is built-in, and all sheets are automatically saved. Ulysses does have a save command which creates a version. Again, library to the rescue! All documents have a browsable history with the Time Machine-style interface. Creating a version makes sure document is captured as-is in the history.2
This is where Ulysses earns it’s keep. Plain text is universally readable, which makes it a great starting point for exporting. Ulysses can export in PDF, HTML, ePub, and Word/RTF formats.
- PDF: There are built-in styles and many more that can be downloaded. Having a styled PDF maker is much more convenient that having to open a full word processor and create every document from scratch.
- HTML: This can be saved as a styled web page, ready to upload. Or it can be copied to the clipboard and pasted into a blog post editor.
- ePub: A formatted iBook in three click? Yes, please. I need more time with this, but my test books looked nice.
- Word/RTF: Sometimes I have to speak Word. I haven’t had any problems with the output files being unreadable.
Only in Ulysses
There are a few features that seem unique to Ulysses:
Link pasting: If there’s a URL on the clipboard, pasting over selected text will create a link, not replace the selection. I didn’t realize how much time this would save.
Typewriter scrolling: With this option, the cursor stays at one place on the screen. The sheet moves “behind” it, like a piece of paper. Best. Thing. Ever. I absolutely detest having to type into the bottom of a screen. Typewriter scrolling keeps my eyes up.
Dark mode: Other apps have this, and each theme has different dark and light colors. But I can also choose to have the interface dark or light, no matter which theme is active.
Glue/split: Sheets can be merged (“glued”) together or split apart. Also, when multiple sheets are selected, they are viewed/exported as a single sheet. Managing multi-part projects are much easier to proofread this way.
Room for improvement
No piece of software is perfect, here’s where I think Ulysses could be made better.
- Raw HTML preview. I’d like to see raw HTML from an export without having to paste it into a text editor. Currently, the previews only show the rendered HTML.
- Support for HTML elements attributes. Being able to add class and id information to links would save a step after export.
- More consistent image handling. One image on a line is exported as a
<figure>element with the description text in
<figcaption>. Two images on a line are exported as
<img>elements, wrapped in
<p>and the description as
alttext. Some control over this would save post-export editing time.
- Spell check everything. Currently, running spell check doesn’t “reach into” footnotes and photo captions. Their boxes have to be open for spell check to see them. It’s another step for something that should be seamless.
- When using iCloud, Ulysses stores the local copy of files at:
~/Library/Mobile Documents/X5AZV975AG~com~soulmen~ulysses3. Don’t mess with them directly, but it’s handy to know the location for backups. ↩
- The versions are created every minute or so. Specifically creating a version makes sure nothing “falls between the cracks” of an auto-save. ↩