Here’s a list of software I use in my research, and a brief description of how and why.
Zotero1 for reference and literature note management
There’s a lot to say about Zotero – and having trained its use for students, librarians and researchers for more than ten years, I have said a lot about it, but simply put, nothing else comes even close:
It’s open source, so nobody will keep your notes hostage[note: The importance for open source for tools like this cannot be underestimated. See Digital Enclosures.]
It works everywhere: web, desktop, Android, iOS
It is pretty much feature complete, but if you can think of a missing feature, someone has probably already implemented that in a plugin.
Logseq2 for organising notes, links, and thoughts
There are many competing software for personal knowledge management nowadays, but most of them are closed source. Why would you store your knowledge on somebody else’s backyard, paying rent for it, sooner or later, when you have a nice big backyard of your own?
I used to store all my notes on Zotero, but thanks to my colleague Tuomas Tammisto, who taught me the advantages of a Zettelkasten system, I decided that I should keep my “thinking” notes and literature notes separate.
In November 2025, I’ve used Logseq for almost three years, and it has really improved my thinking, and my ability to recall previous lines of thoughts.
This Digital garden is also based on Logseq – it’s a selective export of my notes.
NeoVim3 for writing and programming
- The amount of design thinking that has gone into how vim-like software work is mindblowing.[note: Two-Bit History has written about the history of vim. NeoVim represents the accumulated knowledge and thinking from half a century.] Nothing else, in my opinion, comes even close. The negative side of that is the learning curve. That can somewhat be mitigated by using the LazyVim setup, and by reading LazyVim for Ambitious Developers.
Pandoc4 for document conversion
Pandoc converts almost any document to another format. I write all my academic outputs in markdown[note: Markdown is a markup languge for creating formatted (aka ‘rich’) text.], and then convert it to that I need. Some examples:
markdown to reveal.js HTML for slides
markdown to DOCX for sharing with colleagues
markdown to PDF for printing
markdown to EPUB for loading on a ebook reader