DEV Community

Cover image for 5 Best Free Note Taking Apps for Programmers
AlbertoM
AlbertoM

Posted on • Edited on • Originally published at inspiredwebdev.com

Coding Notes 5 Best Free Note Taking Apps for Programmers

Originally published on my blog.
Check out my blog for more articles or Github for my free-to-read JavaScript Ebook that covers all the new features from ES6 to 2019

Taking notes is a vital part of learning and as a programmer we have specific needs that software such as Docs or Word can't cover. That's why I compiled this list of my 5 most favorite note taking apps.

In the past couple of years I've used all of them, some of them I still use them, some I've stopped using, but any of these 5 will help you.

You will see that all of them use Markdown (either the standard syntax or a custom one) and that's because I find it the fastest way of taking notes since it allows to quickly create documents with simple formatting and also allows you to add code block with syntax highlight.

Note: these apps are all free or have a free tier so you won't need to fork out a cent to start using them.

1) Notion

Available for: Windows, MacOS, Android, iOS, Web.

This is the app I've used to write this blog post.

It's great because it's not just a markdown text editor, you can do so much more, including tables, kanbans, calendar into your pages.

You can sync your notes across your devices and the fact that it has a Web version means that even if you use Linux, like me, you can still use it.

It has very solid support for code blocks, with highlight and ability to wrap the code.

The free version includes enough space that you should be good for a while.

2) Stackedit

Available for: Web

Stackedit doesn't have a mobile app but you can still use it comfortably from the browser.

It's much simpler than Notion, being a straightforward markdown editor that syncs with your Google Drive.

I use it daily for my work notes whenever I need to write down my thoughts and I want to make sure that I can access them from both my office and my own laptop.

It's completely free and the markdown files are stored in your Google Drive so if you want to migrate them somewhere else it's going to be very straightforward.

The support for code blocks is great, with syntax highlight for any language you need.

3) Typora

Available for: Windows, MacOS, Linux

Simple and clean, Typora is a powerful markdown editor. Unfortunately it doesn't have a mobile version or a web client, but the desktop client is solid and powerful.

I've used it write my first JavaScript ebook and I really liked the integration with Pandoc to export my markdown ebook straight into epub, pdf and doc files.

It has great support for code blocks, using prism for the syntax highlight and it also allows you to create your css file to style the exported PDF files.

4) Quip

Available for: Windows, MacOs, Web, Android, iOS

Quip is the first editor that I've used and albeit I don't use it anymore, it's still a great solution.

The mobile app is not the best, but the web client is solid and powerful allowing you to easily add tables and more.

Some features are paid but overall the free version is good enough.

The support for highlighted code blocks is basic and not on the same level as the others

Bonus: VSCode

Available for: Windows, MacOS, Linux

Despite not being meant for it, vs code is a great note taking app.

When writing the second edition of my ebook I've used vs code to create individual markdown files and a simple node script to join them into a single one.

You can also take advantage of a GitBooks to connect your repo and have your notes published online, available privately or publicly.

Editing on the fly is not the easiest since you can't use vs code on your phone but you can still edit directly the files hosted in the Github repo from apps such as FastHub or similar 3rd party clients.

What is your favorite?

How about you? Do you already use any of these apps? What is your favorite note taking app? Let me know in the comments


Thank you very much for reading. Follow me on DevTo or on my blog at inspiredwebdev for more.


book banner

Get my ebook on Amazon and Leanpub

Top comments (80)

Collapse
 
bretthancox profile image
bretthancox

Emacs org-mode. Take notes, create actions, track time, plan work, view agenda, view to-do list, and all in text format. The single greatest change I've made to my productivity is keeping my brain in emacs.

Collapse
 
gayanhewa profile image
Gayan Hewa

The biggest reason that made me do the switch to emacs :D

Collapse
 
mochsner profile image
mochsner

I've been using org mode for about 2 months at work & couldn't agree more. Still working on a way to try to edit files from mobile - do you have a solution for this?

Collapse
 
raphaelduchaine profile image
Raphael-Duchaine

Never tried it but maybe something like Orgzly would do the trick : play.google.com/store/apps/details... . It seems to be the most talked about.

Collapse
 
bimlas profile image
bimlas • Edited

TiddlyWiki

I came from the Vim era: it's a popular text editor, mostly used by technical people. I tried out different ways to store my thoughts, for example: plain text (Asciidoctor) files, Jekyll (blog platform), Boostnote (note taking software). Whenever I tried out new ways, these was my most important requirements:

  • Offline first I don't want to depend on companies - when it's closing its doors, my notes are gone
  • Export my notes easily If I ever want to change to another tool, I want to move my notes into that easily (at least with minimal modifications)
  • The best would be to store as plain text I'm using Git heavily, thus I like to keep my "backups" in a repository - for this job the text format is the best Besides this I can batch modify the notes via Vim
  • Be able to read my notes from everywhere I would like to read my notes from any computer without installing the "editor" itself
  • Be portable It has to work on Linux / Windows (Android is not reuired, but it's good if it works) - the best would be to use exactly the same GUI on every platform
  • Require as few as possible external programs For example compiling Asciidoctor files to HTML require Asciidoctor itself, which is written in Ruby -> needs that too
  • Tag feature My habit is that write a note and add a lot of related tags to it - I don't have to think where to put in the ToC, because I can find anything by tag intersections

Whenever I tried out new stuff, it turned out that it doesn't have some of these features, thus I switched back to old, but good plain text (Asciidoctor) format (because it's the most flexible) + Vim editor (syntax highlighting, search and replace, basic file navigation).

The problem with file based note taking is that

  • You are forced to use hierarchy You have to place your files somewhere in the directory tree, but it's not clear that a note about "NoteTaking" should go in to "TextEditing", "Software", "Practice", because it belongs to all of these "categories"
  • You can drop every note into one directory, but in this case looking for them is hard You can store the tags in the filename and use file searching, but if you want to share your notes with others, he/she will not know what to do
  • Hard to search for tags and tag intersections With regular searching tools (like Grep) you cannot do fuzzy match, but you can search for regex, like "tags:.Software.TextEditing", the disadvantages of this is that you has to store the tags in predefined (maybe alphabetical) order You can use fuzzy file searchers (like FZF or Everything), but you cannot get the list of tags to pick from that
  • Cannot include images and other media types into notes

So I continued searching for The Notetaking Software, then I found TiddlyWiki and fell in love with it, because it knows almost everything that I want, besides this it's incredibly hackable: you can turn it to any kind of software, not just notetaking (todo list, book, GTD, project documentation, family tree, photo gallery with categories and tags, etc.)!

For a better understanding of what is the real power of TiddlyWiki, please read Joe Armstrong: My Eureka Moment with the TiddlyWiki then have a look at these examples:

If you have additional questions, look for the TiddlyWiki mail group, there are very helpful people (seriously, this is the best community I met on the net).

Collapse
 
dorneanu profile image
Victor Dorneanu

Amen! :) Great to see you here as well :) And really awesome sum-up of Tiddlywiki's capabilities.

Collapse
 
talha131 profile image
Talha Mansoor

@bimlas I was going through comments to see if someone has mentioned TW5. Your comment deserves to be a post in itself.

BTW, good to see you here. I use a few of your TW5 plugins.

Collapse
 
bharat profile image
Bharat

Emacs org-mode and sync with private(encrypted using git-crypt) github repo.

Termux and decrypt on mobile and view in orgzly.

Granted this is not easy to setup and has manual step to push and pull on mobile but everything is encrypted end to end and free 😄

Collapse
 
mochsner profile image
mochsner

Were you required to root your phone to clone the repo in a directory accessible to orgzly? I looked into this a few weeks ago, but recall running into hurdles with security restrictions

Collapse
 
bharat profile image
Bharat • Edited

No I have not rooted. Just install Termux and then run termux-setup-storage in termux to access device storage. Now you can install git, openssh from termux command line. Navigate to sdcard and you can clone any project and access it in Orgzly. I wrote two functions in .bashrc to push and pull to my private repo. That is the only manual step I was talking about.

Collapse
 
blmhemu profile image
Hemanth Bollamreddi • Edited

Joplin
Open source, markdown, sync, encryption, dark mode, cross platform.

Collapse
 
albertomontalesi profile image
AlbertoM

It looks very interesting, thanks for sharing

Collapse
 
awwsmm profile image
Andrew (he/him) • Edited

This is what I use. It's great, and really easy to get used to

Collapse
 
jmfayard profile image
Jean-Michel 🕵🏻‍♂️ Fayard

I'm replacing Markdown by Asciidoc.
Markdown is broken, it's sad
It has all the right ideas to start with, so everybody starts with it, and then everybody notices it's not enough and do its proprietary extension of Markdown.
There are so many Markdown to choose from that after getting once too much in that rabbit hole, I decided to switch to Asciidoc.
Asciidoc is basically markdown done right.

Collapse
 
albertomontalesi profile image
AlbertoM

I never used it, could you elaborate more on daily use cases where you found markdown to not be enough/be broken?

Collapse
 
jmfayard profile image
Jean-Michel 🕵🏻‍♂️ Fayard • Edited

Well everyone has a different Markdown.
GitHub has its extensions, some of which makes sense for everyone, others only on GitHub.
Dev.to has liquid tags. They are great but again not part of a standard format.
Static website generators have a yaml front end matter. Why not?
What if you want a table of contents? Just add another external tool.
What if you want to use variables? Nope.
What if you want to structure your work by including another file, or a part of another file? Nope.
The syntax for inserting an image is mostly worse than plain HTML.
Ever tried to maintain a table in markdown? That sucks as lot.

Common Markdown tried to find a common ground, the Markdown Creator was not happy about it, but also it turns out it's not possible.
Everyone use a different Markdown plus something.

Asciidoc is my Markdown++
See here and the comparaison with markdown

asciidoctor.org/docs/user-manual/#...

Thread Thread
 
albertomontalesi profile image
AlbertoM

Oh yeah, I agree with your points. I'll give asciidoc a try, thanks.

Thread Thread
 
jmfayard profile image
Jean-Michel 🕵🏻‍♂️ Fayard

The key is to find a converter Markdown to Asciidoc, to start with what you already know. I am doing this in IntelliJ idea but there is probably a lighter alternative 😃
Pandoc comes to mind.

Collapse
 
aminmhmdi profile image
Amin Mohammadi

what about google keep??

Collapse
 
albertomontalesi profile image
AlbertoM

It's good to quickly write down ideas, but I don't see it as a good option for proper notes

Collapse
 
peiche profile image
Paul

Keep tops the list for me because it allows collaboration. I use it for code snippets, blog posts, links to check out later. My wife uses it for notes and grocery lists. It's easy to add each other to notes we want to share.

Collapse
 
metalmikester profile image
Michel Renaud

I use Microsoft OneNote.

Collapse
 
aravindk profile image
Aravind Kothandaraman

Cant speak for markdown support from MS Onenote but another great tool with lots of features and obviously easy sharing, sync etc. It does have password protected tabs or sections.

Collapse
 
metalmikester profile image
Michel Renaud

It’s not the greatest for code, but usually gets the job done. I could use something else, but I have a lot of stuff in OneNote already and don’t really feel like adding yet another piece of software.

Thread Thread
 
aravindk profile image
Aravind Kothandaraman

Exactly. I use trello plus OneNote to typically lay down my priorities of tasks, personal projects, learning etc.

Collapse
 
antonrusak profile image
Anton Rusak

Simplenote by Automattic.

  • Has a clean interface
  • Works everywhere
  • Supports markdown
  • Is able to publish markdown documents as webpages

The clients are open source though they use a proprietary cloud to store data.

Collapse
 
albertomontalesi profile image
AlbertoM

I like simplenote too, it didn't make it in my top 5 though

Collapse
 
antonrusak profile image
Anton Rusak

May I ask why? :)

Thread Thread
 
albertomontalesi profile image
AlbertoM

No syntax highlight mostly. I still use it to take some quick notes, but not programming stuff, mostly recipes lol

Collapse
 
hasii2011 profile image
Humberto A Sanchez II

I work exclusively on Mac OS-X. My favorite is the built-in Notes app. It syncs across the iPad and phone IOS apps (through the iCloud). It has just enough formatting and the ability to categorize notes. Just enough and not too much.

Collapse
 
tedatcis profile image
Ted Bergeron

I use VS-Code because I like to write notes using AsciiDoc. I used to use Markdown but I've switched because AsciiDoc is a lot richer. There is an AsciiDoc extension that lets you preview your notes side-by-side. marketplace.visualstudio.com/items...

I love the side-by-side previewer. I like to link my notes together. The Markdown previewer allows you to click links and browse to your other notes within the previewer.

Clicking links in the AsciiDoc previewer doesn't work, so I browse them in Chrome using the AsciiDoc live preview chrome.google.com/webstore/detail/... (also available for FireFox)