My Logbook With Logseq

Logseq has been my tool of choice for dumping, connecting, and re-reading notes since 2023-01-07. People call their personal knowledge base Second Brain, Digital Garden, Zettelkasten, or Brain Dump. I call mine Logbook and it plays a vital role in my daily work and general thought process. Logseq is not perfect and in the middle of a huge rebuild, but it combines a unique set of properties into one compelling bundle: it’s open source, privacy-aware, and operates on local Markdown files. (Yes, the huge rebuild aims to turn the underlying data layer into a database, but I got my fingers crossed that plain text files will remain an option. Or that we get a solid text file export.)

But there’s more! Let’s unpack.

Logseq Is an Outliner

Coming from Obsidian, this was weird for me at first: Every block of information in Logseq is a bullet point, every page is essentially a long list. If you know how to create lists and use indentation to create sublists and group information, you know how to operate an outliner. A block (or list item) is not limited to a single line of text, though; it can also be multiparagraph text, a todo item, an image, or an embedded Youtube video.

When I started using Logseq I tried to hide the bullet points and even installed plugins to work around Logseq’s outliner nature. Now I embrace this flexible structure and the possibilities to expand/collapse, zoom in and out, and move blocks through this tree structure of nested lists.

Logseq Automatically Provides a Daily Journal Page

This might be my favorite feature in any note-taking app ever, because it eradicates the dreadful question of where a new piece of information should go. On the stroke of midnight, Logseq creates a new journal page with the current date as its title and every note I jot down lands in these journal pages.

This is so freeing! No cognitive load. No premature folder structures that do not pass the test of time. No hesitance to actually take a note, because my convoluted organizational system has turned into a nightmare.

But how does dumping everything on dated pages not get messy over time? Because …

The easiest way to connect blocks (aka a list item with a bullet point in front, the smallest unit of information in Logseq) is via indentation, which creates a parent/child relationship between outer and inner blocks.

Then you can link to other pages with #Linux or [[Linux]] and other blocks with ((<block_id>)). No worries, you do not have to type in the block ID. You can either hit ctrl + c on any block to copy its ID to your clipboard or type (( and use the typeahead search for a block’s content. You can also use block embeds to show an editable view of a block and all its children, essentially teleporting a block’s information to any place you want.

Links in Logseq are bidirectional; a block tagged #Linux does not just point to the Linux page, but the Linux page also keeps a list of all blocks and pages that link to it. This is sometimes called backlinks or references and it is the reason why creating pages and filling them with notes is not as important as properly tagging your blocks.

Caution: While #Linux and [[Linux]] are the same in file-based Logseq—a link to the Linux page—, they mean different things in the database version, where a # tag acts more like a class or type.

Logseq’s Hierarchical Tags Work Great With PARA

I use the PARA method (projects, areas, resources, archive) to organize everything in my digital life: bookmarks, notes, this very website. And Logseq’s capability to create a tag hierarchy with / supports this system very well.

I use pages like PARA, PARA/Project, PARA/Area/Web Development/CSS rigorously and Logseq parses the slashes into a hierarchy that I can traverse. That means the PARA page gives me a nice overview of all the topics that I spend my attention on at the moment. Nice!

Little Logseq power user tip: You can give pages an alias::, e.g. my page PARA/Area/Web Development/CSS/Grid has the alias CSS Grid that I can use to link to the page, which means a lot less typing. It also has the nice side effect, that Logseq removes the redundant Pages tagged with … section on the page. (Redundant because the pages listed there are also part of the backlinks.)

Logseq Is a Decent Project Management Tool

Project management is not Logseq’s focus and for work I usually turn to other tools my clients provide. But with Logseq you absolutely can create todo items (ctrl + enter), add a deadline and/or scheduled timestamp, and these todos will show up on your current journal page.

Working on my projects looks like this in Logseq: A project is recorded as a page with a block titled “Roadmap” and underneath that block I maintain an indented list of tasks as todo items. Whenever I work on a todo, I copy its block reference, paste it on my current journal page, and document my work underneath in indented bullet points. Thay way all my work on a specific task can be reproduced as a list of backlinks.

Use Logseq Queries to Make It Your Tool

An in-depth explanation of Logseq’s queries is outside of the scope of this article, but I will put it like this: Queries allow you to create views of pages or blocks based on certain properties.

The query that gives me the most joy and value is the one I call “On This Day.” It shows me the journal pages from one/two/three … years ago today. It helps me to re-read my notes, improve them, rediscover them, and find patterns in my life.

{
  :title [:b "👇🏻 On This Day"]
  :query [:find (pull ?b [*])
    :in $ ?today
    :where
      [?b :block/page ?p]
      [?p :page/journal? true]
      [?p :page/journal-day ?jd]
      [(str ?jd) ?jds]
      [(subs ?jds 4 8) ?md1]
      [(str ?today) ?td]
      [(subs ?td 4 8) ?md2]
      [(= ?md1 ?md2)]
      [(< ?jd ?today)]
  ]
  :inputs [:today]
  :breadcrumb-show? true
  :collapsed? false
}