My Obsidian setup
Table of Contents
Preface #
A second brain, for you, forever. Obsidian is a powerful knowledge base on top of a local folder of plain text Markdown files.
Well, kind off… before diving any further into nitty-gritty details of Obsidian, it is worth pointing out that I’m not fully using Obsidian for it’s original purpose as stated in the aforementioned quote – that is being a knowledge base. My setup is opinionated towards day-to-day operations and task management and you might be wondering why not chose a dedicated task management or a note taking application instead. The reason is simple, none of the tools I’ve tried in the past fit my workflow, most commonly resulting in fizzled out usage after a couple of weeks or day, and I went back to the trusty pen and paper:
- Open a notebook, create heading with today’s date
- Add bunch of bullet points, or quick notes that would be grouped and cross-referenced, then turned into tasks. Some arrows and notes would be added throughout the day as well, usually resulting in lack of space on the page.
- Scribble random things in the top right corner, later separate the area by rectangular selection so the text doesn’t mix with other notes or connect scattered thought with concrete bullet points from (2.)
- Cross off completed tasks, go back to (1.) and repeat ad infinitum
To address some of these issues, I’ve switched to iPad and Goodnotes. This combination solved the lack of space and helped with organization as it was rather easy to lasso cut and paste or move selections around. Later, I switched to using a calendar PDF template, where I’d copy and paste everything from the previous day to the current one as searching/scrolling within a single notebook was getting out of hand. However, I kept separate notebooks for long running or recurring topics (projects/features, standups, planning, notes from 1:1s).
At this point, writing down and reorganizing notes was simply taking too much time and I was looking into solutions that were flexible enough to adjust to my liking (themes, panels in UI, keyboard shortcuts & that sort of thing) and had powerful search/slice’n’dice capabilites across all notes but I also wanted to preserve the note-per-day approach from Goodnotes. So after watching couple of YouTube videos and browsing Reddit for a while, I’ve decided to give Obsidian a shot – I’ve already tried Roam and Logseq in the past, but the usecase was solely focused on knowledge base building (Master’s thesis, and diving into ML/DL space) at the time.
So without further ado, here’s a written walkthrough of my Obsidian setup 🙃
Daily notes #
Upon opening Obsidian each day, a new daily note is created based on a predefined template. This functionality is configured via Daily notes (core plugin) and Templater.
Each daily note is structured as follows:
- Scratchpad
a section with embedded note to jot down random things throughout the day - Tasks
important tasks divided into: over due, due today and new today - Daily log
a section with embedded note to highlight key events of the day and track my progress - Meeting log
a section with multiple embedded notes containing meeting minutes (usually copied over to Notion afterwards) - Daily check list
stand and end of day routine (removed personal ones, so you can adjust the template to your liking) - Other tasks (no due date, done today)
not so important tasks: no due date and done today
Template setup #
I’m using the Daily notes plugin to create a new folder for each day in the YYYY-MM-DD
format, while the note itself is saved in /Daily/YYYY-MM-DD/YYYY-MM-DD-ddd
(3 letter day abbreviation gets appended to the format).
This is not set up out of the box and must be configured in the settings:
- Select “Core plugins” from the left sidebar and make sure “Daily notes” is turned on
- Open the settings for the “Daily notes” plugin from the left sidebar
- Change the date format to
YYYY-MM-DD/YYYY-MM-DD-ddd
- Change the new file location to
/Daily/
- Change the template location to
Templates/Daily template
- Close the settings
- Create a
Daily template
note inTemplates
folder
This template will populate each new daily note and create placeholders so that the scratchpad and log notes can be placed into the same folder as the daily note (/Daily/YYYY-MM-DD
).
Template, placed in /Templates/Daily template
#
1# <% tp.file.title %>
2## ✍️ Scratchpad
3![[Daily/<% tp.date.now("YYYY-MM-DD", 0, tp.file.title, "YYYY-MM-DD") %>/Scratchpad]]
4
5---
6## 📝 Tasks
7#### Over Due
8```tasks
9not done
10due before <% tp.date.now("YYYY-MM-DD") %>
11```
12#### Due Today
13```tasks
14not done
15due on <% tp.date.now("YYYY-MM-DD") %>
16```
17#### New Today
18- [ ]
19---
20## 👨💻 Daily Log
21![[Daily/<% tp.date.now("YYYY-MM-DD", 0, tp.file.title, "YYYY-MM-DD") %>/Daily Log]]
22
23## 👨💻 Meeting Log
24### Topic1
25![[Daily/<% tp.date.now("YYYY-MM-DD", 0, tp.file.title, "YYYY-MM-DD") %>/Topic1]]
26
27---
28## 🗓 Daily Check List
29### Start of Day
30- [ ] Clean up emails
31### End of Day
32- [ ] Check tomorrow's calendar
33
34## ⏳ Other Tasks
35#### No Due Date
36```tasks
37not done
38no due date
39```
40#### Done Today
41```tasks
42done on <% tp.date.now("YYYY-MM-DD") %>
43```
An example daily note, as rendered by Obsidian #
Overviews #
Daily notes can become overwhelming pretty quickly as there’s not only a note per day, but there are also multiple embedded sub-notes (especially Meeting notes).
To keep the sub-notes organized, I’m adding tags to the preamble as such:
---
tags: [log/meeting, standup/feature-x]
---
Tags can be later used to query and aggregate notes using Dataview plugin, which provides a JavaScript API to perform the querying, as well as perform advanced formatting of the query results.
Now I can create a new note, e.g. _Meeting Logs/Standup X
and use Dataview to find all notes with a certain tag.
I prefer to see all my overview (aggregated) notes concatenated and divided by horizontal lines. For clarity, I’ll also add a backlink to the original notes, along with the date when the referenced note was created.
Overview note example #
1# Feature X standup
2
3```dataviewjs
4const tag = "#my/tag";
5
6for (let page of dv.pages(tag).sort(p => p.file.folder, 'desc')) {
7 const pageLink = `${page.file.folder}/${page.file.name}`;
8 const dateFormatted = page.file.cday.toISODate();
9
10 // render date with link to the original note
11 dv.paragraph(`[[${pageLink}|${dateFormatted}]]`);
12
13 // render the note inline (embed)
14 dv.paragraph(`![[${pageLink}]]`);
15
16 // render the divider
17 dv.el("hr", "");
18}
19```
Overview note, as rendered by Obsidian #
Calendar view #
So far I’ve only covered how to create new daily notes and how to create aggregate views on top of them (overviews), however throughout the week I sometimes need to go back couple of days to, for example copy over the scratpad or turn it into something actionable (e.g. when I’m reminded about that by a todo/task, which I’ll cover at a later stage). For this usecase I’ve found the Calendar plugin to be invaluable asset in the sidebar.