The Best Note Taking System Is One You Already Have

Last Updated 2025-10-20

I've tried your note taking system...

The note taking system that stuck?

A git repo full of Markdown documents.

Why Markdown + Git?

Honestly? Because it gets out of your way, and lets you just write. Too many modern systems require a lot of buy in from their users before they really get comfortable with their systems; and lock you in, making it difficult to move away when you realise the mistake you've made. Markdown + Git is the opposite.

The 3 F's

It boils down to this; Markdown + Git is:

Free

Markdown is an open standard, meaning that there are hundreds of software packages that can view and edit Markdown files, from the humble Notepad everyone loves to hate, to Markdown specific editors like Typora (paid). Basically, as long as the software you use allows you to export in Markdown, you aren't locked into a platform. This means you can jump ship to a different editor at the drop of a hat. This is a great insurance policy for something that you don't want to have to deal with; migrating your notes to a new platform.

Using a Git repo provides version control for your notes, which actually comes in handy more often than you might think. Additionally, using GitHub, Gitlab, or any other cloud hosting service for your Git repo means that you can access your notes on different devices for free.

Flexible

Decoupling the hosting from the editor means you can pick the best tools for your specific use case.

Editor/Viewer

Using a Markdown backed system means you aren't locked in to a specific editor. How you think about and edit documents on your computer is likely very different to how you engage with documents on your mobile. Markdown gives you the best of both worlds by providing nothing more than an open standard. This means any editor can provide a different workflow and set of features that you might need in various contexts.

Examples:

Backend

A Git system might not fulfill your needs in terms of sharability or multi device sync. Additionally, your security senses might baulk at a cloud hosted Git repo. Great! You can plug and play whatever backend system you want.

You can mix and match too! For a while I was using Dropbox and a Git repo at the same time, but realised that since moving to a dumbphone, I only really access my notes on my primary device, so have since moved to a Git only system (using a private GitHub repo for backups).

Exporting Your Files

Markdown documents can be exported into virtually any file format you might need. Pandoc seems to cover most of the common ones.

Want to start blogging with Markdown? Check out Hugo, Astro, or even my own Project Therese to easily build sites backed by your documents.

Future Proof

Markdown will be here tomorrow, the day after, the year after, and the decade after. There are horror stories of forced migration and software abandonment for proprietary note management systems. For something as simple as writing personal documents, encountering these issues is frankly ridiculous.

Even if all the Markdown editors in the world disappeared tomorrow, Markdown's syntax is so humanly readable that it wouldn't matter. Because YOU are in control of YOUR documents, you won't need to worry about getting locked into a system that's going to shut down.

LLMs and Markdown

LLMs work really well with Markdown syntax, meaning that in the world of agentic AI, it's easy to provide context and instructions using the notes that you've written for yourself.

Looking forward to the near future, when I'm hopefully running a local LLM in a homelab setup, having my personal notes written in Markdown will provide a high quality and easily digestible context that a model will be able to use to problem solve.

Learning Markdown

Markdown is trivial to pick up; you can get a good understanding of the entire syntax within an hour. Even if you mess a thing up or two in your documents, modern linters and Markdown specific software are very forgiving and will help you out.

I'd recommend checking out the Markdown Guide as a first point of call.

Markdown In The Terminal

You're reading this blog, you're probably comfortable with the CLI. If you want a great experience editing Markdown documents in the terminal without any of the headaches, install LazyVim. Tweak as desired. That's it. It does basically everything you might want.

The only plugin I consider 'essential' that doesn't come out of the box is one to help with managing lists/sublists. I'm using autolist at the moment, but there are others that do the same thing just as well...

For an exceptional, but extremely esoteric Neovim Markdown setup, check out Linkarzu's article.

Daily Notes

If you're like me and mentally compartmentalise things by date, setting up a daily template and hooking up a keybind to quickly jump to it can make life a little easier.

local function open_daily_note()
    local dailies_dir = "/Users/user/notes_dir/dailies"
    local template_path = "/Users/user/notes_dir/daily_template.md"

    -- Get today's date in YYYY-MM-DD format
    local today = os.date("%Y-%m-%d")
    local daily_file = dailies_dir .. "/" .. today .. ".md"

    -- Check if file exists, if not copy from template
    local file = io.open(daily_file, "r")
    if not file then
        -- File doesn't exist, copy from template
        local template_file = io.open(template_path, "r")
        if template_file then
            local template_content = template_file:read("*all")
            template_file:close()

            -- Create the new daily file
            local new_file = io.open(daily_file, "w")
            if new_file then
                new_file:write(template_content)
                new_file:close()
            end
        end
    else
        file:close()
    end

    -- Open the file
    vim.cmd("edit " .. daily_file)
end

Useful Shell Aliases

If you live in the terminal, having a few quick shortcuts aliased in your .bashrc/.zshrc can remove friction when you need to quickly jot something down. Here are ones I use daily:

# open daily note (being in notes dir helps ripgrep/fzf search)
alias mt="cd /Users/user/notes_dir/ && $EDITOR -c 'lua open_daily_note()'"

# open my global TODO file
alias md="$EDITOR /Users/user/notes_dir/main_todo.md"

# search current directory for text
alias sg='nvim -c "lua Snacks.picker.grep({ cwd = vim.fn.getcwd() })"'

# create temporary markdown document (zsh needs backslash)
alias scratchpad="nvim /tmp/\$(head -c 16 /dev/urandom | xxd -p).md"

Conclusion

I'll be honest, there are two things that tempt me to move away from Markdown; Typst and Org Mode, for very different reasons.

However, every time I open up my folder and see that my Markdown system has been largely unchanged for over a year, I realise that I've found the right system, because I've stopped thinking about needing to fix it.