DEV Community

Cover image for Dendron - Super Fast Open Source Note-Taking inside VSCode
Kevin Lin
Kevin Lin

Posted on • Originally published at kevinslin.com

Dendron - Super Fast Open Source Note-Taking inside VSCode

I started Dendron because I was frustrated with the lack of good note-taking tools while working as a developer at AWS.

I wanted something with the ease of notepad, the structure of evernote, and the speed of redis.

Iterating over these features for nearly a decade led me to Dendron and its been battle-tested with my own collection of 30K+ notes.

VSCode, Lookup, and Hierarchies

Dendron is built into VSCode and also runs in VSCode compatible editors like VSCodium and Code Server. All notes are in plaintext markdown with frontmatter to store optional metadata at the top of the file.

Creating and finding files works in seconds and work through the same interface. If a note doesn't exist, Dendron creates it. This interface is called lookup and it is used to quickly navigate note hierarchies.

Dendron helps with organizing notes using note hierarchies that are represented by dot delimited filenames. For example, foo.bar.baz would be represented in dendron as

.
└── foo
    └── bar
        └── baz
Enter fullscreen mode Exit fullscreen mode

Schemas, Markdown, and All the Links

Dendron gives you schemas, optional YAML that you can associate with each hierarchy which describes their shape and allows Dendron to autocomplete and enforce your organization.

Dendron has its own flavour of markdown that includes additional functionality that enables, latex, mermaid diagrams, and the ability to include content from other notes.

It also has numerous ways of linking your notes together. There are wikilinks to quickly link to any other note, backlinks to see what notes a given note is linked to, hierarchical links to find the parent and children of any note and relative links to go to a specific part of any document.

Publishing, Vaults, and Pods

Dendron comes with built-in publishing - you can compile your notes to static HTML and publish them anywhere. Dendron published sites have been deployed on GitHub pages, S3, Azure, Vercel, Netlify, and more. You have fine-grained control of what gets published and Dendron takes care of the details - any links to private notes from public notes are automatically overwritten with a custom 403 page during the built stage.

Dendron employs a vault-based model for storing notes where a vault is a logical collection of notes, typically backed by git. You can mix and match vaults in a workspace and store them in different places (eg. personal notes on dropbox but company notes locally on the computer). Dendron gives you one unified interface to reference all your notes across all vaults. These vaults can be imported natively in Dendron, either by a relative path or a remote git URL.

Lastly, Dendron has a pod system to help you import/export your notes from Dendron to any other tool and format. We have a JSON pod to export notes and metadata to JSON so you can index it to elasticsearch or create custom visualizations. We have a markdown pod to convert Dendron markdown to regular markdown so that Dendron is interoperable with any tool that accepts markdown.

Today

To date, Dendron has been downloaded over 20 thousand times and powers everything from personal journals to team-based knowledge bases. We ship features weekly and has an active Discord community around note-taking that exchange hundreds of messages a day. My goal is to grow Dendron to be the best note-taking tool for developers, and in time, everyone.

"We are overwhelmed with information and we don't have the tools to properly index and filter through it. [The development of these tools, which] will give society access to and command over the inherited knowledge of the ages [should] be the first objective of our scientist" - Vannevar Bush, 1945

The north star of this project is to achieve Vannevar Bush's original vision - to build a tool of thought that can give humanity "access to and command over the inherited knowledge of the ages".

If you are reading this, you too, are now part of the journey. Let's take back control of our information and use it to build something better, together!

Top comments (0)