In terms of choosing tools for my PKB, this is my priority order for features:

  1. Privacy. Different people will feel differently about this, but I personally believe that the contents of your brain shouldn’t be accessible to anyone but you.

  2. Portability and Backups. If you have good portability, then just make sure you’re backing your data up. Otherwise, make sure your knowledge won’t be lost if your house burns down.

  3. High Quality Text Editing. What this means is unique for everyone - for me, opening my PKB as a project, editor tabs and tab cycling, multi-cursor, plenty of keyboard shortcuts (so I never use the mouse), markdown syntax highlighting, and jump to file are some of the main things I care about. Of course, a healthy plugin ecosystem that adds support for features like table-of-contents or tables in a portable fashion is a big plus.

  4. Wikilinking. The ability to reference other notes and sections in your project, follow links, automate refactors (updating links if you move a file), auto-complete (suggesting files to link to), and view backlinks.

  5. Render Mode. The ability to view a prettified render of your files, handling things like headers, image embeds, tables, etc.

    • A really nice flourish is plugin support for rendering typed codeblocks in specific ways: mermaid for diagrams, latex for math, d3 for viz, remark for slides, etc.