Extending Tags

In our internal workspace, we have a base #todo tag which only contains Assignee, Due date and Status.

We then have #design task, #dev task and so on, which extend #todo – so they get those base fields – but add new, specific fields such as Github PR , Spec and Related feature.

It is also convenient to be able to add a new field to #todo, and know that any extension of #todo will get the same field.

Most of the time, we use the derived tags, but this setup lets us query for any #todo assigned to a certain person or with a certain status. Even if you don’t see #todo in your #design task tag, it’ll be there, and #design task is considered a #todo by the search expressions.

So when you have many tags that will share the same baseline of properties, the Extend feature comes handy. A lot like inheritance in object-oriented programming.

We use a lot of extended tags internally in the tana workspace:

#todo is extended by #dev task, #design task, #bug, etc.

#meeting is extended by #onboarding session, #followup, #investor meeting, #interview, etc.

#person is extended by #candidate, #alphauser, #investor, #employee, etc.

#user observation is extended by #wtf moment, #aha moment, etc.

And we regularly rework this, as our needs evolve.

Related content