My Obsidian Workflow

Even the longest journey starts with a single step. I was searching for a way to organise knowledge and remember it, and there are many very good systems that can help. The best option might be to find a system you like and then customise and reorganise it to fit your needs.

Directories

Underscores and Private Directories

Inspired by the programming concept of private variables, these directories are used by the system to store things that the general public (or readers) need not bother with. Examples include:

  • _assets: Storage of images or other files used in notes
  • _templates: Storage of note templates
  • _calendar: Storage of daily notes
  • _dataview_database: Dataview queries
  • And so on...

Important properties

There are two types of properties i will use, essential and optional. Essential properties must be included since those will help indexing and finding the relevant notes. Some plugins like Dataview requires metadata to be included so you can query relevant information. In future i will probably use some static site generators or frameworks to publish my notes as an online digital garden. Such frameworks require properties like title and description to improve search engine optimisation, or published being set to true or false which enables you to store the written note as an draft while you still work on it.

Create the Dataview index to query the list of available frontmatter properties. It is important to review the index file with key-value pairs that are used often and don't create new key-value pairs if it is not necessary. If i already have source: web there is no need to create additional source: article and source: blog. If i already have URL property there is no need to create additional link property. Not going to wide will help later when you need to search for information.

Essential properties: tags, type and status

  • tags: List datatype. With not more than 3 tags. It is critical to minimise number of tags and keep them specific. Tags should closely define a note content. Very important rule is to restrict the tags to no more than 3. If you go for 5 to 10 tags for each note than most of them becomes useless. Main purpose of tag is to categorize the content in a way. If you check out list of current tags generated by a dataview plugin, you will find a lot of tags pointing to only 1 note. Imagine how that list would look like without my 3 tag maximum.

  • Specificity tag rule. If you need to choose between few different tags always go for more specific one. Imagine you are writing the note about some Javascript library like React and you already have these tags available: [programming, webdev, frontend, javascript, react]. As you can see you could insert all of them but having the 3 tag rule you must decide which 3. My recommendation is to always go with the more specific tags. So instead of programming you will set webdev, instead of frontend or javascript you will go for react. That way, when your collection grows very big, you will also have very specific tag list with not a single redundant tag. If one of your tags is under AI but you are using only google's Gemini than tag the note with Gemini but if there is more than just Gemini included than of course you should go with a term that will cover all of them, AI.

  • type: String datatype. Indicates the type of a note. There must be only one type value. Type is not related to content or topic but more on the purpose or use case for a note. Look for available type values listed under [[#Type property]]

  • status: String datatype. Describes the stage of maturity or completeness of a note. Available values sorted from early stage to late stage:

  • draft: Fresh note, still in early stage writing.

  • useful: Can be considered a semi-completed work. It can be useful but still lacks information or content.

  • detailed: Completed note. With proper content and metadata. This can be considered as a full text ready to be published if needed.

  • master: Notes in very late stage. After enough time has passed and all the ideas covered and explored. It must build upon the previous stage and provide additional value.

  • archived: All notes that should be deleted will be archived instead.

Optional properties

  • date: Date datatype.
  • source. String datatype, source of note data
  • author: String datatype, author of source
  • title: String datatype, title of source
  • URL: String datatype, link to source

Type property

Utilising YAML frontmatter, type is essential property that must be set for every file and with only one value written as a double quoted string.

It would be a mess going to wide with different types of notes. It will for sure loose the purpose. When i see a need to expand the list of available values i will for sure add more.

Current type values

Type12Count
reference25
knowledge12
life4
workflow4
idea7
literature_note14
index13
blog_post14
script4
project6
spiritual_literature4
template5

Plugins

Linking Notes

Most, if not all my notes have listed additional reading materials or references at the bottom. Since note systems have a tendency to grow over time it would be wise to review them on a regular basis and include both inbound and outbound links to new notes or reference material if it becomes available. Frontmatter can have status variable to indicate the level of maturity or completeness. There is a dataview index file tracking the status stages of the whole vault.

Large number of notes can be time consuming to review. Try using dataview queries as an index page and try to build a maps of content that will help with establishing connections between related topics.

References