As mentioned previously on the blog, for a long time I was relying on GitJournal for note taking. There were quite a few reasons I really liked it:
git
(which I can selfhost).But there's also some issues I kept running into:
git
implementation on the mobile app has its problems. E.g.
merge conflicts are not going to be resolved, sometimes leading to forced
commits that remove notes. All of this can be resolved on a computer with
access to the repo, but it can become a hassle.
None of these issues are absolute deal breakers, and I still think GitJournal is a really nice solution that I can recommend, but all the slight annoyances led me on a search for a potential replacement. If I didn't find anything better, I would have been happy to stick with GitJournal, but maybe there's a note taking solution somewhere out there that would suit me better?
If you do some research on note taking apps you'll be greeted with a flood of content from "productivity" YouTubers, bloggers, etc. Turns out there's a ton of options for different types of workflows and preferences, however most of them are
Enter LogSeq.
Let me start off by saying that LogSeq is not the perfect solution for me, but I'll go over my personal gripes with it later. First, let's talk about what LogSeq even is and what's good about it.
LogSeq is an open source note taking application that is privacy-first, outline-based, non-hierarchical, and features bidirectional linking. Let's break that down:
Some other features to mention:
LogSeq automatically creates daily journal pages. These can be used for journaling or as a dumping spot of random ideas, links you encounter, notes to jot down. Thanks to backlinks, if you include tags or links to topic pages in your notes, you'll be able to find these seemingly chaotic daily notes when looking at a specific topic later.
There is a plugin interface, and an already fairly large marketplace of community-built plugins available. Many are just visual tweaks you can add if you like them, there's also a bunch of integrations with various other note taking/productivity apps (which I personally don't use, but many find them useful, from what I hear, in their workflows). There's really only one plugin I'm using currently, more on that in the next section, but overall its nice to see extensibility.
As mentioned, there's no synchronization enabled by default. There is a
recommended cloud sync option with LogSeq's servers, which respects your privacy
by end-to-end encrypting all your content, but you know me. I prefer to sync my
notes with git
. Not only does this allow me to selfhost my notes,
it also gives me all the benefits of version control (history, a way to deal
with merge conflicts when dealing with multiple devices).
Since all of LogSeq's note files are just plain-text on your disk, setting up git synchronization is trivial: just make the notes directory a git repo, add a remote, and voilá.
Here's also where a plugin comes in useful: there's a git
plugin
that makes it easy to commit, push, and pull changes from within LogSeq itself,
rather than having to switch between it and a terminal.
Note: LogSeq does have a separate built-in version control feature that's based
on git
, but I recommend against it. It's based on automatically
committing every x seconds, so you never exactly know if your latest
changes are already committed, and you end up with a very messy history of
partial and/or unrelated changes going into individual commits.
There is a functional mobile app, with the same look and most of the same
features as the desktop application. It is missing plugins, so in particular, no
git plugin. git
synchronization on Android is still possible with
Termux, but less convenient than on a desktop, since it requires you to manually
go into Termux to commit/push/pull changes (and be very careful of ending up
with a merge conflict on your phone, that's much less fun to deal with on a
phone screen than in your favorite desktop editor).
#article
) that are about graph theory (tagged with
#[[graph theory]]
) published in the last year (a date property
is within a particular time frame).
The first two I use regularly. Queries I want to eventually get into. The others I don't really find use for.
There are a few things I'm personally not a fan of with LogSeq.
The biggest general problem for me is that despite a nice, minimal interface,
LogSeq is an Electron application. The logseq-desktop-bin
AUR
package is 500MB! All for a note taking application. In addition to the
bloat coming from Electron, I think a lot of it is also features that I have
absolutely no use for (like the aforementioned graph view and whiteboards, which
go way beyond basic text editing and markup).
Many people these days brush bloat under the rug, saying that on modern machines it doesn't matter, and frameworks like Electron are good because it means faster, simpler development. But these problems do end up having consequences. For example, LogSeq struggles with large files.
The full text of Shakespeare's Othello (around 160KB) takes several
seconds to load, and the app displays a bright orange warning message that
"Large blocks will not be editable or searchable to not slow down the app."
vim
opens the same file in a fraction of a second, a web browser
takes maybe about a second.
The LogSeq team say that the underlying text files are just MarkDown, but that's not exactly true.
The notes have to be all organized into bullet points, you don't have plain paragraphs or headings. Furthermore, additional markup is inserted, e.g. for block references. All of that makes the text less human-readable/-editable, a core feature of MarkDown.
Which leads to the next very sad problem...
vim
Once you get used to vim
, all other text editing options are just
inferior. Bram's gift to humanity is both a blessing and a curse, since there's
no getting away from sometimes needing to edit text outside of it.
Yes, there's a "vim" plugin that implements some keybindings, but I tend to stay away from those, as they're always disappointing: they implement some of the most basic keys, but others I'm used to relying on are not supported. So I'd have to remember which plugin for which piece of software implements which ones, and it just becomes more of a hassle than a convenience.
As mentioned above, using vim
directly on the text files is also
not a solution, since the notes format is not exactly standard MarkDown, and
either way you'd lose all the benefits of LogSeq, especially links/backlinks.
So, with that ranty section above over, what's my final verdict on LogSeq? I've been using it daily for the past several months, and until something better comes along, I don't plan on switching. Despite all its shortcomings, I really like it, it helps me organize my notes and thoughts.
I was actually aware of Obsidian before, and it had piqued my interest, seemed like a useful tool. However, I didn't want to jump onto a proprietary note taking solution. When doing my recent research on these apps, I found LogSeq, which is a FOSS alternative. I was reluctant at first, for all the reasons stated above, but after just a bit of test running, turns out the benefits outweigh the trade-offs I have to make, and LogSeq has replaced GitJournal for me.
To finish this post, let me go on a little fantastical journey into what my ideal note taking solution would look like.
vim
addiction, it would be a vim
plugin.
git
.