Introducing Notes'n'Todos

Note'n'Todos is an open source web app for managing personal notes and todos. The notes are written in markdown and have time stamps, tags and embedded todos. The back end stores the notes as plain text files on the server.


There is no shortage of note and todo management systems out there, yet I kept switching from system to system without ever feeling at home. It always seemed something was not right, and I lost interest in the system and forgot about it.

So, this is a typical scratch my own itch project. I started to develop a note taking system out of frustration and through many iterations Notes'n'Todos took shape.

It's not finished at all, at this time. The frontend could in particular use improvements, but it has reached a level where it's very useful and I have personally used it for my own notes and todos for many months.

Try the Notes'n'Todos playground here:

Notes'n'Todos Features

Time stamps

All notes have a ISO-8601 like time stamp, for mental sanity and easy sorting, and are presented newest note on top. This is a crucial feature that makes new and recent information raise up and older information gradually float further and further down.

It is allowed however, and encouraged, to change time stamps on notes. If an old note becomes relevant again with a few edits, by all means change its time stamp. Notes'n'Todos doesn't try to preserve history, it's possible to edit any note and the time stamp can be altered freely.


Notes can also have tags, which can be used for filtering what notes to show.

Markdown source

Notes are written in markdown, and the first couple of lines of the source is used to define date, name and tags, like for example:

date: 2021-05-15
name: Remember to buy
tags: Shopping

- [ ] Luftfrikadeller
- [ ] Skysovs
- [ ] Vindkartofler

The note would be stored by the server with the file name:

2021-05-15 Remember to buy.md

containing just:

tags: Shopping

- [ ] Luftfrikadeller
- [ ] Skysovs
- [ ] Vindkartofler

When Notes'n'Todos loads notes, it derives the date and title from the filename and takes the rest from the contents of the file.

The server watches the folder with notes with inotify and will reload them if changes happen to the files.


Todos live in notes. They have to be defined in a note, using the github task list markdown syntax, as seen in the example above. When a todo is done it is written as - [x].

Notes'n'Todos can show a summary of unfinished todos next to the names and dates of the notes they belong to. The todos are shown as check boxes that can be clicked, which will change the markdown source accordingly.


Note'n'Todos is made for single user. If multiple users edit notes at the same time, corruption will not happen, but the users might not be able to see the changes from the other user before the browser is refreshed.


Notes'n'Todos is intended to be selfhosted either from source or from the docker:

See installation guides in the the github README.md.


I hope you enjoyed this content!

ko-fi donate


Comments powered by Talkyard