There's no shortage of cross-platform writing and note-taking apps available. Most are built on web technologies (and are slow) and few offer the feature set you find in Scrivener or Ulysses.
So, when the developer of Write! app reached out to me by email, asking me to try out an app he described as:
a distraction-free text editor for Windows, macOS and Linux. It has a multitude of features that help focus only on what matters.
...naturally, I sat up and took notice.
Write! falls squarely into the minimalist, distraction-free editor category marketed to writers — it's in good company — sharing the space with Ulysses, iA Writer and others. The old Linux user in me wondered if Write could offer the kind of first-class writing experience you typically only get with macOS (or iOS). So with that in mind, I decided to put Write through its paces — across all its supported platforms.
As with all my reviews, I like to get the bottom line inked first. Write has an interesting approach. The app will cost you $19USD (plus taxes) upfront and you can use the same licence across Windows, macOS and Linux.
After 12 months, if you still want to use their cloud service (more on that below), you'll have to pay $5USD per year. As a point of comparison, Ulysses will set you back $4.99USD per month or $39.99USD per year.
This model in my opinion is fair and justifiable and much more palatable than subscriptions a la Ulysses. Apps are not services but syncing to a vendor-developed and hosted platform is a service and I have no problem with paying for that convenience. That said, if Write's developers opened sourced their syncing server and let you self-host, that would be even better.
Let's face it, there's not many decent cross-platform applications out there. That's because they are hard, costly and time consuming to develop. Typically, when a developer decides to make an app cross platform they have three choices:
- Port the app to each platform's native UI tool kit
- Use a cross-platform tool kit
- Box a web app in a pseudo-native application wrapper.
Write's developers have chosen option number two, using the QT framework. I salute their effort, I really do — it's a much better approach in terms of performance than wrapping up a web app or using the Chromium runtime.
The problem with this approach is that cross-platform tool kits look and behave like the proverbial fish out of water. Write is no exception, looking and acting very out of place on macOS and Ubuntu. Windows is slightly better and I assume that's where the bulk of the development effort has gone. It would look great on the KDE Plasma Desktop (which uses QT natively), but I didn't test it there.
Still, I belong to a fairly small niche of cross-platform writers. My primary drivers are macOS and iOS. Professionally, I also use Linux. For gaming and Photoshop, I use Microsoft Windows.
The platform that matters
What's missing is mobile. Even though its possible to build Android and iOS apps with QT, they don't appear to be on the cards. There's a growing group of trendsetting writers who are migrating to tablet-based, mobile-OS computing — Write's got nothing for that lot.
Now, I don't necessarily sip the post-PC Koolaid, but like many writers, my iPad is a key part of my workflow. It goes with me everywhere, complete with my little Brydge keyboard, my writing stored in Scrivener for iOS. With Apple's current laptop line-up being less than appealing to me, I'm more — not less — likely to increase my reliance on the iPad as time goes on.
Writing with Write! Macsen
I'll kick off by saying that Write! offers a very pleasant writing environment. The UI is clean, elegant, uncluttered, and performs well. In fact, it's a little reminiscent of iA Writer or Ulysses but with a dash of Sublime Text thrown in to keep things interesting.
Write adopts the same collapsible tri-panel layout as most of the crop of current editors. On the left you have the library (Cloud or Local). The right-hand side features the Navigation Bar (think Sublime's Mini map) or the Style preset picker when toggled.
The central panel contains the editor, where you'll do your writing.
The editor has most of the features offered by other focus-oriented writing apps. Like iA Writer and Ulysses, there's an optional focus mode that dims every paragraph but the one you are writing. There's a full-screen mode for blocking out the rest of your desktop. You can even enable typing sounds with a choice of a traditional typewriter or mechanical keyboard. It even has intellisence-like word completion, again like you'd find in a programmer's text editor like Sublime Text. I also found the animated cursor particularly hypnotic when jumping rapidly between paragraphs.
A writing app is worthless to me unless it has a solid system of sane keyboard shortcuts. When I'm writing, the last thing I want to do is break my flow reaching for the mouse or trackpad to dig through a menu.
Write's keyboard shortcuts are one of its strengths. Right out of the box you can use the defaults to apply formatting changes, access features and toggle parts of the UI. Write also features a powerful shortcut manager, allowing you to assign and customise shortcuts for just about every feature in the app.
Take the time to learn or customise these shortcuts and your efficiency hits the roof. I frequently found myself calling the Context Menu1, using it to apply formatting and adding hyperlinks — having that functionality at my fingertips is awesome.
Document statistics and sessions
As with most writing apps, you can keep track of a variety of statistics including word count, character count, reading time. What I couldn't find (at least on Linux) was the ability to set targets like you can in Scrivener and Ulysses.
Sessions are a unique concept, allowing you to divide your writing into contextual, time-bound groups. Personally, I didn't find this useful but for those who practice time-tracking, the feature may be appealing.
Other Hidden Gems
Write's got plenty of hidden gems, including some feature I've often wanted in other editors I've used. For example:
- Section/header folding in the editor.
- Configurable auto-complete (i.e. the intellisence feature I noted above).
- Regular expression support.
Taken as a whole, they make Write a very powerful tool — particularly if you take the time to learn.
Glaring omissions and nitpicks
Yet, using the editor after a while, I started to run into limitations and the deeper I went the more annoyed I became.
Write doesn't support images, footnotes/citations or tables — if you need to create those elements, you'll have to take your document elsewhere. I've asked the developer when image support will be added; it's on their road map but they don't have a definitive time yet.
Markup support is minimal
Markdown in Write feels like a second-class citizen. Like Scrivener, Write is a rich-text editor that offers basic support for plain text (not just markdown I might add, but also textile and wiki text).
The included Markdown engine is bare-boned. Write doesn't support the extensions you'd find GitHub flavoured markdown or MultiMarkdown. So, again no tables, no images, no definition lists, no footnotes and no metadata.
Note that an update (release 22.214.171.124) went live in February that fixes some of the bugs and introduces syntax highlighting, but most of my criticisms still stand.
In lieu of that, I'd like to see one of two things:
I tried writing MultiMarkdown tables and footnotes but they got badly mangled on export. I don't expect Write to adopt MultiMarkdown, but what I'd like to see added is a feature like Ulysses where you can tag a section of the document and have it passthrough on export unchanged.
At the moment, Write's got its foot in two camps and it's yet to strike a balance. After scratching my head, I reached the opinion that its a pointless endeavour. No-one has successfully created a really good hybrid rich-text and markdown editor and I'm not even sure they should.
Give up on markdown and concentrate on being a good rich text editor. By all means, keep markdown (et al) as an import/export option. Write is a beautiful rich text editor — that's its strength and the developers should focus on bringing much needed rich features like image, tables and footnotes support.
Spell checking is (badly) broken on Linux, particularly for languages other than US English. The behaviour is completely random and inadequate from document-to-document. It wouldn't honour British usage at all, it highlights capitalised words (even at the start of a sentence) as incorrect and sometimes, it just plain didn't work, i.e. not showing the little red squiggles at all.
I'm not sure if that's because of a missing system library or a bug. The Linux client is built with QT, which is notoriously flakey on GTK-based desktop environments like GNOME and MATE (which I'm using). Having used Scrivener on Linux, I can attest to very poor spelling support on that too and if I'm honest, it's one of the reasons I switched back to macOS.
Speaking of the Mac, Write has a similar problem there too. Because Write is built with QT, it doesn't have access to the macOS's built-in dictionary (which is the Oxford English, I might add) and proofing tools. Both of which are miles better than Wordnet or any free crap that ships with QT.
Proprietary file format
Internally, Write uses a proprietary, binary format to store rich-text documents. In practice you won't see it unless you save or move a rich-text document to the local library. What it means is you can't open or edit a rich-text document in any application but Write — in fact, I corrupted a document while attempting to do so.
In 2018, that kind of sucks. Even Scrivener, with it convoluted macOS bundle format still stores individual binder documents as good ol' RTF, meaning that in the event of a disaster, your work can be recovered in just about any word processor.
Given the format is undocumented, I'm extremely hesitant to use it.
Write is a cloud-capable editor which encourages you to store your content on their platform. It's not mandatory — you can use a local folder — but the app works best if you embrace the cloud, in particularly their cloud.
Cloud syncing and backup is one of Write's highlight features. It works and works well, with documents automatically synced on save. In fact, it's better than Scrivener's DropBox syncing and much more like Ulysses' iCloud-based approach.
The app can even traverse through a network proxy — a boon for me. To test this, I created a document in work where I must connect to the internet through a corporate proxy and it was there waiting for me when I got home to my MacBook Air.
My only hesitation is the fact it's not my cloud or even retail cloud provided by a third-party like Dropbox or Google. Most writing apps I've reviewed either use DropBox or iCloud or both — granted those aren't my clouds either, but I at least understand my relationship with them and I can access into them from anywhere in the world to retrieve a file. If I have to use a proprietary cloud service, I want the assurances that it's secure, private and it's going to be around long-term.
Note, that I touched base with the developer and they told me they use Amazon's S3 as their cloud provider. S3 is excellent, it performs well and is secure, but obviously the data is under the developer of Write's control — not mine.
For the tin-foil hat brigade, I'm pleased to report that using Write's Cloud service is not mandatory. You are free to store your documents locally in a directory of your choice. However, it comes with the caveat that with local storage, several features no longer are available — such as searching, document TOC and moving documents between folders.
Organising and managing content
The Cloud is where the application behaves at its best with all features unlocked, so that's where I'll focus this section. You can search documents in the cloud (but not locally stored docs). Searches can accept various criteria including case sensitivity, whole words or regular expressions.
Write organises your writing into folders and documents, much like Scrivener or Ulysses.
Much of how you organise your writing is done in the Cloud Panel. With it you can create folders and move documents between them with the ease of drag-and-drop.
For any open document in the library, you can expand the disclosure triangle to see and interact with the outline. This is analogous to Microsoft Word's Navigation Pane, and works in much the same way in that it displays the document's headings and provides the ability to jump between sections. What's missing is the ability to reorganise sections as you can with Word, Scrivener's binder of MultiMarkdown Composer's TOC panel.
Exporting and Publishing
Write has several ways to get your writing out there to the wider world — from basic file exporting to publishing on several cloud platforms. However, I've discovered a deal-breaking flaw in the system...
Exporting allows you convert and save a document to your local file system in a variety of formats, including:
- Plain text (markdown, textile, wiki)
- Rich text (HTML, Word, Open Document)
After testing the output across several formats, my opinion is Write's export capability is mediocre at best.
Markdown export was a little mangled (random weird linebreaks and characters). Again, the lack of a specific passthrough block is badly needed here.
When exporting to Microsoft Word, the styles used aren't particularly semantic (i.e. Title1 instead of Heading 2). When exporting to Open/Libre Office, styles aren't retained at all.
When exporting to HTML, the output is quite cluttered. Styles are embedded in the document and there's a liberal sprinkling of unnecessary classes. There's no option to customise what you get — which is a facsimile of whatever style preset the editor panel is using.
Exported PDFs take on the editor presets too and they look quite good. However there's no way to add page numbering or titles to the header/footer or configure your margins, layout or paper size.
In summary, export give you a means to take your document into another app where you'll then get it ready for formatting.
Write's fatal flaw
Modern writing systems like Scrivener, Ulysses and iA Writer are built on the concept of assembling documents from small chunks. In Write, that's simply not possible — there's is no mechanism at all to merge and compile multiple documents into a single manuscript. In Write, every document is an island.
For long-form writing, that's a deal-breaker, at least for me. There's no-way in hell I'm going back to the dark days of bashing out 100,000 words in a single document. While it's true I can still break up a book in Write — say one document per chapter (scene-based writing would be a disaster) — I'm not going to individually export and then stitch together 20+ chapters into a single manuscript in some other app. Not happening.
Where Write's export features are pedestrian at best, it does provide the means to publish directly to Wordpress, Medium or using Write's own servers — though given the lack of image support, your posts will be text only.
On the whole, I've really enjoyed using Write. The editor is delightful to use, easily meeting its promise to be a focused place in which to write. I love the UI (especially dark mode) and really appreciate the fully customisable keyboard shortcuts. While using it on Linux, I had to remind myself I was using Linux — it's easily the best writing tool I've used on that platform, even though I encountered some rough edges.
However, once I went beyond basic prose, I started to find the pain-points and the more I used the app, the more they gnawed upon me.
I've been left wanting and hesitant to commit further. The lack of support for images, citations, tables, document metadata and customisable export, make Write a poor choice for writing rich and complex documents. To finish this article, I had to export it to Markdown and finished it in MultiMarkdown Composer. The lack of long-format organisational features make it tedious for writing anything longer than an article. The proprietary document format and cloud, make me more than a little uneasy about the prospect of vendor lock-in.
In concluding any review I like to finish with a recommendation and try to identify who I think the app will work for. But I've found that quite challenging this time. Honestly, I think writers of long-form content should look elsewhere.
On the Mac and iOS side, it is easy to dismiss Write — it's competing in a very crowded space, and it's a poor macOS citizen. Ulysses and iA Writer are much better text editors while Scrivener is much better for long-form writers.
I'm also hesitant to recommend Write for Linux users because of the annoying bugs I encountered. Also, most users of Linux are drawn to the platform because of the promise of free and open source software -- Write is none of those things.
Windows is the platform with which I'm least familiar but I suspect this is where Write shines best. If you predominantly use Windows, it might be worth a look.
Yet, despite my criticisms, there was something extremely compelling about starting this review on Linux (in one location) and then having it waiting for me on my MacBook Air when I got home. Couple this convenience with Write's gorgeous UI and you have the making for an appealing writing experience — so long are your domain is prose and only prose. Write is not for me, at least not now, but it is certainly an app I'll continue to watch with considerable interest.