WriteMapper - writing with mind maps
One of the major things I use mind maps for is developing longer-form writing. I do best spitting out all of my ideas for topics and chapters into a mind map, then editing the nodes into chapters and paragraphs. I’ve always done this with iThoughts, which has great keyboard shortcuts for navigating and switching between node and notes panels. Then I would view the piece as it came together using Marked’s iThoughts integration, and when it was in a mostly gelled state, I would export Markdown and continue editing in MultiMarkdown Composer.
I’m going to continue using iThoughts for as long as it survives (in case you missed it, it was announced recently that support and development has been discontinued). As I mentioned in a previous post, I’m going to trust MindNode to fill in the gap left behind when the time comes. But for writing, I’ve been playing with a new app called WriteMapper (which I mentioned previously in a Web Excursions post).
The WriteMapper way
WriteMapper is specifically designed for the above use case. It’s developed by a solo indie dev (Guan), who’s built it out into a very polished app.
Writing in mind map form makes it really easy to organize (and reorganize) content as you write, and to pop between topics as inspiration hits. You can write very specific pieces in each node, and easily arrange them in a way that makes sense, without having to plan far in advance. Sure, you can do the same thing with copy/paste in your editor, but I work best with the map layout.
As a side note, MultiMarkdown Composer has a great feature where you can open the Table of Contents view and drag sections around (based on headers) to reorganize the document. It reminds me of an old iOS app called Paragraphs, which I loved but I don’t think it stood the test of time.
I’m writing this post in WriteMapper right now, and I’m finding it very enjoyable.
WriteMapper features
The Editor
WriteMapper has a great editor built in. It’s a much more polished editing experience than writing in iThoughts was. It gives you all your standard shortcuts for bold, italics, and ⌘K for links, and it’s easy to add headlines, though most of those will be added using the node titles.
The editor is your basic plain text editor with a rich text overlay, a la IA Writer or to some extent Ulysses, but closer to a WYSYWIG editor in a platform like WordPress. It’s slick and comfortable to work in, though you can’t see a Markdown view, which I miss from some Markdown-based editors. The underlying format for the document is HTML, so you don’t have a lot of more “word processor” type features available, but for my own writing, that’s irrelevant. Anything I need to do that I can’t in plain text is done with plugins and extensions to my publishing platforms. You don’t get to choose your font for editing, which might bug some people.
As far as Markdown compatibility goes, it will convert some Markdown to the rich text view. Double asterisks will become bold, single will become italic, and inline links will work. However, if you try to hit undo after manually entering Markdown syntax, things can get weird. You’re best off using the built-in shortcuts for these features. Pasting Markdown doesn’t seem to get parsed, either.
If you select multiple lines and hit the bullet list shortcut, it will convert the lines into a bullet list. Hitting the shortcut again (or on any bulleted list) will remove the bullets. Hitting the shortcut for a numbered list behaves the same way, and will convert a bullet list to a numbered list.
You can insert images from file or URL. Most of the time I’m writing for a Jekyll system, where I have my own custom plugins for image handling, so I can just paste in my Liquid code for an image and WriteMapper doesn’t mess with it.
Autosave seems to be non-standard (to macOS). WriteMapper’s implementation can have a frequency set as often as one minute, but if you experience a crash (which I haven’t) you would lose everything up to the last auto save.
WriteMapper also implements spellchecking and autocorrect, and both of those seem to use standard macOS implementation. And for anything spell check chokes on, note that there’s an Add to Dictionary option in the right click menu, as opposed to the more standard “Learn spelling” option.
Document View
An essential feature of WriteMapper is the Document View. While you can traverse and edit your document as a mind map, you can also open Document View and edit it all as one piece. You can’t rearrange anything in Document View, though — for that you have to switch back to a map view.
Document View pretty much alleviates my need for Marked integration, as I can easily see my map formatted as a document, in map order, with a quick press of ⌘4 (or whatever you customize the shortcut to). You can edit in Document view just like in a node view, and it has an outline view on the side for navigation. You can even open the Document View in another window and see changes you make to nodes appear in the full document on save, just like using it with Marked.
Keyboard Shortcuts
WriteMapper has plenty of keyboard shortcuts, but they’re very non-standard for a mind map app. You can, however, easily change the shortcuts in Preferences, and I now have it working more predictably (like Tab to add a child node). ⌘E pops you right into the editor for the selected node, and when you’re done editing, Escape will get you back to the map.
As I mentioned, in the document editor you have your standard word processor key combinations available, such as ⌘I and ⌘B. There are also shortcuts for block quotes, horizontal rules, and lists.
While they don’t show up in the Insert menu, there are also keyboard shortcuts for inline code and code blocks, and code blocks can be highlighted if you check the option in Preferences. Inserting Markdown syntax for these also works (three backticks works, indenting doesn’t).
Other Features
Map views can be linear, nested, or sprawl, which is more of a traditional mind map layout.
WriteMapper can export as Markdown or OPML, but can also export straight to HTML, Word, RTF, and other formats.
For developers, the file format is a basic JSON file with an array of nodes in document order, with the content stored as HTML, so integrating this with Marked will be simple, and recovering old documents if WriteMapper ever stops working will be entirely feasible. Which are important considerations to me.
The app can show you your total word count, character count, and reading time as you edit, and each node can be set to display its own word count. You can also set nodes to tasks and check them off as you complete them.
You can also open the same document in multiple windows for side-by-side editing of different chapters. You can’t have multiple documents open in tabs, as far as I can tell, but if I need two documents open at once, I need them both visible anyway for copying between the two.
WriteMapper also supposedly has some AI features, but I haven’t gotten it to accept my OpenAI key yet and haven’t spent much time figuring that out. I’ll do my own writing for now. The developer contacted me after I published this and helped me work through my issues with the AI integration. I had mistakenly thought that pay-as-you-go with OpenAI meant I would pay as I used it, not that I had to maintain a balance, so my key was telling WriteMapper I was out of money. Also, you have to set the LLM to GPT-4. Now that I have it working, it’s pretty cool — you can have it brainstorm topics, fill in copy, and improve your writing syntax, spelling, grammar, and punctuation.
Now that I have the developer’s ear, I’m angling to get him to add YAML front matter support so that I can more directly use WriteMapper for blogging on my various static sites. It’s a pretty big ask, though.
Wrapping up
In summary, WriteMapper is a great tool for writing. A few quirks, but fully capable for my own needs. The export options are robust, and the document format is standard enough to be easily portable. And being able to construct a piece in a mind map is exactly the way I want to write. WriteMapper isn’t cheap — a single license is US $89. I think it might be more comfortable in the $40-50 range, but I consider it money well spent and I’m happy to support continued development.