I've been meaning to start a personal knowledge base for a long time. While I wait for the serendipitous moment when the perfect Knowledge Base system arrives, I've decided to use GitBook as the makeshift platform as I evolve my workflow. This is going to be my outlet of (more than) thought fragments, allowing me for a space to keep concepts/ideas in hibernation which I hopefully return to in the future.

The Perfect Knowledge Base

For me, the perfect Knowledge Base will at least have the following features.

  • Zero vendor lock-in: I'd like to be in control of my content and be able to migrate across systems in the future. There's something better on the horizon always. Systems relying on web technologies are probably the best suited in my opinion as anything else will rely on native architectural routines.

  • Low acquisition barrier: As I consume content across the internet, I'd like a staging area where I note down raw information. Only a refined summary remains in the long run. I'm using both Notion (I wish they had the web clipper for Safari) and Gitbook for now.

  • Extensible content format: I love Markdown. It is plain text and almost ubiquitous. I would pick a Markdown-based system any day over a rich text system with fancy features. Modern extensions like MDX allow virtually limitless possibilities.

    • Math support: It should certainly support mathematical notations e.g. via KaTeX or MathJax.

    • Reference Management: I've pretty much relied on BibTeX and the only thing I'm comfortable with. I prefer not moving to another system.

    • Code support: If there is a possibility to have custom code within my content to make it interactive or make life simpler, I would like it. Although, since things like these are usually narrow-scoped, I might do away with just by linking to a separately hosted piece of code.

    • Tagging: Tags are helpful in narrowing down the search space.

    • Footnotes: Information bits that don't warrant exposition in the main text but are nevertheless worthy of a mention. This is very helpful when I don't want my reading flow to be broken by something beyond the scope of current text, perhaps a minor detail.

  • Fuzzy Search: As the content grows, I need a text search system for quick information retreival. The content will be unstructured with minimal depth heirarchy and fuzzy search is the only general thing that can help.


The use of GitBook was inspired by the verbose collection of Nikita Voloboev. Gwern Branwen, Alexey Guzey and Patrick Collison maintain very insightful websites. The Farnam Street podcast by Shane Parrish is also an excellent resource on mental models which has finally led me to undertake this exercise.