⚡️ Ideas
Maggie Delano Maggie Delano Mar 6, 2023

We need ways to prevent duplicates

Explain the problem as you see it

The way you make a new node with a supertag in Tana does not allow you to easily check if another node with that same title already exists. This differs from how page autocomplete works in other apps like Roam and Obsidian. Ultimately a core part of Tana is that you are allowed to have many nodes with the same contents because pages don't exist; practically speaking this causes issues when you are trying to work with unique objects.

Example: Let's say I want to create a node for the book "Viral Justice." If it is just my own workspace and I know I haven't made a node for it, I can safely start typing Viral Justice and tag it with #book and be done with it. However, this workflow fails when a "Viral Justice #book" node already exists. Now, if I forget, I have a duplicate. This problem is exacerbated in multiuser workspaces. Especially in a multiuser workspace, you need to start typing @, look and see if the node you want to create already exists, and if not, then create it yourself. Additionally, the workflow to apply a tag in retrospect takes many steps and is not intuitive.

Why is this a problem for you?

This is a big issue in multiuser workspaces. It's not as much of an issue in single user workspaces.

Merging duplicates is non-trivial. It is not so bad to replace references if a node is used in a field with the command palette, but harder to handle references.

Tana is already complicated enough as it is; asking people to sometimes type their title and supertag and other times to use @ to check for potential duplicates first is confusing and hard to remember even for veteran users. Plus, the autocomplete in Tana isn't great yet as it matches not only on supertags but any reference to the phrase typed so there can be a lot of noise.

Suggest a solution

An idea for a solution is challenging because in other apps you type [[ and then what contents you want, so you can limit quickly to only pages. Whereas in Tana I can't easily limit my search when I'm creating a new node to only books because I can't put #book first (if I do, then I create a node that doesn't have the book supertag applied). If I could narrow down to only books and then have autocomplete for that (like you can in an instance tag), that would be perfect.

One idea might to work with the existing workflow would be to have a little dialog that comes up while typing or when a supertag is applied that tells the user something else already exists and ask them if they want to create this new one or reference the old one. There could be a toggle that could be disabled in case duplicate titles are desirable. A limitation of this approach would be that one person might not use the same exact capitalization or phrasing (e.g. including or not including a subtitle), and so the prompting would have to be fairly intelligent.

⁨5⁩ ⁨Comments⁩

I call it the Mike/Michael problem. So just in the single player graph I have the notion of a #teammember and the node that is tagged that way is a name: Mike Smith but I'm writing in my notes or moving over something from slack and they are Michael Smith. I need a way to resolve those so all the references stay good. As an example I go to the node that is Michael Smith and just type over it Mike Smith and then I get a little pop up to merge the two. (a la roam) but I'd be open to other solutions as well.