Sidenotes

Just about a year ago, in the winter of 2015, I created the web app "Sidenotes", a simple note taking app for managing the small text notes I write to capture information that I may need later.

When the app was online you could reach it at sidenotes.net. This post recaps the app’s short life.

The idea

Whether working on some convoluted task, or doing my field work on the Internet, I gather extensive notes. Always learning new stuff, like studying a programming language, reading about a fancy database technology, or the new web framework of the week.

But, most often, it’s the simple stuff I need to write down, and find again. Like one-liners on how to make a swap partition, or how the &#€$! I can actually make the NTP server set the right time.

I’m in front of my computer most of the day. This powerhouse of computation is ideal for capturing and managing my digital notes. But, I’ve tried countless systems for gathering my digital notes, and I haven’t yet found a software that is just right. I assume that many others feel the same way.

Some note-taking apps are just too complex and over-engineered, and many don’t support writing in Markdown, and only few will let me create links between the notes.

I wrote a blog post about my discontent with existing note-taking apps, and decided that it was time to realise my personal vision of a great note-taking app.

I named it Sidenotes:

The look-and-feel

When signed in to the app, the homepage is a list of recently edited notes.

List notes

Clicking on a note you navigate to the HTML rendering of the Markdown note.

View a note

The note text can be edited using the built-in Markdown text editor.

Editing a note

You can review the changes between different revisions of a note.

Changes between different revisions of a note

You can also search notes by tag or keywords.

The technology

I build Sidenotes on the basis of open source technologies.

The front-end is an almost unstyled version of PureCSS, made interactive using jQuery and CoffeeScript.

The back end is written in Python, and consist of a Tornado web server, and Whoosh for file text-indexing. Notes and user data are stored in a CouchDB database. Nginx served as a reverse-proxy to the web interface.