What I Learned - Logseq
Tags: learned, logseq, tooling, productivity
Published: 2022-12-04 12:22:30

# TL;DR  
Logseq is an amazing tool for taking notes!  

# Intro  
*I like the idea of intrinsic motivation and [three factors](https://en.wikipedia.org/wiki/Drive:_The_Surprising_Truth_About_What_Motivates_Us#:~:text=Autonomy%20%E2%80%94%20Our%20desire%20to%20be,has%20meaning%20and%20is%20important.) that lead to better performance and personal satisfaction:*  
- *Autonomy*  
- *Mastery*  
- *Purpose*  

*So, I decided to start the challenge for myself. I will post an update on what I learned once a week for two months.*  

*And today I would like to talk about taking notes and Logseq.*  

# Tools to take notes  
How do you keep track of meetings at work?  
Where do you put TODO items?  
What is your tool of choice for personal notes?  

I tried tools like Word, notepad++, and VS Code for taking notes, and all of them had their benefits. However, they also have some or all of the following drawbacks:  
- It is hard to find and navigate to the topic you need.  
- It's not always easy or possible to add reach content, e.g., images, videos, PDFs, etc.  
- Formatting is not supported.  
- You cannot collapse or expand the sections you want. (Hi, MS Word on Mac!)  

And then I came across [Logseq](https://logseq.com/) recently. Logseq stands for log(ical) sequence.  
I'm not going to describe all the features it has, they are [well-documented](https://docs.logseq.com/#/page/Contents) on the official website. Instead, I will tell you what impressed me, which features I like the most, and also some issues I faced.  

# What do I love in Logseq  
## Basics  
In Logseq everything is a block, and this is exactly how I do my notes. Hierarchy. Nothing extra.  

You can move blocks up and down with `Cmd+Shift+Up/Down` - just like you do in IntelliJ IDEA. Easy!  

When you shift the block with `Tab`, all the children blocks are automatically shifted as well. No need to manually select and shift anything.  

There is a search across both page names and content. It is fast and works well.  

Logseq is open-source, and you can use it for free if you do not want to pay for anything.  

## Bidirectional links  
[Bidirectional links](https://docs.logseq.com/#/page/why%20linking%20matters) are cool and convenient. You can link everything with everything - pages, journal pages, blocks. Or you can just add the `#42` hashtag to your notes related to [Life, the Universe, and Everything](https://en.wikipedia.org/wiki/Phrases_from_The_Hitchhiker%27s_Guide_to_the_Galaxy#The_Answer_to_the_Ultimate_Question_of_Life,_the_Universe,_and_Everything_is_42), and you will get a page named "42" created for you which has all the back-references.  

## Journals page  
The daily [Journals page](https://docs.logseq.com/#/page/getting%20started%20with%20the%20journals%20page) is what you need to try out. Every day you have a fresh page where you just start taking notes, linking existing pages, and so on. It seems strange at the first glance, but then you got the idea. By tagging some notes with `#42`, later you can see on the "42" page *when* did you take one or another note.  

## Markdown  
Markdown is simply great. No proprietary formats. You can use all the advanced formatting capabilities Markdown gives you to write down meeting follow-ups, for instance. And then, just copy-paste it to slack, mattermost, or whatever tool you use for team communication. Most of them support Markdown out of the box.  

## PDF highlights  
Logseq supports [PDF highlights](https://docs.logseq.com/#/page/pdf%20highlights). Suppose, you are reading [The Hitchhiker's Guide to the Galaxy](https://en.wikipedia.org/wiki/The_Hitchhiker%27s_Guide_to_the_Galaxy_(novel)) and you want to take notes of important things. You just drag and drop PDF into Logseq, open the PDF in Logseq in the sidebar, highlight the text with the color you want, and paste the reference to your notes. By clicking the reference you will get to the place in the PDF where the text is highlighted.  

![PDF highlights](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/5c8bjeff9t1dw539vhqu.png)
  
## Templates  
[Templates](https://docs.logseq.com/#/page/templates) are great for taking notes of recurring events, e.g., daily meetings. You simply define the structure of the template and then use it for every daily meeting.  

Furthermore, you can reference the Daily page in the template name, and voila! Every time you apply the template, e.g. on today's page (remember Journals page?), a bidirectional link is created between today's page and the Daily page.  

When you apply the template, its content is copied. So, you can update the template without affecting all the places where you applied it before.  

But if you want to have a block that is shown on several pages and you want these pages to automatically show the latest changes to the block, just use the [block embeds](https://docs.logseq.com/#/page/page%20and%20block%20embeds) feature.  

## Graph View  
And the last but not least, look at the Graph View of the pages you created, it is brilliant!  

![Graph View](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/6rvm2wwl5wf7mspz18vi.png)

# What difficulties I faced
When I migrated notes from plain text to Logseq, I found that copy-paste from a plain text that is formatted with dashes and tab indents makes Logseq hang. At least this is the case on Mac. The workaround that works for me is to make plain text unindented first. Then copy-paste it into Logseq and indent blocks as you like.  

Also, there is no native support for emoji shortcodes (like `:joy:`), but you can copy-paste them, e.g. from [Emojipedia](https://emojipedia.org/).  

And one little weird thing that took me an hour or so to manage is that you cannot have a page named "Templates". Well, you can. And you can even create your templates on this page. But when you try to apply one of the templates, Logseq hangs. If you open developer tools (thanks for that feature!), you can see the error: `RangeError: Maximum call stack size exceeded`. Simply renaming the page to "MyTemplates" solved the problem.  

**UPDATE**: Upgrading Logseq to the latest 0.8.12 version solved copy-paste and template issues. And for emojis, just use `Ctrl+Cmd+Space` to bring up the emoji picker. Thanks to Logseq's Community Manager Ramses for the feedback!

# Conclusion  
So, what did I learn?

I learned that Logseq is an amazing tool for taking notes. And also, if you struggle with something - taking notes in my case - do not be afraid to try something new. It is well worth the effort.  

Take care. Tomorrow will be... better!