This is a summary of the note taking applications I used for personal knowledge management and day-journal purposes in recent several years.

  • Why do I need a PKMS or, why do I care about my note taking apps?
    • Because I’m not smart enough…
    • I need a tool to quickly capture items along my daily work.
    • I need a tool to facilitate my thinking process. I.e. my scratch paper.
    • I need a place to write down notes, conclusions, etc.
  • Why day journal?
    • I have bad memory and I need to have a place as a ‘paste-bin’ in my daily work.
    • I found it’s hard for me to remember what I did on a date and when did I do something.

One requirement from me since 2022 is, I want my notes to be stored in my own storage or at least easily backed up to my own storage. So I’ve tried:

It is exactly like this: meme image from https://daveisnice.com/blog/the-great-note-taking-odyssey/

A sad truth for me is, I now have a big pile of notes across different tools. Merging them all together is going to be a HUGE pain.

What I’ve learned from all of them

Generally, it is about ‘getting to know yourself’. I found sometimes it can be really hard to know what you want. I found I usually have to spend a huge amount of time and effort before I might be able to find the correct one… I sincerely hope others reading this post can avoid the same pain.

Workflow

I found I can split my use of my notes into these steps:

  • ‘info-intake’ step:
    • This is the step I dump/write info to my notes. I may
      • Write some code snippets, some meeting notes, some findings on the web,
      • I may also copy some images, dump some pdf files, etc.
      • And sometimes some todo lists, some progress tracking, etc.
    • Some information can be permanent, some information can be quite ephemeral.
  • ‘distill-and-internalize’ step:
    • This is often the second or third time I check a note.
    • For a lot of notes, there is no such a step at all, those are very ephemeral.
    • For some other notes, I may re-check them in a few days, or a few weeks with no or a little modification.
    • And for some notes, I may want to keep working on them for a longer time.
    • Basically, in this step, I come back to a subset of the notes to update them. Most of time, those are ‘recently touched’ notes.
  • ‘random info-retrieval’ step:
    • This is when I want to use ‘search’ and/or all tools I can use to dig into my notes.
    • In this step, I hope to ‘quickly’ get the ‘exact’ information I need.

And I found I don’t really need use cases like ‘random walk’ (i.e. the anki cards?). But of course I won’t refuse to use a note taking app that supports that.

Takeaways

  • Principle: Smooth ‘input’ and ‘output’ experience are the most important features of note taking app for me.
    • E.g. when I find I need to write something down, the application must be there ready to take whatever I want to give.
      • I.e. it should not have a long loading time, it should not have poor availability posture, it should not have some ‘complex’ plugins/features which can suddenly crash/fail and thus interrupt the flow.
    • E.g. when I need to fetch information from my notes, the application should help me to quickly spot the information I need.
      • I.e. the basic “fuzzy search + quick view” feature is very very important. Probably more important than you think.
      • I.e. Any fancy features added on top of that must not interfere with the basic ‘search + preview’ feature.
  • You probably don’t need ‘database’ feature (I mean the DB feature provided in Notion), unless you want to do ‘project management’ in your notes.
    • Don’t get me wrong, ‘database’ is a powerful feature provided by Notion (and probably Notion clones are still struggling with this today: [2025-06-06-Friday].
      • As a team space solution, ‘database’ is probably a must-have. But as a personal note taking app, it really depends.
  • If you think you need a project management system baked in your personal note system, think twice.
    • Seriously. This will significantly increase the complexity of your note taking app, because you are asking for structured data and you will want some sort of automated process which can structure your unstructured data. And you need this ‘process’ to be reliable (so you can trust your project management) while still flexible (so you can use it in various projects).
      • And, most of the time, you just need a ‘todo list’. And you won’t want to maintain two project management systems every day (one of the company you work for, one of your personal notes). Plus, you will need to ‘fix’ bugs in our system from time to time (usually, for each fix, you need 2+ hours at least).
      • In short, notes are inherently unstructured data. Don’t try to make it tidy and clean. And don’t choose an information retrieval approach that relies on that.
  • ‘Info distilling and internalization’ are still important steps for myself to ‘learn anything’. Don’t try to let your pkms do them for you automatically.
    • First of all, I don’t think there are any working automation to do that for you. Again, this echoes to the ‘do not try over-structure your notes’ advice above.
    • Your note should be a tool to help you ‘distill and internalizing’ your knowledge. It can’t replace you in this process. I.e. you still need to spent hours/days with your notes. Don’t expect your pkms to do that for you. But do expect your notes and your note taking process should improve the efficiency of your learning process.
      • I.e. you will spend time with your notes, not just dump random stuffs to your notebooks. And if you can’t assume you can ‘dump random stuffs’ to it and expect it to ‘return accurate, reliable, and structured’ result for you.
  • ‘Tags’ + ‘Search’ can already provide a good amount support for your information retrieval demand.
    • I.e. ‘Double directional links’, ‘SQL like queries’, ‘Graph view’ are all great features. But in the end, the benefit of these features are actually marginal.
      • Well, ‘double directional links’ might be an exception. In some cases, it can be very valuable (if you do use your notes as a personal wiki).
      • But let’s be honest, most of the time, when you need to lookup something if your notes, you either have some ‘keywords’ in mind (which can be used directly in search with or without tags), or you have a rough memory of ‘when something related happened’ (I will cover this later).
        • Sure, if the item pops at the top of your mind is a SQL query, just ignore what I said here.
    • But there is not much we can do to facilitate ‘plain text search’ (probably in future with LLM we can…), so ‘tag’ is still the most important tools in your toolbox for info retrieval.
    • In short, use ‘tags’ and use them mindfully, across all note applications, ‘tags’ is the tool always supported and generally handled similar across the field.
      • To facilitate your info retrieval, you will always need to manually maintain something which is indeed ‘extra effort’. But ‘tags’ probably is the one that provides the best ROI in the long run.
  • ‘Time’ is probably the most underestimated dimension in the landscape of note taking apps.
    • Most of the time, we care ‘recent data’ only. This is also true for companies, Check out this post from BigQuery Engineer.
    • Most of the information are somewhat time related. Even in your so called pkms. Not many things (or nothing at all) are actually ‘permanent’.
      • Especially in the info-intake step. In this step, your primary is to quickly capture your info (thoughts, ideas, etc) instead of trying to ‘understand’ the info. Most of the time, you won’t want anything to interrupt your ‘in-taking’ flow.
        • Since those info are mostly likely to be ‘reviewed’ later, ‘time’ becomes the most important dimension to rely on when you need to retrieve those piceces of info.
    • And because ‘in-taking’ step takes a big portion of your use time of your note taking app, you should pick a note taking app that provides a good experience in this step.
    • In short, bottom line, a daily journal or time-based quick note feature is important.
  • Double Directional Link is the next useful feature now widely available in popular note taking apps.
    • Caution: This one is a bit opinionated. Just some personal opinion, different people really can have different opinions.
    • But you don’t need to be too ‘hyped’ about this feature. And most importantly, you definitely should not feel obligated to use this feature.
    • And even if you do use it, you should not feel obligated to follow some patterns like atomic note taking or Zettelkasten.
    • Unless you are building some public wiki or prod docs, you don’t need to follow that atomic note taking or Zettelkasten pattern.
      • I.e. you don’t need to concern about ‘duplication’ much, until it really hinders your retrieval process.
        • I.e. don’t worry about ‘atomicity’, you don’t need it.
      • I found following those patterns frequently interrupts significantly my ‘info-intake’, ‘distill+internalizing’ process, with, most of the time, only a little improvement on the ‘retrieval’ side.
        • E.g. you will need to spend a lot of time to properly split your notes into ‘atomic’ notes.
        • E.g. you may need to anticipate future changes and then judge whether the current note is ‘atomic enough’ or not then decide whether to split it or not.
        • E.g. you will need to name your (not a vast amount of) atomic notes properly. And we all know, naming is super hard, especially in your note system which is supposed to be with your for a long time.
    • So, what I think is the best way to use double directional link ?
      • Treat it as a local-routing optimization for your retrieval process:
        • Rely on ‘Search + Tag’ to roughly spot a bunch of your notes first, then rely on ‘double directional link’ to route you to the exact note you want.
      • Treat it as a reliable cohesion tool to help you freely split your long notes to smaller ones for better intake and distill process.
        • Because links are ‘double directional’, if you feel one of your note contains too many things and you are currently focusing on one sub-context, you should feel comfortable to quickly create a new linked one and continue your process there about the sub-context. but don’t worry about ‘atomicity’.
    • In short, I think double directional link is a great feature and actually fits well with general workflow. But I don’t think people should feel obligated to follow some patterns like atomic note taking or Zettelkasten and I don’t think it (along with graphview) can or should take over ‘Search + Tag’ as the main tool for info retrieval.
  • You may not need to or want to have all of your data all combined in one place.
    • E.g. your shopping list and your work to do does not really need to coexist in one software.
    • E.g. your lessons learnt in your daily work and your pictures captured along your weekend trips do not need to coexist in one software.
    • And in many cases, it will backfire if you do put all of them together.
    • I’m also still learning on this one. But I think a reasonable way to split is splitting based on ‘scenarios’.
      • You should use one tool for one scenario.
      • Try to minimize the number of tools you use at one time.
      • Learn to tolerate the ‘rare’ cases where you have to use something else to ‘cover’ you when it is not convenient or possible to use the tool primarily designed for other scenarios.
        • For example, if you really want to capture some ‘golang’ code snippet while you are shopping in Costco, just put it in your phone’s built-in note and review it later when you have access to your laptop. Do not spend hours and hours on searching (or configuring) a note taking app to be accessed from both your phone and you laptop and expect ‘top notch’ experience in all scenarios.
          • The ROI is/will be abysmally low.
      • For me, for now, I just use Foam on my laptop (for daily work tracking, info collecting) as I will be using the laptop during work hours, and Google Keep on my phone (I may change this soon though). I’ve tried using the same app in both scenarios, but I found it is not convenient enough.
        • I set up this site so some ‘public sharable’ info from my Foam can be read from my phone. Thanks to Quartz. But I won’t expect anything to fill the ‘in-taking’ and ‘distilling’ gap, and now I think I know, I should not try to fill that gap.
  • Availability is important
    • There have been some times that I was tinkering with my homelab, and I messed up. I looked for my notes and I can’t find them since my servers are not accessible.
    • In short, I would still recommend Notion for most people. And if you can’t use Notion (like due to corp policy), Foam + Github private repo is a great alternative.
      • I will also recommend to set up a local ‘Gitea’ server to ‘mirror’ your Github private repo so that you have your own backup in your home and you can access it even when Github is not accessible.
    • Another dimenstion is your ‘corp policy’. ‘Foam’ shines here as it just need vscode. As far as I know, Google does not allow you to use Obsidian nor Notion on corp machines.
  • Some personal preferences:
    • Good ‘markdown’ support.
    • VIM binding.

Some features that are probably not as important as you think:

  • Webcliper
    • Actually this one is hard to tell. For some people it might be super important. But for me I think it is a ‘nice-to-have’ feature. It is fine for me to use another specific application for web clipping, and only put distilled info into the note taking app.
  • Programmability
    • Unless you want to ‘write a program’ in your note. But be aware, this is going to require (really) high level programming skills so your program can adapt as quickly as you when you change your ‘process’ to do things.
  • Infinite hierarchies.
    • Although it is definitely better to have this feature, it is probably not as important as you think, at least for personal uses (for corporate uses, it is probably much more important).
    • It is still important to support at least 3 levels of hierarchies. But anything more than 5 or 6 is probably not that needed.
  • Graph View
    • Do you ever want to check out the ‘graph view’ of wikipedia for any good reason?
    • But it is still good to have in many not-so-serious cases. What I mean is, this probably won’t be a reason to pick or reject a note taking app.
  • Complex template system or widget systems
    • Again, if you need ‘project mangement’, those are important and needed. Otherwise those are not that important.
    • Also, this could be a good indicator to tell you whether you are abusing your note taking systems.
    • Simple templates (also with some tree-like or tags auto filing) are always good and useful.
    • But complex templates (e.g. depends one some custom typed frontmatter attributes, or even ‘object’ like structures), should not be there in your note taking system.
      • They will not evolve as quickly as you do when to change your focus, your pattern of doing things.
      • They can cause vendor-lock-in.
      • You are likely adding a lot of burden and ‘points of failure’ to your note taking workflow.
      • Note: I’m just saying for personal note taking workflow. Not for any real project management.
  • Multi-tenency (i.e. Multi-user)
    • Again, if you don’t need ‘project management’ and if you also don’t need ‘collaboration’, then this feature has no real uses.
  • Super wide support of ‘attachment types’ are also not that important
    • Attachment types must be supported IMO:
      • Images
    • Attachment types great to be supported IMO:
      • Mermaid, UML, Excalidraw, and other diagram tools
      • Video, Sound files
      • PDF files
    • All others are probably not that important IMHO.

Silverbullet.MD

Silverbullet.MD is the very last note taking application I used before I switched to Foam. And I want to highlight that it is a super powerful tool.

screenshot-silverbuleltmd

NOTE

There is no multi-user support for Silverbullet.MD yet [2025-06-06-Friday]

Features:

  • Can be easily self-hosted through docker.
  • Infinite hierarchies, also ‘dir’ note can be created.
  • Supports backlinks.
  • Super programmable. You can:
    • Write queries with SQL-like syntax, and frontmatters are treated as ‘object attributes’, so… super
      • You can even define your ‘view’ renderers to make sure the query results are presented in your preferred way.
    • Write your own snippets so you can easily extend your / commands.
    • Write Widgets, so you can easily add components to your notes.
    • Write scripts to make all features above dynamic (like doing some calculation based on the current date of a note, etc).
    • Of course, you can define your own templates… that is not really an ‘advanced’ feature across the note taking apps market, but the features above are really powerful.
    • Even supports ‘library’ sharing/downloading (i.e. plugin system, all achieved by ‘source code’ sharing.).
    • Even ‘themes’ are supported by ‘custom css’ directly written as a ‘note’ in silverbuleltmd
  • Your notes (and all of your hacks) are all just stored as markdown files in your backend!
    • This means, your files not NOT locked in some databases as ‘binaries’.
    • This means, you can always ‘backup or recover, or modify, sideload, view’ your notes as you want, cause they are just plain markdown files.
  • Vim bindings natively supported!
  • Just needs a Browser and a place to self-host it to work
    • That is to say, on machines not allowed to install 3rd-party software (like the popular obsidian), you can still use it.
  • It also suports using a git repo as a storage backend. (but I didn’t try.)
  • Switch between online-mode and offline+sync mode.

Why I stopped using it? (But I still high recommend power users to try it, it either resolves your problem or you can customize it to resolve your problem.)

  • First of all, silverbulletmd 2.0 is switching to offline+sync mode only, so basically, your browser will always try to cache all content to local storage.
    • This in theory should achieve some level of support for offline mode (which is a long-lasting feature for note taking apps from many people’s point of view.)
      • However, I personally don’t really trust this kind of ‘auto’ or ‘implicit’ syncing approach.
      • My personal experience is that, somehow the syncing may result in corrupted notes, weirdly conflicted notes, etc, so I don’t really trust it.
        • But my experience was based on the silver
  • Too flexible for me.
    • If you are a fan of lua, I think you will love silverbulletmd 2.0 though.
    • But if you want something just work out of the box, this won’t be the one for you.
      • For example, if you want a ‘calendar view’ for your note taking app, you pretty much need to write your own ‘code’ (widget, scripts, etc) to achieve this.
    • I’m quite concerned about the long-term maintenance burden of this kind of ‘too flexible’ tool.
  • Still no good ‘Search’ support at the moment (2025-06-02)
    • But there is actually a plugin in the community to improve search with grep (which is actually already installed in the silverbulletmd docker image).
      • I just felt a bit tired of keeping configuring my notebooks.
  • Somehow I found vim binding randomly stops working properly for me. E.g. gg randomly stops working, I need to reopen the window to mitigate.

Summary:

  • It is a great application. It just has some ‘learning curve’ to use, and it is not really ‘out of the box’ for most people.
  • I totally believe smart people can build a very nice note taking app just with self-programmed ‘code’ in it.
    • It is truely a silverbullet.md, for capable people.
    • But until then, I probably will not use it.

NOTE

If you think you are geek and like to hack things, and you want ‘flat markdown files storage’, you definitely should try it.

(Work in Progress: I will put some interesting findings and tips in [silverbulletmd-brown-bag|SilverbulletMD Brown Bag], stay tuned.)

Trilium

Trilium is also a very powerful note taking app, which works in a browser and can be easily self-hosted.

Before Outline, Anytype, affine and notable came out, Trilium probably was the only one that can compete with Obsidian and Notion from feature-set point of view.

screenshot-trilium

NOTE

Trilium is database-based. And Trilium does not support multi-user either.

Highlights:

  • Wide support of various attachments
    • Ofc, image, pdf, mermaid. It even supports Excalidraw and DrawIO!
  • It’s editor supports more than markdown (colors, highlights, etc)
  • Also very ‘programmable’.
    • It supports custom labels which can be used as ‘tags (i.e. single value)’ and also used as ‘properties (kv pairs)‘.
    • You can build a project management workflow with those ‘labels’
  • Infinite hierarchies too, and the dir node can be a note or a ‘book’, easily used as a ‘folder’.
  • Supports backlinks too.
  • Very nice Search support (both sample use cases and complex queries).
  • Nice calendar widgets.
  • Theme support
  • The webclipper works pretty as an FOSS software.
    • I still encoutered some cases where the web does somehow ‘blocks’ the clipper. But most of the time, it just works.

Gaps

  • No vim binding
    • This is probably the only real issue I got.
  • Database storage backend. This typically means:
    • You need to be very cautious at updating. You need to make sure your have proper backup and know how to recover from a ‘corrupted’ state.
    • There won’t be an easy way to “export” your notes and expect it work/usable out of the box immediately.
      • But I still want to emphasize, Trilium has very good support of ‘exporting’ and support multiple formats/archive mode for exporting. In short, this is probably already the best you can expect from a dataabase-based note taking application.
    • BUT I also want to hightlight, the author created many ‘tools’ and ‘functionalities’ for the DB integratiy and users can easily access them through the web app. So for people don’t really care ‘portability’ of the data, I want to say, don’t worry too much about the DB.
    • Although it is database based and have the risks above, it has been proven to be quite reliable in updates. The author truely took a good care of the software.
      • Also, the original Trilium is already not longer maintained (no more updates from the original author), and given the current state of the software, I think it is already stable enough for long-term uses. You probably don’t really need to/want to update anymore. Its feature set is already very rich and its customizability is also good enough for you to develop fancy ‘workflows’ on top of it. In that case, DB risk during updates may not be an issue anymore.
        • But lower portability as the result of using DB will stay for sure.
  • The graph view implementation is quite weird.

One thing deserves to mention is that Trilium does not support offline mode. It requies the ‘server’ to be always online to work. This is (at least was) not a big issue for me. Most of the time I host the server in my home and I mostly work from home. But if keeping your Trilium server alway accessible when you need it is chanllenging for you, you may need to consider other options (like ones with ‘offline’ mode, or ones claims to be ‘local-first’, or just use a cloud-based service).

NOTE

If you consider yourself at least half-geek, and you don’t mind spending time customizing your PKMS, and you care about the use of DB as the storage backend, Trilium can be a good choice for you.

(Work in Progress: I will put some interesting findings and tips in [trilium-brown-bag|Trilium Brown Bag], stay tuned.)

Memos

Memos is a very simple note taking app. But actually I don’t really understand why so many people like Memos, or at least, why so many people claim to use Memos as their major note taking app. From my point of view, it is just a very simple note taking app with support of ‘Markdown’.

However, I found following issues with Memos x My workflow:

  • Not good for long notes (neither authoring nor reading nor retrieval).
    • This generally means, you won’t really want to use it for the ‘distlling and internalization’ step.
    • Also, at the time I used it, it didn’t support double directional link. (I don’t know whether this feature is added or not now.)
      • I.e. even if you want to follow the pattern of ‘atomic notes’ (so that you can keep each note small), you can’t really do it. Let along some advanced features like ‘transclusion’ which (I think) is important for ‘atomic notes’ pattern.
  • No ‘folder’, ‘category’ or any ‘tree-like’ structure. All you have is a timeline and a ‘tag’ system.
    • I.e. basically, you are not supposed to ‘organize’ your notes in Memos.
  • It is also database-based (although it is SQLite, can you can find many tools to view or manage it).
  • No vim binding

Some interesting features of Memos:

  • It supports multi-users (and I think the community actually want to encourage you to use it as a self-hosted weibo/twitter alternative, so it is a ‘private’ social app, not really a note taking app).
  • I don’t know why, but the app has a ‘note frequency matrix’ (like the code submit matrix on Github). I would say it is indeed a social app,

In short, I don’t think Memos is trying to be a PKMS at all. Its strength probably lies in the good integration with other apps (like Wechat), and its similicity for people who are not looking for some industry specific features (like code syntax highlighting, etc). To me, it could be a replacement of ‘Google Keep’ (if I spend time on setting up all the convenient integrations), but it is far from being a PKMS and far from being a ‘daily work companion’ on my screen.

Logseq

Logseq is quite interesting. It supposeds to be a PKMS, but I found it more like a specific daily journal app. And even though it has good enough support of ‘markdown’, the ‘outliner’ style does not handle 100% of my needs so nicely.

screenshot-logseq

NOTE

For the ‘outliner’ style, I think I actually can learn to get used to it because I do use ‘unordered lists’ a lot in my daily notes. With default settings, you basically just need to use ‘shift+enter’ as your normal ‘carriage return’ and ‘enter’ as your ‘new item’. And you can always customize the keys to swap them (if I remember it correctly).

The reasons I decided not to use it are:

  • The ‘formal’ version of the app is pretty much local-only (not just local-first).
    • The ‘self-hosted’ version of Logseq does not support any ‘plugins’. But some important features of Logseq are actually added to the app by plugins.
      • And the ‘self-hosted’ version is also online-only, there is no sync between local and remote.
    • If you choose the default app (the ‘local-only’ one), you will need to manually handle the sync between your devices (unless you pay for the first-party sync service).
      • Doable, but not that convenient.
  • During my two attempts to use it as my daily driver, I found its workspace (i.e. the storage) can be easily corrupted, resulted in some data loss. Looks like when conflict happens, it does not really gate ‘dangerous’ operations well enough.

Logseq has a built-in ‘Whiteboard’ feature, which is an interesting idea (note that there is a ‘diagram’ based note taking app called Heptabase and it is quite popular) which I think has quite good potential, especially for project ideation and brainstorming. But somehow I found what Logseq offers is a bit hard to understand and follow. I didn’t managed to use it to help me with my daily work.

Logseq also has a ‘flashcard’ feature, which I think is a clone of ‘Anki card’. I don’t really feel it is a necessary feature for me. But it might be a must-have for some people.

Outline

I only briefly tried Outline, so I can’t say too much about them. It looks good, but I turned aways due to following reasons:

  • I was turning away from all ‘DB’ based note taking apps.
  • Not good enough support for markdown and the edtior feels a bit weird to me.

But this is a good app for people who want to use it as a ‘collaboration’ tool, or as a place for project wiki pages.

I remember the self-hosting setup is a bit complicated as it only accept OAuth2 for authentication so you need to use an account from other services (like Slack).

Notion

I think the strength and weakness of Notion is the same, it is too much ‘all in one’.

Even after 4 years of uses, I still think it is a bit overwhelming for me.

Even after I did made myself a ‘project management’ system to ‘automatically sorting my tasks based on urgency/priorities’, ‘helping me summarizing my daily and weekly reports’, I still feel like I am not using it to its full potential (of course).

For me, there is an key drawback Notion probably will never be able to overcome: The data is stored in the cloud.

But for people don’t care ‘data ownership’ that much, I think Notion is a good choice:

  • Infinite hierarchies of pages/folders.
  • Double directional links + Transclusion.
  • Rich text editor with markdown support (and a lot more than just markdown).
  • Database-like tables. This also means you have some ‘programmability’ in your notes.
  • Powerful search and AI-powered search.
    • I do think ‘AI’ is important for info retrieval. One day I was asking Notion when did I transferred from a team to another, I was surprised that it can actually ‘infer’ an answer based one my note content.
  • Nice UI.
  • Native apps on all platforms and web apps.

I think Notion is great, but something I don’t like is the ‘eco system’ around Notion (not Notion’s fault, or at least is not fair to solely blame Notion): Too many ‘templates’ and ‘second brain’ stuff on the market.

Notion has the capacity to do all these things, but as a normal guy, a user, I need to learn to ‘truncate’ some of these features/uses to make sure that I’m using the tool, not the tool is controlling me:

  • Notion can be your PKMS.
  • Notion can be a Blog platform.
  • Notion can be a project management tools (even for bug tracking, gantt chart…).
  • Notion can be your ‘contact book’.
  • User can publish a ‘form’ on Notion.
  • User can build a ‘store’ on Notion.
  • Notion can be a forum for some communities.
  • So many…

So powerful, so if you just want to use it as a note taking app, the biggest problem for you will be: what are the features you should not try to use?

NOTE

However, when it comes to programmability, SilverbulletMD is still the best of the best, the geekest of the geekest. (SilverbulletMD is truely end-user programmable as it claims to be.) But Notion already offers more than normal note-taking users need.

In short, I think for anyone who do not want ‘self-hosting’ and do not want to learn to use the ‘plugin’ systems of Obsidian, Notion is definitely a good choice (its feature set ensures this app will be future-proof for any note-taking users for a long time).

Evernote

Everyone seems to be laughing at Evernote when Notion.so is released. But after these many years of jumping from one note taking app to another, I have to say, even the Evernote at year 2015 is actually already nearly good enough as a pure note taking app. (well, if you need handwriting support, just ignore what I just said).

What I want to say is, (before AI become the mainstream) ‘Searching’ and ‘Tagging’ should be the two most important way of info retrieval in a note taking app, and these two method indeed can make 85% of me happy.

I won’t say much about Evernote here as the last time I used it is already 7 years ago or even longer. But if someone want to keep a distance from some of the advanced/shining features to keep life simple, Evernote is still a good choice.

NOTE

I used to be someone who value new features, new functions, new tools, new designs a lot. But now I am more and more aware of the fact that, I need to keep most things in your life simple, so that you can truely focus on what is really important to me.

I’m still trying to optimize my life, still a long way to go.

Foam

So, How did I decided to use Foam?

  • First of all, I can’t use ‘Obsidian’ due to corp policy and lack of web-app of Obsidian and corp policy.

But vscode is a software many software engineers use everyday and definitely allowed in most tech companies.

Using Foam implies you probably will want to manage your notes sync through ‘git’, which may sounds inconvenient, but it is actually not.

  • I will be using a device with keyboard anyway if I am ‘distiling or internalizing’ my quick notes.
  • Most of the quick notes related to my work or deserves long-term retention are going to be produced when I’m working on a desktop or laptop.
    • For notes that I produced on my cellphone, those are usually very short lived or errandous. For the ‘rare’ notes that I want to keep for a long time but produced on cellphone, I should train myself to ‘remember’ reviewing them when I have access to my keyboards.

Foam’s feature set is not really comparable with Notion or Obisdian, let along Silverbullet.md. But as a note taking app, it is good enough (i.e. as long as you don’t expect automated workflows, project management, database-like rollups, etc).

  • It has tag.
  • It has double directional links (called wikilinks).
  • Users can use vscode and grep to search locally.

However, one thing I found inconvenient, is the lack of ‘view’ ability to my notes on the go. Even though I don’t plan to add/modify my Foam notes on my cellphone, I may still want to be able to view my notes on the go. (For example, when my home Internet is broken again due to my tinkering mess, I will want to rely on my cellphone to read my notes.)

I can go to my github page and read the markdown files there. However one may not want to use Github to read markdown notes:

  • No backlinks on Github.
  • Frontmatters are rendered as a table, which is probably not a reader would expect.
  • No ‘tag’ list view.

So I found Quartz to be a good ‘renderer’ for my Foam notes. Check out this note [use-quartz-as-a-builder-of-foam-vault-deploy-to-cloudflare] for the details of Foam + Quartz + Cloudflare Pages.

The result is:

  • I can use vscode with my daily vim-binding to ‘produce’ notes.
    • I don’t need to learn to use another application, I don’t need to spend that much time to ‘customize’ another UI.
    • I felt less interrupted during writing.
  • I can use vscode search and Foam extention’s tag list view to find my notes in vscode.
  • I can share my notes and posts on Quartz. No ‘login-in’ needed, plus, search and tag and backlinks and graphview and comments (although the comment won’t be inlined) baked in.
  • I need to explicitly ‘sync’ my notes to my git repo. It is a bit cumbersome, but not too much, hopefully 🫰.
    • But there is a benefit, no more ‘implicit’ sync and ‘unknown’ data corruption comes with that.
  • As I was migrated from Silverbullet.md, I loose features like ‘scripts’, ‘widgets’, ‘queries’ and highly customizable templates.
    • However, Foam’s template support turns out to be good enough for me as I’m try to forgive me the lack of ‘structure’ and ‘schema’ in my note taking.
    • And, vscode’s built-in snippet support is also enough to cover some basic use cases.
  • Although Foam itself lacks the ability of ‘querying’ my note with a ‘SQL-like’ syntax, I found there are some interesting tools available online. If I find myself in a situation where I need to query my notes, I may try to them. For now I will keep my workflow simple.

At the time this post was written, I have been happy with Foam for one month.