Will's avatar

⬅️ See more posts

Self-hosted notes and to-do lists

9 May 2021 (5 minute read)

🔮 This post is also available via Gemini.

100daystooffload technology selfhost

💯 100 Days to Offload

This article is one of a series of posts I have written for the 100 Days to Offload challenge. Disclaimer: The challenge focuses on writing frequency rather than quality, and so posts may not always be fully planned out!

View other posts in this series.

In this post I will talk a little about how I handle my digital notes and to-do lists. In the spirit of my last post on data sovereignty, the focus will be on self-hosted approaches.

To-do list management

It feels odd that the first task many new technical frameworks guide users through, by way of a tutorial, is a simple to-do list; yet finding great production-ready examples of such software can be challenging.

It’s a pretty personal space. Although there are awesome time management processes out there (such as the pomodoro technique), at the end of the day everyone is unique and what works for one person doesn’t necessarily work for others.

A few years ago I got quite heavily into Todoist. It’s a very feature-rich platform with great apps across web, desktop, and mobile. It supports tagging, projects, deadlines, sub-tasks, and much more.

However, it’s almost too feature rich, and I find this can distract from the intended simplicity of to-do lists. Whilst it’s important to set up a process that allows you to work effectively, spending too long configuring and reconfiguring things is counter-productive.

It also means that your data is held elsewhere and out of your control. A better solution might be one that you can keep local and sync or self-host.

There are a few examples of open-source to-do list alternatives that you can self-host. The one I use is Taskwarrior.

Taskwarrior is Free and Open Source Software that manages your TODO list from the command line. It is flexible, fast, and unobtrusive. It does its job then gets out of your way. - taskwarrior.org

I like Taskwarrior for many reasons. But mainly it’s the speed and clarity of use - it really does just “get out of your way”. Tags and projects are created automatically for you as you go, and querying feels as fast and sensible as Ledger is for accounts.

I have my terminal open all of the time anyway, and so I can quickly and at any time view my current list (by running task), and see my currently in-play tasks listed right at the top.

I can also query by tag (task ls +tagname), or to-dos for a specific project (task ls project:projectname).

Adding todos is also just as easy, and arguably quicker than commercial offerings like Todoist. E.g. if I wanted to add a new task to buy that gift for my friend (and tag it as “life”), I can just run task add +life Buy gift for Sam and then forget about the task for now. I can then check out my “life” todos (task ls +life) at a time when I’m out of work and have time to actually complete such tasks.

I’m on a Mac, and so I just used brew install task to install it. There is likely a package for your own distribution too.

In terms of self-hosting for multi-device setups, there is the Taskserver project from the same developers, and this is the recommended approach. For me, however, I only use Taskwarrior on one device and so I backup my tasks by simply syncing them to my Nextcloud. To do so, I just edited the relevant line in ~/.taskrc:

...
data.location=~/Nextcloud/tasks
...

There is much more you can do with Taskwarrior, should you wish (including things like theming and task prioritising). I can certainly recommend taking a look through the documentation for more information.

Notes (and notebooks)

Sometimes you just can’t beat an old fashioned pen-and-paper notebook. The process of physically writing things down definitely seems to have a psychological effect on my ability to remember things. However, this approach isn’t really compatible with my other information-oriented habits (particularly backup paranoia and minimalism).

The same concepts around organising notes into notebooks, and keeping things logically organised, can still be applied to digital note-taking too.

There are a number of free and commercial offerings that exist. Simplenote is great (though perhaps a little too simple). For Apple users, Bear is also good, but potentially locks you into the Apple ecosystem.

For some time I’ve used Obsidian. I like Obsidian as it just uses your filesystem as a way of organising notes (directories are “notebooks” and each note is a simple markdown file). This approach also makes syncing over Nextcloud super easy (just set your Obsidian vault to a directory in your local Nextcloud sync folder, and away you go). There is also a mobile app that’s currently in closed beta.

Recently I’ve been trying to get more into Joplin. I like this software because it is open-source, has a terminal interface as well as GUI ones, and has mobile apps available for note-taking on-the-go.

Joplin also has native sync-ability with Nextcloud, which is useful for backup and cross-device access. I find searching quick and intuitive, and the note editor uses Vim (by default, at least), which is great for easy editing.

All in all, I still teeter on the edge between Obsidian and Joplin - both are great options and are worth exploring for your own use.

Open to ideas

I’m definitely open to other ideas for both note-taking and to-do list management. If you have any good examples of software to help with either of these then please get in touch!

✉️ You can reply to this post via email.

📲 Subscribe to updates

If you would like to read more posts like this, then you can subscribe via RSS.