org-roam
was my preferred tool for note taking & journaling, but since
it’s author seems to have stepped down & it’s implementation is quite
different from how I’d approach making a zettelkasten for Emacs, I
decided to start working on a new package, named org-gnosis
.
Goals of this project
The primary objective is to achieve full compatibility with existing org-roam notes while resolving current database implementation issues. These goals were met successfully on the first day of development.
Given that I plan to use this system for the next several years, performance with large datasets is crucial. I have conducted tests on org-gnosis with a dataset comprising 70,000 nodes, and it has demonstrated flawless performance without any issues. Although, the initialization can take sometime.
Beyond just performance, I want to keep it small and simple, especially in terms of lines of code. The less lines of code I have to maintain the happier I am :)
How to install
This project is only 26 hours old as of now, I have not published it on any ELPA, but you can find it on this git repo, feel free to clone it and try it out.
Example use-package
snippet
(use-package org-gnosis
:load-path "~/Dev/emacs-lisp/org-gnosis"
:init
(define-prefix-command 'thanos/notes-map)
(define-prefix-command 'thanos/journal-map)
:config
(setf org-gnosis-dir "~/Notes"
org-gnosis-show-tags t) ;; Enable this if you use a completion system like vertico
:bind (("C-c n" . thanos/notes-map)
("C-c j" . thanos/journal-map) ;; You can use "C-c n j" if you prefer
:map thanos/notes-map
("f" . org-gnosis-find)
("i" . org-gnosis-insert)
:map thanos/journal-map
("j" . org-gnosis-journal)
("f" . org-gnosis-journal-find)
("i" . org-gnosis-journal-insert)
:map org-mode-map
("C-c i" . org-id-get-create)))
After installing org-gnosis
run M-x org-gnosis-db-sync
to sync
your database, afterwards just use org-gnosis-find
similarly to how
you’d use org-roam-find-node
.
This package is still under development, if you encounter any bugs feel free to email me.