Using Obsidian if you’re used to using Roam

TL;DR: I used Roam for a long time and found it super helpful, now I want this same useful functionality but with the privacy of local storage only.[1] I was leaving a lot of effectiveness on the table by not doing this sooner, so hopefully by reading this, someone who wants to use Obsidian and not Roam for any reason can save a lot of time and blogspam-sifting with this post.


Summary

This should get you something that works basically the way you expect it to, so the learning curve won’t be too steep if you’re used to Roam. There’s still plenty of scope to tweak this as you like.

So it:

  1. Automatically goes to Daily Notes when you open it, with today’s note open.

  2. The daily note contains:

    1. Today’s date written nicely[2]

    2. Space to write stuff straight away

  3. Backlinks referencing that day’s date are shown.

  4. Tasks due on that day are listed.[3]


Step-by-step:

  1. Do steps 1-12 from here.

  2. Install community plugins ’Calendar″, ‘Checklist’, ‘Dataview’, ‘Tasks’, and ‘Templater’.

  3. Disable the core plugin ‘Templates’.

  4. Enable the core plugin ‘Slash Commands’.

  5. In the settings for core plugin ‘Backlinks’, turn on ‘Backlink in document’.


Daily Notes functionality:

  1. Create a folder somewhere in your vault called ‘Templates’ (or whatever).

  2. Inside that folder, create a note called ‘Daily Note Template’.

  3. Go into the settings in community plugin ‘Templater’:

    1. Assign the ‘Templates’ folder for ‘Template folder location’.

    2. Turn on ‘Trigger Templater on new file creation’

  4. Go to settings for the core plugin ‘Daily Notes’:

    1. Make sure ‘Open daily note on startup’ is turned on.

    2. Select the ‘Daily Note Template’ you just made.

    3. Now you can make your template whatever you want, and the first time you open the app on a given day, it’ll take you to your daily note.

  5. Follow instructions in this post, follow the link to the code to paste into your Daily Note Template.

    1. I then modified this template to suit me:

      1. Took out the links for previous and following daily notes, since they didn’t work the way I wanted and I didn’t have time to try to fix that yet.[4]

      2. Changed the ‘record of work’ section at the bottom to the following code, to make it work the way I wanted[5]:

  6. You can easily create a new daily note for a given date by going to the Calendar (top right area of the screen click the icon) and double clicking any date.


To-do list functionality:

  1. Paste the code in the footnote into the Daily Note Template wherever you want it.[6]

    1. Now you’ll need to quickly learn how to use Tasks by reading this page.

    2. You can make a note called ‘Tasks Due’[7] and write as many reports in it as you like, and it’ll keep itself up to date.

  2. Type /​tasks anywhere and select ‘Create or edit task’ just like you’d type ‘/​todo’ in Roam. (Or set up a hotkey.)


Bugs

There are probably many. I’ll try to update this with improvements and/​or helpful suggestions as I get them.

  1. ^

    I’m sure Roam has developed some great privacy features for those wary of cloud storage, since I last checked on their app. No shade intended to their team, they make a great app. This is just a guide for using Obsidian if you happen to prefer this path over the Roam-with-privacy-enhancements path.

  2. ^

    If you want the whole ‘endless feed of daily notes’, you can use community plugin Daily Notes Editor by Quorafind. I just don’t like the colour of the headings and I can’t change it afaik!

  3. ^

    This needs improvement, I just haven’t got around to it yet.

  4. ^

    I’ll come back to this at some point. Specifically, I’d like clicking that link either to take me to the correct note if it already exists, or CREATE the note if it doesn’t exist, while triggering the Templater action that generates all the nice dynamic content on the Daily Note.

  5. ^

    This improved code means it works properly for future and past-dated daily notes, in terms of showing you what you did on THAT DAY.

    ```dataview
    List FROM "" WHERE file.cday = date("<% moment(tp.file.title,'YYYY-MM-DD').format("YYYY-MM-DD") %>") SORT file.ctime asc
    ```
    ```dataview
    List FROM "" WHERE file.mday = date("<% moment(tp.file.title,'YYYY-MM-DD').format("YYYY-MM-DD") %>") SORT file.mtime asc
    ```
  6. ^
    #### Over Due
    ```tasks
    not done
    due before <% moment(tp.file.title,'YYYY-MM-DD').format("YYYY-MM-DD") %>
    ```
    #### Due Today
    ```tasks
    not done
    due on <% moment(tp.file.title,'YYYY-MM-DD').format("YYYY-MM-DD") %>
    ```
  7. ^

    Or what you will.