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.