I don’t like outliners. It’s not that I see anything wrong with them, they just don’t click with the way my brain works when I’m brainstorming or planning. It’s why I use mind maps. Nonetheless, I had to try Tree (MAS link) when I saw it. It looked different. It was.
An outliner is an outliner, but Tree adds one thing that makes it infinitely more useful to me and my non-linear thought process: a horizontal view of the outline. It’s basically a right-aligned mind map. Seeing each level of the hierarchy in line with other siblings across different branches suddenly brings the whole brainstorming thing together for me. The column widths are adjustable, and the layout makes it quite easy to drag nodes and entire branches around.
There is, of course, a standard outline view, and you can toggle between them quickly with 1 and 2.
There’s more, though. The keyboard navigation is intuitive and there’s good attention to detail in motion and edit keystroke handling1. Not that OmniOutliner lacks keyboard commands, it doesn’t, but it’s nice to see an alternative that pays as much attention. The horizontal view by itself wouldn’t be worth much if it wasn’t also a really good outliner.
You can also open a “family” (parents, siblings, aunts and all) in a new tab or window, similar to OmniFocus’ “hoist” feature. Nodes can have labels (colors) and notes, and you have the option of editing in Rich Text mode where you can apply different fonts and colors per node. Not sure why you’d do that, but it’s there. You can also turn on checkboxes and/or numbering (configurable formats) for all nodes.
The interface is elegant and easy to work with. It has a sparse toolbar, a tab bar and not much else in the way of chrome. No inspector palletes, no notes panel, no annoyances. Given the superb keyboard control and the fact that the only thing I’d need in the toolbar (the node label dropdown) is accessible from a right click, I just hide the toolbar. Tree looks like this for me right now…
Last but not least, import and export features. Tree uses a proprietary format for storing its own files, but it reads and writes OPML quite nicely2. David Sparks would be pleased. This allows for transfer to and from a wide variety of mind mapping, outlining and writing applications. My favorite part, though, is how it handles plain text.
You can open a plain text file, or you can just paste plain text from your clipboard. If it’s just paragraphs of text, it will turn every line into a node. It recognizes indents, though, and you can create an outline quickly in nvALT, paste it into Tree and have the benefits of the horizontal view and superior outline navigation tools available without even saving a file. OmniOutliner does this, but not as well. I tried pasting an array of different indentation (and even rich text) formats into both, and Tree got it right every time. OmniOutliner only handled the most obvious cases. Also, when you select a node and hit C in Tree, you get an indented plain text outline in your clipboard. You can paste it straight into OmniOutliner or any mind map program that reads indented text. OmniOutliner fails that test.
Beyond OPML and plain text, you can print and export good-looking PDFs as well. Notes are included in all export formats.
Tree also supports Lion goodness: full screen mode, versions and autosave. No iCloud support yet, which would be nice, but there are plenty of other options for syncing. There’s only one thing missing for me, and that’s file linking. When you drop a file onto a node, it inserts a
file:// url, but it doesn’t handle those well so even that’s not useful. I’d love a way to link a file (or other url handler) from nodes.
To sum up, this is an outlining tool that I can really use (and have been). It’s not a replacement for OmniOutliner; OO users who are fast and fluent with it will probably not find much to see here. For everyone else, this is not just an alternative, it’s an amazing standalone solution. Tree is $14.99 on the Mac App Store.
Addendum: I was just notified about a great post by Brandon Pittman, with a more detailed comparison between OmniOutliner and Tree. Check it out.
They’re “standard” details, but ones that so many devs ignore. Intuitively deleting empty nodes on “Delete” and smart edit/create on “Enter”. Arrow keys navigate nodes even during editing if cursor at beginning or end of text. Escape ends editing, escape again deselects the node, arrow keys can restore last selection. Ctrl-enter allows newlines inside of notes. Basic details, but important ones. ↩