Nodes are the fundamental building blocks of Tana, each representing a piece of information that exists in the hierarchy of the outline structure. A node is atomic in format, making it infinitely malleable and rearrangeable. Nodes can exist in many places at once, as References. Everything in Tana is a type of node, which is part of the design philosophy that makes Tana so powerful.
The first thing you'll encounter in Tana is the node.
Nodes look like bullets, and are the basic building blocks of Tana: They are designed to be light, rearrangeable packets of information. Use it to store a piece of information: A note, an idea, a paragraph.
The atomicity of nodes is key for unlocking the power of Tana: Nodes are the indivisible parts of a living information system. Living, because a node can grow and change over time. The simplicity of the node allows it to be used as a plain bullet for taking notes, all the way to powering sophisticated daily dashboards of dynamic information driven by Commands and enhanced by AI.
A node is an object that can be reused anywhere in Tana: Imagine if every time you visited your friends, they would forget your name and all the memories you've had together in the past? It's not just very annoying, but this is what's happening in documents and folders everywhere: you as a person is mentioned by name, but none of these mentions connect to a single entity that represents you, so the info gets stale (unless you're one of those who, on your birthday, is "always" turning 25). In Tana, every time you mention a quote in different contexts, you can connect it to the actual quote in the book it came from. Let's say the quote had a mistake - changing the quote in one place changes it everywhere it has been mentioned. These mirror versions of nodes in Tana are called References.
References ensure that important information stays relevant and updated: In Tana, if you have entered the information once, it is easy to pull it into different contexts again and again just where you need it. In meeting notes, create tasks as they arise in conversation and use Supertags to make them magically appear on someone's task board an instant later. This powerful connectivity enables you to update information everywhere, on the fly, in one go. No more mission-critical information getting outdated, going stale and being forgotten.
In Tana, everything is a node: The fields, the views, the commands, the settings, layouts, workspaces, the daily page... everything. The difference between these node types is the kind of information Tana stores in them. For more info, see Node types.
Every node is unique: Nodes are not just bullets, they are sophisticated containers for information. Every node in Tana is given a unique ID upon creation. You can see the ID of the node in the URL bar when you copy a link of it. This means that even though two nodes may look the same and spell out the exact same thing, they are considered different if they have different IDs. There's also a dozen other pieces of metadata collected per node in Tana.
Every node has an owner, a single source of truth: All nodes have a permanent address within Tana's outline hierarchy. This means that a node will always have a parent: a node that is one level higher than them in the hierarchy, essentially their owner (with some exceptions). Why nodes only have one owner each is explained in the next paragraph:
Mirror copies of nodes are References: In Tana, you can have mirror copies of nodes. These copies reference the original node, hence their name Reference, and are one and the same for all intents and purposes. Editing one reference edits the original and thus every other reference of this node in Tana. There are some differences to keep in mind. For one, they are not owned by their parent: Parents of these mirrored nodes are just parents. Also, when you delete references, you're not deleting the original node, the single source of truth.
Nodes do not accept line breaks: To maximize the reusability of nodes means upholding strong design principles that keep their atomicity and simplicity intact. Therefore, Tana does not accept soft line breaks within a node, as it would make the node less uniform and universal.
The easiest way to find it is to use the command get html link to node and paste it somewhere. This yields a text that looks like this, where the link opens Tana at the specified node given you have access to it:
You can use this code to find the node it refers to. Paste it into the global search bar and the node with that ID should show up. Note: You have to have access to the workspace that the node resides in, or it won't work.
A node cannot be referenced more than once as a child. This is because we don't allow the same nodeID to appear twice in the same list.
What is a node: A node is a container for information.
What is a reference: A reference represents a mirror copy of a node.
Node/reference relationship: Every reference has a direct connection to their original node. You can't have a reference without an original node that it refers to. If the original node is trashed, references won't be trashed but appear with a trashcan which you can click to bring out of the trash.
The technical difference between nodes and references: They are carbon copies because they use the same ID to draw from the same data. The only difference is that one of the parents of the references matches the value in the Owner field, turning that reference into the "original" node.
Changing a node's ownership:
Within the same workspace: you can change a node's ownership by swapping places between the original node and any of its references. On a reference, use the command Bring referenced node here and it'll change the owner to its parent, making this the original node.
Between workspaces: you have to use the command Move to, or cut-paste a node between workspaces.
Keeping track of tasks in the form of checkboxes are a fundamental part of a node. It is baked into the metadata of every node through the Done and Done time system fields. There are some very simple and powerful things you can do with checkboxes in Tana to track your tasks:
Any plain node can be a checkbox: Cycle through each checkbox state by hitting Cmd/Ctrl+Enter.
Checkboxes have three "done states": no checkbox, not done, and done.
You can find all checkbox nodes that is a descendant of a node by running the command Find todos within →. This is handy when you've been creating tasks on the fly and want to gather them all.
Special search terms exist for finding nodes with checkboxes:
TODO - finds all nodes with checkboxes, no matter their done state
NOT DONE - finds all nodes that are unchecked
DONE - finds all nodes that are checked
DONE LAST <X> DAYS - finds all nodes that were done the past X days. Write it out like this: DONE LAST 7 DAYS
There's an option to lock nodes so they become non-editable.
Nodes can be locked by using the command Lock node. If using Build Title on a Supertag, this will also lock parts of the node that are derived from field values.
Option 1a: @-mention on empty node. Type @ and then the keywords for the node you're looking for. Hit Shift+Enter to select it.
Option 1b: @-mention in the middle of a node. Type @ and then the keywords for the node you're looking for. Hit Enter to select it.
Option 1c: @-mention in the middle of node to make a new node in Library. Type @ and then the keywords for the node you're looking for. Use Cmd/Ctrl+Enter which will create a new node in Library and make an inline reference to it here.
Option 1d: @-mention with text selected. With text selected, type @ and then find the node you're looking for. Hit Enter to create an inline link using the selected text as alias.
Option 2: Copy/paste, then type. Create inline reference by first copying the node/reference with Cmd/Ctrl+C, then paste into empty node with Cmd/Ctrl+V . Hit Spacebar or any other key to make it inline.
Option 3: Type, then paste. Start typing in an empty node, and if you have a reference already copied, you can paste it anywhere in the node to make an inline reference.
For a quick look at what's inside the inline reference, you can expand it in context without navigating to it:
Shift+click on an inline reference
Focus on an inline reference and press Cmd/Ctrl+Arrow down
(This section is greatly improved thanks to Navigator Maciej for writing an excellent post on all the ways to create references and inline references back in early 2023! 🙏)
If you want the inline reference to be written out differently, select the inline reference , then use Set Alias on the Text selection toolbar and type out what you'd like it to be.
References: If a node has references, at the bottom of such a node will be a section with the title "References". Expanding this will show you the breadcrumbs of where these references exist in the workspaces it appears in.
Unlinked mentions: Here you'll also find something called "unlinked mentions", which shows you all places where the name of the current node is found elsewhere in Tana but is not linked (as a reference or inline reference) to this node. From here, Tana gives you the opportunity to establish a link if you want using the button "Link" to the right.
Nodes and references are made differently from regular bullets, so there are some things to keep in mind when wanting to delete them.
To delete a node with no references:
Option 1: Use Cmd/Ctrl+Shift+Backspace on the node.
Option 2: Right-click on the node bullet and select "Delete node"
Option 3: Using Backspace on all the words and then finally the node itself will also work.
Note: If a node has content and your caret is at the beginning of it and you hit Backspace, it will delete the node and merge this node's content with the node above it.
To delete a reference without editing its contents:
Option 1: Use Cmd/Ctrl+Shift+Backspace on the reference.
Option 2: Right-click on the node bullet and select "Delete reference"
To delete a node and all its references:
Use the command Hard delete including references. This will remove the references in the current workspace, but make references in other workspaces show up with a Trash icon.
You can trigger custom commands to run when child nodes are added or removed from the target node.
To configure: Use the command configure node and scroll down to the On child added/removed. Add the command nodes here.
Use case examples:
When a child is added, give it a tag and run an AI prompt
When a child is removed, add the current time to a field of the child
Limitation: If nodes are added/removed via API, it will not trigger as they are currently not recorded as a user action. This is a limitation with the way the API is implemented.
To add notes to a node without making it permanently part of that node, you can use something we call contextual content.
In List view: use the shortcut Cmd+Option+Arrow Down (Mac)
In Table view: It's available as a column via the Add+ button at the end of the columns
A node with contextual content will display as a diamond instead of a circle.
Contextual content tends to be most helpful when you write a live search (viewed as a table) and want to process all of the results in some way without adding new data directly to the nodes. It can be as simple as adding a contextual checkbox field that says "I already looked at this."
If you have duplicate objects in Tana and you want to merge them to one, you can select them and use the command Merge node to choose which node you'd like to merge the other into. This works on nodes, supertags and fields. When a node is merged into another:
All the children are combined (if they both have the same fields, children in that field are also combined)
All tags are combined, and the original node is put into trash
All references and inline references in the available workspaces are updated to point to the new node.
If there are workspaces that had not been loaded during the merge with references to the merged node, these references will clearly point to the new node.
FixedFix issue where second right click didn't open native context menu on nodes in fields ()
InfoWe now hide first/last page button in pager menu if there's less than 5 pages ()
FixedRe-introduced: Right click when node options context menu is already open opens the native context menu. Now we can fix our spellng errors again! ()
ImprovedWhen you right-click a node now, you see a context menu instead of the toolbar. We've also added context menus on right-click to several places, like related content headers, panel headers, and breadcrumb items. ()
FixedDragging images to upload a new banner to a node was broken, it's fixed now. ()
NewWe have fullscreen preview! Expand image nodes by hitting <space> while it's focused. Use the previous/next buttons to navigate to the previous or next image in the list. ()
ImprovedFullscreen preview now supports video nodes, in addition to image nodes. It works just like images, and will autoplay when viewed. ()
Fixed@-mentions will now only show recently opened nodes from workspaces you have "allowed content from". ()
ImprovedWe decrease the font size of the panel header for very long node names ()
ImprovedThe sorting for at-mentions no longer penalizes nodes with title expressions, but we slightly boost nodes whose name (not title) start with the same string that you searched for ()
ImprovedEnsure that recently created nodes show up in the at-mentions immediately ()
FixedFix bug that prevented newer Vimeo videos with longer IDs from embedding ()
ImprovedReference section with only unlinked references default to be collapsed. The same for reference section on a calendar node that has a related content section. ()
FixedFixed bug where moving an image to banner would sometimes break. (Ryan, this should do it. If still broken, send memes) ()
ImprovedWe no longer list nodes that only contain a single inline reference in @-mentions ()
FixedFixed bug where a workspace would sometimes not show all of the available options on autocomplete with @-mention ()
FixedFixed diacritics when using autocomplete in a field, so for example typing Eric will show you Éric as an option ()
ImprovedThere is now a more robust uploading of AI generated images, and we show a visual loading indicator for AI generated images in banner and image nodes while images are being uploaded to our server. ()
FixedNo more distracting color blocks behind images! it's finally back to the grey it once was. ()
FixedWhen you right-click on a banner and say "Use on all nodes tagged #x", we used to move the image to the tag banner, meaning that if you removed it from the tag, it was gone from the original node as well. We now leave it in place on the original node, even if you set it on a tag. ()
Tana's speed is reliant on each node being a small packet of information. Larger nodes are slower to edit, slower to index, slower to update, and so on. Line breaks would encourage longer entries of information, and would break many other situations where the contents of a node needs to be rendered as one line, such as inline references, option values, title expressions just to name a few.
We do recognize that some want to store small pieces of information under one node, like a poem or quote. We are continuing to do research to explore ways to solve this, and also to solve for other issues related to long-form writing. If you would like to contribute your thoughts on this, please visit ideas.tana.inc and submit your thoughts under an existing or new post there.
Absolutely: The most common place to do this is on the Home node. Here are some examples of top level wiki structures, usually arranged on workspace home nodes:
It depends what you are deleting, but almost always the cleanest way to delete nodes is using "hard delete" which clears the entire node at once. You can hard delete using the following methods:
Keyboard: Cmd/Ctrl+Shift+Backspace
Mouse: Right-click the node icon > Delete
If you delete a node, it goes to the trash.
If you delete a node that is referenced one or more times in the graph, the node goes to the trash and the references will have a little trash icon next to them.
If you want the node and all references deleted, use the command Hard delete including references
If deleting the node was a mistake, you can click on the trash icon and resurrect the node through one of the references.
If you delete a reference, it goes to the trash and the node it referred to and other references will still exist and not be trashed.
We call them References, and there is a Reference section at the bottom of every node that shows all backlinks to this node.
It is also possible to create a search node using the operator LINKS TO that captures backlinks, which you can customize to scope and filter in different ways.
What does it mean when the yellow message "editing in X places" pops up?
Sep 26, 2024
The "Editing in X places" usually pops up for a moment when you are editing a node that is referenced in multiple places. It's a reminder that the changes you're making here reflects on X amount of other nodes in the graph.
To see all the other places this node is referenced, zoom into it and go to the Reference section at the bottom of the page. Here you'll find all the places in the graph where a reference of this node appears.
Bookmarking the URL in your browser of the form https://app.tana.inc?wsid=XXX (note the wsid) will break as it is a temporary ID for your window state.
To grab the permalink to a node, use the following ways:
Right clicking on a node > Copy link
using the … options menu on the node > Copy link
running the command Copy link
The link to a node never changes. They are URLs of the the format https://app.tana.inc?nodeid=XXX (note the nodeid)
Fields and their field values create structured two-way connection between nodes. Structured in the sense that the connection is labeled via the name of the field.
Example: A book node has a field called Author, where you can enter a reference to any person. The relationship between the book and the person is that they are the Author.
Fields offer a variety of ways to create structured connections:
Create a Plain field and copy/paste or @-mention any node into it
Create an Options field where you can choose from a list of your choice
Create a Supertag from Options field where you can choose from a list of all nodes tagged a chosen supertag.
Fields show up in the Reference section as "Appears as [field name] in..."
This screenshot demonstrates how the different connections show up in the Reference section of a node:
A reference in Tana is a mirror copy of a node. It's a node that lives in many places all at once. If you edit one of them, the change reflects in all copies, everywhere.
References are handy because it makes digital objects work a bit more like reality.
Example:
Spinach doesn't only belong in your pantry, it also belongs as an ingredient in your quiche #recipe, an item at a local #vendor, or as a source of iron #nutrient.
What's really helpful here is that all references to Spinach refer to the same node, so the node Spinach becomes an index for all things spinach in your life, whether it be in recipes, found in shops, or a nutrient source. As you encounter spinach more in your life, and connect it to more things in your graph, your knowledge about spinach will just keep on growing.