Show HN: Dendron – fast open-source note-taking in VSCode
wiki.dendron.so
wiki.dendron.so
Pros/exciting things:
1) There's a simplicity in using VS Code for writing notes and docs if (and probably only if) you already spend your day in VS Code, like I do.
2) The Markdown Preview Enhanced VS Code extension (which is a dependency of Dendron) is super cool for having so many "batteries" included. For example, check out all the diagram types it supports: https://shd101wyy.github.io/markdown-preview-enhanced/#/diag... . I still use it, separately from Dendron.
3) Storing my data as plain text on disk (backed up by GitHub or Dropbox) has nice properties compared to how SaaS apps do it (e.g. if you use Notion, say, your data materializes out of "the cloud" when you launch the app, and otherwise has no tangible existence). When my data is plain text on my local disk, I own it; I know I can export it, I can run whatever editor or program on it; I can access past versions (via git or Dropbox); I don't have to worry about it being corrupted, or accidentally deleting some of it, or not being able to access it because of server issues, or not being able to export it, or being offline, and so on.
4) The Dendron docs ("wiki") site is created using Dendron. It's a cool thought that I could create a nice website of documentation or notes without leaving VS Code.
Cons:
1) Can't access my notes from mobile.
2) Major warts in navigating between notes. Each note has a tab for editing it and a tab for viewing/previewing it. Opening a note behaves differently depending on which tab is focused. Clicking links to go from one note to another doesn't work very well.
3) Poor full-text search (just VS Code's code search).
4) You can't specify an order for notes, only unordered hierarchy, and you can't easily view multiple notes at once, which means keeping lots of short notes, or using different notes for different sections of a document, doesn't really work. There's a tension in any note-taking tool between short notes and long notes. Should notes be as short as possible? Or stretch into long documents? The ideal tool IMO would blur the difference between an ordered hierarchy of sections within a document and an ordered hierarchy of notes within some grouping. Dendron makes it seem like it is for keeping thousands of small notes, but the ways in which you can view, organize, and navigate between notes (lack of good "browse," search, links, lists, seeing multiple notes, next/previous note, and so on) are so limited that it makes more sense to write long documents. In which case, all you really need is Markdown Preview Enhanced and the file system.
- 1) Mobile support. We don't have a mobile app but you can access it on mobile using tools like GitJournal or IaWriter. Admitted this is not ideal but we do plan on a native mobile solution later this year. See FAQ here: https://wiki.dendron.so/notes/401c5889-20ae-4b3a-8468-269def...
- 2) As for navigating notes, this depends on your style. If your use case includes always having the preview side by side, then navigating with Dendron is not always consistent. If you mainly use the markdown view, navigation is our strong point since you can navigate and create links without leaving the keyboard
- 3) Yes. We don't have full text search but vscode text search is quite good, especially if you combine it with the [search editor](https://wiki.dendron.so/notes/692fa114-f798-467f-a0b9-3cccc3...) which lets you create new docs from search results. we also have guides on how to use dendron with elasticsearch [here](https://wiki.dendron.so/notes/401c5889-20ae-4b3a-8468-269def...)
- 4) As for order with notes, there's a few thoughts here. You can embed notes into other notes using [note references](https://wiki.dendron.so/notes/f1af56bb-db27-47ae-8406-61a98d...) and control the order there. for how it displays in the hiearchy, its alphanumeric sorting. custom sorting is something we can implement if there's enough demand. for lots of short notes, this is where I would push back. VSCode has a fantastic windowing system which lets you split your editor into multiple panes (that can be automatically maximized). I regularly have 5-6 panes open at any given time that are views into different notes, sometimes the same notes. this is actually one of our strongest features since tools like notion only let you view one note at a time
I'm thankful you gave us a chance and do know that we're working on all the points you mentioned!
Keep your markdown notes in one location, backed by git. Pull on any device for any reason. Use GitHub's / Dropbox's web interface when required.
- Search with grep
- Structured text + grep is extremely powerful
- use vim / emacs customization for display
- Display anything using, say dot or graphviz
- Edit with VSCode if you like vscode. Anything else otherwise.
I'm always surprised how few solutions manage to reach this basic level of functionality. Not that Dendron doesn't do a fine job!
On mobile (iPad anyway) try CodeSpaces:
https://github.com/features/codespaces
It’s VS Code in your browser tab, and works great.
Separately, I don’t necessarily use that, since it’s an online experience. I use Working Copy and Textastic (or other local native editor depending). Benefit of git sync and markdown. A smattering of local editors do have both Markdown and mermaid support.
Rest of your feedback, I agree with.
I wanted something with the ease of notepad, the structure of evernote, and the speed of redis.
Iterating over these features led me to Dendron and its been battle tested with my own collection of 30K+ notes
Obsidian (and other tools like it) focus on backlinks and using a graph to connect your ideas. This is valuable for connecting disparate ideas but its still hard to find any individual note once you have a lot of them.
Dendron helps you organize your notes into hierarchies that you can enforce using schemas (think type system but for your hierarchies)
The problem we're solving: once you have hundreds or thousands of notes, how do you find a specific one?
More on this here: https://wiki.dendron.so/notes/683740e3-70ce-4a47-a1f4-1f140e...
Personally I could see the use if you were writing a book or something, but I feel like in practice for normal notes I would just have all of these notes that I'd never look at again or spend so much time traversing my notes and not getting things done. As someone with distractive tendencies I'd love to hear the situations where this is useful so I stay on track.
I hear the term "second brain" used a lot. The thing is with your brain, you don't actively spend time searching and traversing your "notes" consciously. Generally your mind brings things to be recalled just as you need it. Is there something like that?
A lot of my note-taking therefore becomes an excuse to successfully ignore the things I know I don't need to pay attention to.
I do have a bunch of notes that I use for everyday stuff, however. My engineering journal is a hierarchical notebook, allowing me to go back and see all of the contributions I've made to $PROJECT, which is great come review time.
I also have a tech notes section for problems that I seem to have to solve over and over again. For example, every time we have a power outage, my Mac Mini gets stuck in a reset password screen, and I need to reset the NVRAM to fix it. I don't remember the keycode to do that, so I have a note called "Fix mac mini password reset" that tells me that it's `Cmd-option-p-r`.
Lastly, anything that might be good in a self-hosted wiki goes in my notebook; basically, my own little set of `README.md`s.
Last week I had one of those dreaming-about-writing-code sort of nights, where I half woke up and was thinking about the stuff I'd been dreaming about and couldn't go back to sleep. I tossed and turned until I grabbed my phone, opened my notes app, jotted down some of the idea, then closed it. That alone let my mind say "ok, now I won't forget it" and I was finally able to go back to sleep.
Some people go full-on Zettelkasten, which is awesome and I'm happy for them. Turns out I really don't need all the organization. I just need somewhere to offload my thoughts where I know I can find them later, and just the process of writing them down usually gets me 99% of the benefit of having such a system.
- Onenote for ideas and scribbles - zotero for bookmarks and documents. Supports tags - physical notebook for note taking during meetings
btw you can easily connect zotero to your own nas via webdav and you have unlimited storage. Works fine for me. The only drawback of zotero is that you dont have a native mobile client.
- It opens instantly to a blank window ready for me to type into.
- It's extensible with built-in actions and JavaScript so that I can automate things like posting the text I just wrote to Twitter or Mastodon, or add it to OmniFocus, or text it to my wife, etc. etc. etc.
One thing I realized was that most of my notes were links to pages on the internet with maybe a few extra words as context, and the rest were chicken scratch step-by-step things I did setting up something nontrivially complex. For the links, now I just use bookmarks in Firefox and add tags religiously to make them searchable. For the step-by-steps... I’m not really sure what to do, thinking of running a WebDAV server on my LAN and using Joplin as a client to just contain arbitrary markdown docs.
* Keep Zotero open, and navigate to one part of its collection (topic) hierarchy.
* Click on the Zotero button in the browser, to save the current web page, PDF doc, paper in Semantic Scholar etc into the currently selected place in the Zotero hierarchy.
* Zotero saves all the metadata about the object.
In parallel, I keep project specific markdown files in the folder I create for every project.
I tried Roam-like hyperlinked Markdown files for a couple of months, but found I kept wanting to keep them alongside other project-specific files.
https://www.w3.org/TR/annotation-protocol/
https://web.hypothes.is/blog/annotation-is-now-a-web-standar...
We routinely conflate todos/plans ('need to do this') , observations and patterns ('this is what i see happening when...'), events ('this happened...') and learnings ('this is what i did wrong, right...') as "notes".
I started with dropping everything in notational velocity (till it broke on my Mac upgrade) and / or 'email thyself' and like you said, it builds and its there but of little or no use. Unless its in my brain, I can't make connections. Without connections I cannot recall when I need it. It really does not help. Its actually net negative with the effort that goes into putting it in there.
I now use Google docs. One doc for each topic I am currently working on (e.g interview preparation, home purchase research, kubernetes, etc..) This builds topic wise documents which are exponentially faster to navigate/guess without needing text search or any filing system. I can skim through 1-2 documents and it provides context, history, insights, quotes in 1 place that I try and read more often which tends to stick in my head. Also given that I am more a visual learner, the place where something particular was on a document also brings in what was written next to it simply because I've seen it so often.
Though, you can use the system of someone else and cope with it and use this person tools. But usually this does not really work well long for most people.
- I will create a folder for a topic with multiple ideas (e.g. transformers), and then put inside it a few separate files. One might contain a link to a paper or blog post and then my notes from reading that (really the most important snippets, occasionally a summarizing statement by me). Another might contain a list of ideas to try, or a pros/cons list.
- I have a folder called "book reviews" in which I put a single file per book I read. I try to write down a single sentence about each chapter, and I copy quotes I particularly like. I don't refer to these often, but it's reassuring to know that I won't have to reread the entire book to regain my state of mind.
- Very often when putting together a written document I write drafts inside the editor. I know there are "better" tools, but the writing feels organic here, since it's adjacent to notes.
- During meetings I'll sometimes make a document for the meeting, and then write down a todo list while we're discussing. This usually gets sent out as an email to the meeting participants (a very useful habit).
I use Obsidian, and have really started this in the past year, when note taking apps took off on Hacker News. Fiddling too much is kind of a distraction (I spent a few too many hours tweaking themes).
I like it because it's a wrapper around a folder of markdown files. I really my notes being just a folder of markdown files, so that's the selling point of Obsidian to me. I can open my notes in VSCode just as well as Obsidian, if I'm editing. Obsidian gives me some nice functionality (backlinks, hotkeys for different notes formats mostly, and just being a separate application from VSCode), but it could disappear tomorrow and VSCode would take over as my notes.
I setup a cron job to `git add .`, `git commit`, and `git push` every day, so I have my notes in a github repo that I can pull down if I ever need to switch devices. Or if I just want to look at my notes from a device, I can just browse the Github repo.
I use it for two different things:
- a daily log of my work for the day, including notes of what I did, and where each branch left off. All of my "four little things to finish this jira ticket" end up in the daily log. - notes on various personal projects. For example, if I am looking for a contractor to prune a tree I create a note for that. I put in all the contractors I'm contacting, their bids, etc, into the note.
> The thing is with your brain, you don't actively spend time searching and traversing your "notes" consciously. Generally your mind brings things to be recalled just as you need it.
Maybe your mind does! My mind will often come back with: "there were _definitely_ 5 little todos that you needed to do to finish the branch, and I have 3 of them here ready for you. Maybe do a `git diff` to try and remember the other 2?", or "Hey, I was looking for a contractor to prune the tree. I called three of them, I think. Maybe four. Who knows. A couple sent in bids, but I don't remember which ones. Let's check gmail and see if we can find any there?".
So, personally my use of notes isn't to stop my brain trying to _come up_ with a task to complete. My notes are basically an index for when I want to resolve a task, to all the information I need to pick it up again. Or, alternatively viewed, it's the context when I put a task down, to help resume the task when I context switch back to it.
Yep. This is why I've been enjoying Obsidian too. I've been able to organize how I want, and it works just fine... and it keeps working, without not-so-subtly forcing me into a new structure that I don't want, just to work with it more smoothly. (e.g. Notable)
On mobile I just use some other markdown app (Epsilon is marvelous for reading). Nearly every single one works great with a folder of md/cm files. If I can't even do that, just opening plain text files works fine. The lack of lock-in is wonderful.
https://hn.algolia.com/?q=dendron.so
Each time, it catches my interest, I try it out, and I cannot make it work for me. It looks really fantastic with a lot of documentation, but learning curve, preview, conflicting with existing vscode plugins, etc;
I'll likely continue to try it out, because the marketing and documentation looks so good. Having spent a fair bit of time on this now, I don't think it's really possible to have a good experience with VSCode as the input.
As for the learning curve, yes, you're right and we're working on it.
We just launched a new tutorial: https://wiki.dendron.so/notes/678c77d9-ef2c-4537-97b5-64556d...
One of our users also made a great video series about Dendron on egghead: https://t.co/qIRvQqtttZ
Most notes, at least the way I work, start as just that: notes. Then some of them grow more complex and evolve into a larger document (or ideally, could evolve into multiple linked ones), but Tomboy doesn't really support it (at least if it had support for copy-ing away text as markdown...) and I really don't feel like having yet another IDE like app taking up the whole screen for every small note.
And collecting is more a matter of your setup. It's unhealthy easy to collect stuff with any mature noteapp this days.
It's ideal to have a tool that is extensible enough to handle scratch notes all the way to densely linked evergreen notes.
I use it and like the way it's implemented md and other format support in that you can either create a new note formatted as markdown, or update existing and previously created journals and the tool will re-render them to md: https://jrnl.sh/en/stable/formats/#markdown
Phone actually, specifically. I'd love to be able to just drop in a jrnl entry without faffing with text files on iOS
A personal knowledge management and sharing system for VSCode
I like that foam stores history in git, & can write static html output, which the project uses to self-document.
It'd be sweet to hear from folks who've tried both how they found the experience. I'll try to become one of those folks myself, at some point.
[1] https://jevakallio.github.io/notes/foam-six-months-later
Dendron helps you organize your notes into hierarchies that you can enforce using schemas (think type system but for your hierarchies)
The problem we're solving: once you have hundreds or thousands of notes, how do you find a specific one?
More on this here: https://wiki.dendron.so/notes/683740e3-70ce-4a47-a1f4-1f140e...
One of them is simple and just gets out of your way, the other is more powerful and complex and requires more investment to set up correctly to your use case. Probably different strokes for different folks here.
Not sure if the current version already allows that - but this is a common flaw with most Markdown note-taking software (I have around 8000 posts/notes spanning 16 years of hierarchies, some time-based and some context-based).
we're still using the dotted namespacing but we've also introduced the ability to export your notes to plain markdown (it inlines dendron specific markdown like note references to regular markdown). if you have folder based markdown, you can import them to dendron's format using our markdown importer and then export them to the same format as well (this is coming soon)
For me, this kind of note taking app ought to use folder names as topics or categories (dev/rust) and have an index.md (dev/rust/index.md) as an entry point, and some sub-documents/sub-sections in the same folder.
Also, many of these tools only go half way: they have folder support but instead of a "bag of posts" you have to put images in a "bag of media" folder, which is even worse sometimes...
I remember there is also a plugin which allows to use folder as notes, by loading a kind of index.md when opening the folder.
But what do you mean with "bag of media" folder?
This is accessible easily via various tools on ad hoc place (mobile, browser or whatever), such as GistList [1], GistPad / vscode has some good filtering features and I can download all gists locally and use any file manager to filter out tags. Its also a collection of mini git repositories with all nice things (revisions, multiple files etc.) and me not having to think about any of that.
You can easily go from there to graphs and folders and other advanced stuff (PlantUML et al are all possible via extensions) if you need them, but I have around 200 notes and do not usually need any of that. What I do need is an easy system not depending on any particular technology - all parts of it can be replaced with something else or nothing at all and still be usable with regular OTB OS tools.
[1] https://gistlist.ksdev.pl/
[2] https://marketplace.visualstudio.com/items?itemName=vsls-con...
According to the guidelines, "New features and upgrades ("Foo 1.3.1 is out") generally aren't substantive enough to be Show HNs. A major overhaul is probably ok."
Anyways, for these note taking systems, the one thing that I miss is a good quality mobile Android app to go with it.
A lot of times I just end sending myself a Telegram message because their app is good and fast.
Spreadsheet like support is not something we currently support but we'll have integrations and also native support coming soon!
1 - https://www.zettlr.com/ 2 - https://gist.github.com/drcursor/8dd91f28bf5a58dd5f23f828d48...
It doesn't have any real outliner capabilities. Not that everyone wants an outliner, but you get it with org-mode.
It doesn't work like a wiki. In other words, if you link to a file that doesn't exist, it just says the file doesn't exist. It's kind of annoying to have to create those files manually and then reopen the document so you can add a link, even worse if you've linked to several notes you want to create.
I use org-roam extensively and create many many tiny files. Usually I start writing in daily note and simply link to the file. Then when I have something substantial I move to the linked file (automatically created when linking first time) and write stuff here. I get backlinks simultaneously so it is pretty easy to follow my chain of thoughts.
I use markdown because it looks great when rendered to HTML, but I've only ever used my rendered notes once in three years. I always just grep them or vim search them instead. Since I'm not getting a benefit from markdown, I'm just going to switch back to text files, using one per class for the rest of the semester and a separate file for misc topics/notes.
I think I'm just not the audience for this, but I like the concept of these detailed note systems a lot, I'm just not very often searching my notes again without just using plain old grep.
And for the most part, I don't use HTML rendering but Dendron gives you easy ways of creating notes from links, creating relative links to files, and pasting images into your markdown.
I use Atom for text right now, and OneNote for images, but it would be ideal to combine them. I've tried a few Atom plugins that say they can do this, but none work (possibly due to API changes over time).
Anyone know of a good solution?
I describe Dendron as basically notepad with additional features :)
Do you have like a hack to post notes to and from mobile?
Also looking into building a draft like mobile app later this year to support your use case of quickly adding to existing nots.
See mobile use cases here: https://wiki.dendron.so/notes/401c5889-20ae-4b3a-8468-269def...
Then when you hit the preview button, it automatically renders it. Something like this: https://markdownmonster.west-wind.com/docs/_5ef0x96or.htm
But as a VS Code extension.
And I built the silly "discovery" feature where it randomly pushes an old one to the top to help keep it clean.
Also, Sqlite text search FTS5 is rad
Do you have, or thought about, integration with one of these?
I like the idea of writing my notes in Dendron and being able to automatically publish them (or a subset of them).
I tried hopping onto the Zettelkasten/self-markdown-wiki bandwagon with Obsidian but its non-commercial clause was really discouraging... so I said "F it" and returned to OneNote (which BTW does have pretty permissive links!).
I would suggest if you are serious about it being a serious note app, jettison the vscode dep.
I picked up Dendron due to 2 things: 1. Hierarchies leading to better note structure - I can have my notes be folders (kind of like notion) 2. VSCode - working with something extensible and familiar to me.
Here's more from the wiki: https://wiki.dendron.so/notes/683740e3-70ce-4a47-a1f4-1f140e...
To be honest, I don’t see much appeal in publishing your entire unfiltered notes to the web. Synthesize interesting portions of them occasionally into coherent blog posts that other people can consume without digging through a forest of links, backlinks, and footnotes.
tldr: obsidian is easier to get started with and is good for free association of notes. dendron is better integrated into the development workflow and is amazing at helping you organize your notes into well defined hierarchies