- Why are line breaks not supported in Tana?Dec 02, 2024
- What is the difference between the Owner and a Parent of a node?Sep 26, 2024
Outline editor
Overview
Tana is a knowledge graph, with the interface of an outline editor. Nodes in a graph database do not usually come with any structure out of the box. The outline editor creates a tree structure, which defines hierarchical relationships between nodes, such as ancestors (nodes on higher levels) and descendants (nodes on lower levels).
Using an outline editor is the simplest way to organize ones thoughts. Instead of distracting you with styling, formatting and fonts, the outline editor nudges you to focus on the structure and flow of your thoughts, notes, arguments or stories. This will help clarify your thinking more than anything.
Each bullet point in the outline is a discreet piece of information, called a node. Nodes in Tana are the Lego pieces of your knowledge. Their atomic nature allow them to be rearranged, reused, and remixed in many ways. It’s a replacement for files and folders, and gives you the ultimate flexibility and speed. For more on nodes, see Nodes and references
Are there documents in Tana? Any node can become the "document" you are focusing on - just zoom into it. If you want to focus on one section, expand it and collapse the rest. In this way, the "node-as-document" adapts to your shifting needs and focus.
Basics
- In Tana's outline editor, your information exists in a natural hierarchy. At the root of this hierarchy is the workspace node. From here, there are three main trunks where you can place new nodes: the Library, Home or Calendar nodes. The hierarchy looks something like this:
- Workspace node
- Library node
- Home node
- Calendar nodes
- Workspace node
- Different branches, different logics. On the home node, you can build your own hierarchical logic. On the calendar nodes, you are placing nodes according to the logic of time (e.g. days, weeks).
- To nest information in the hierarchy, indent it with Tab. Indenting your information makes it easy to expand or collapse details as needed, and already imbues your information with structure and relationships by way of its place in the tree. You can outdent with Shift+Tab
- Nodes are expandable and collapsible. This gives you full control over how much context you want to see, making complex information more digestible by breaking it down into manageable, collapsible parts. Press Cmd/Ctrl+↓/↑ to expand/collapse nodes under the current node.
- Use references to refer to the same thing in different places. To copy a reference of a node, focus on the node and press Cmd/Ctrl+C (you should see a little bounce animation on the node), and paste anywhere else. If you update this information or change your mind about it, it'll update everywhere it has been referenced.
Details
Tana is a graph database with an outline editor interface
At its heart, Tana is a graph database - a powerful way to store and connect information. Tana lets you create the structure and connections that most naturally fits your data. It's the first product trying to give everyone access to the power of the graph.
But interacting with a soup of nodes is hardly practical. So we chose the outline editor as the default structure and interface to interact with the graph.
The structure of the outline
Owner and workspace nodes
Every node has a primary location in the tree structure. Think of this like having a home address - while you can be mentioned in many places, your content has one definitive location where it "lives." Every node has metadata that identifies its Owner node and the Workspace it belongs to:
- Owner node: A node property that signifies which node it's directly nested under. A node can have many parents, but only one owner. If the Owner node moves, has its workspace changed, or is deleted, the nodes owned by this "owner" node are considered part of it.
- Workspace: A node property that signifies the workspace this node belongs to. Permissions to see and edit nodes are all decided on the workspace level.
For more on other node properties, see Nodes and references
Breadcrumbs
You can always see where content lives by checking the breadcrumbs at the top of the panel.
Node relationships
A node or reference has relationships with adjacent nodes in the hierarchy, which can be described as follows:
- A parent exists one level outdented from a node, making the node a direct ancestor of it. A grandparent exists two levels outdented.
- A child exists one level indented from a node and is a direct descendant of it.
- A sibling exists on the same level relative to a node
Fields and field values are treated as part of the hierarchy too.
- In Tana, fields are considered a type of node that also exists within the outline hierarchy.
- Relative to a node, a field that is applied to it is considered a child, and the field value is considered a grandchild of the node.
Structures beyond the outline
The outline editor provides a "familial" relationship between nodes. This hierarchical relation, however, is just one way that information can be arranged in Tana. A quick overview of other ways to structure your data in Tana:
- By date: Every node has metadata like created/last edited times, as well as its associated calendar node if it exists as a descendant of one.
- By supertag: A node that has a supertag is automatically associated with other nodes tagged with the same supertag. They belong to the same "class".
- By fields: A field provides metadata so large sets of data can be subdivided into smaller and more exact groups. (out of 100 nodes tagged #task, 3 of them are marked "Priority").
You will usually use a mix of these different structuring tools on your data, sometimes all of the above. The less structure a node belongs to, the less important and findable it becomes. This is not a bad thing, it's just something to be aware of. Creating data structure is a constant fight against entropy, so it is wise to know which nodes are worth the effort.
View options beyond the outline
By default, the outline editor shows your nodes in List view. Changing the view settings of a node will affect how its child nodes are viewed. See Views for more on the types of views.
Move nodes within the outline
To indent/outdent nodes
- Use Tab to indent a node to make it a child of the node directly above it.
- Use Shift+Tab to outdent a node to turn it into a sibling relative to its old parent
To move one or more nodes up/down
- With mouse, click and drag the node bullet up and down
- With keyboard, press Cmd/Ctrl+Shift+Up arrow/Down arrow
The Move to
menu
There's a new way to move nodes that uses a menu to quickly find the location you want to move something to.
To open the menu
- With the node toolbar: Right-click or hit Esc on a node and select Move on the toolbar
- With the node bullet context menu: Right-click on the node bullet → Move
- With the keyboard shortcut: Cmd/Ctrl+Shift+M
- With command line: Use the
Move with finder
command to bring up the menu.
Once the menu is open, to find a location in the menu
- By search: start typing to find the location
- By navigating: use arrow keys to traverse up/down/left/right through the tree
Once you have found the location, to move to that location
- Use Enter if it's a node with no children
- Use Cmd/Ctrl+Enter on a node with children
- Hit Enter, twice
To move and leave a reference:
- Use Option/Alt+Enter
Other ways to move nodes
With Cut/Paste
- Cut a node (Cmd/Ctrl+X) and paste it elsewhere.
With command line
- Use the
Move
command to move a node to a specific move target. You can define move targets by using the command Set move target on any node to add it to the target list.
Navigate between nodes
See Navigation