The GTD Framework

So the other day I stumbled into this article on The Changelog. It is called GTD in 15 minutes – A Pragmatic Guide to Getting Things Done and contains a condensed summary of the GTD productivity framework.

GTD is a productivity framework with the aim to help you organize projects, tasks, ideas, etc... So I read through the article and I liked it enough to try it, to me it feels like a more sophisticated and well-thought version of the simple "TODO" list I normally use for these kinds of things, it is an upgrade of my current system.

I really really recommend you read through the article if you are interested in productivity and self-organization, but to summarize really really briefly to start using it you need at least the following:

  • Tasks lists
  • A calendar

And also you'll need the following ritual:

  • Weekly review

Optionally, the article mentions some extra things like a Tickler file, that I won't be using for now. Also for my particular case, I decided to also include a tool to attach long texts to some of the tasks, for instance, one task could be install archlinux and I would also like to write down the important details of the process and the problems I had and store it all together in a place I could easily retrieve in case I need it.

The implementation


The next thing needed was to decide how to implement this, first I need a tool in which I could create and keep several task lists, as the system contains the In, Next Actions,  Waiting For, Projects and Some day/maybe lists. We may also need to be able to move tasks between the lists.

I already have a self-hosted Nextcloud instance installed on my personal infrastructure and I was using the Tasks plugin to track my TODO list. So I just went there and created all the lists.

Once all framework lists are created will be easily accessible on the sidebar

There is some extra information required on some of these lists, and here is what the Nextcloud Tasks app can do and what the limitations are.

The first and most important are the contexts, on this framework, there are things called contexts, that are like tags you can apply to the tasks,  for instance computer, home, office are examples of contexts. A task would be marked with the office context if it is something you can only do in while in the office for example, so if you are idling and don't know what to do while in the office, you can easily access the tasks that are marked with that context to know what to do. Luckily Nextcloud Tasks comes with a tags field and you can apply as many tags as you like to your tasks. The only limitation is that as far as I know, you cannot filter tasks by tag, so you have to do that "visually" while reading through the list.

A task marked with the computer context, something I can only do while on the computer

Next, for the Waiting for the list you need to be able to mark since when is your task waiting, and for that, I can use the start date field that already comes with the Nextcloud Tasks app.

The upgrade of the engine in which this blog runs is blocked because of an external issue

Another limitation is the linking of tasks from the Projects list and tasks on the rest of the lists. The projects list contains things you want to do but cannot be done as a single task, but are goals you set that drive the creation of new tasks. Sadly I didn't find an easy way to link those, the only way I could come up with is either having them linked in your brain, or writing it down in the "Notes" section that comes with the task.

Extending the Notes field

If you need to write something down in relation to a task, you only have the "Notes" field that I normally use extensively, but it is very limited, the contents will be gone once the ticket is marked as done. It is not very readable, and it can only contain plain text. If for example, the task is like sew a shirt I would like to attach things like the sewing pattern PDF file, the notes I write while doing it, things that went ok and went wrong, pictures... In that case, what I'm doing is creating a folder on Nextcloud's filesystem where I can store all those things and sync with my computer's filesystem and phone using the Desktop client and  Nextcloud app. For navigating and editing text information on my computer as I'm mostly writing markdown formatted files I'm using obsidian, it has VIM mode :).

Finally, I add the link to the folder on the "Notes" field.

I link the "Get better at VIM" task to a folder in which I store articles and notes I take

Phone synchronization

Personally, the main advantage of using digital tools and not just a notebook and a pen is synchronization and the possibility of checking your tasks every time you need just by looking at your phone. It of course has to work the other way around and whenever something crosses your mind no matter where your phone will be in your pocket and you can drop a line on the In task list. To achieve this I'm using a combination of Nextcloud's Caldav back end, an Android phone app called OpenTasks, and finally, another app called CalDAV-Sync that deals with the synchronization. The app is 2.99$ but does the job and it is actually the only Android ever app I've paid for. With all these tools together I can easily access the task lists from my phone's main screen. One limitation I found here is that tags (aka contexts) are not present in OpenTasks.

The list of next actions is synchronized and displayed on my phone


The calendar in this framework is used to (no surprise here) track things you have to do at a certain point in time, the framework doesn't insist much on this topic and I wasn't very interested in this either so I'm just keeping my regular calendar setup.

How does it work

Finally, the framework workflow goes as follows. You are on the train going back home and think, it would be cool if I could make my own leather backpack, so you just take your phone out of your pocket and put it in the in list that is on your phone, this way you "empty your brain" and don't have to remember it again. Then later, for example at night on your computer, you go through that list on Nextcloud and decide what to do with the tasks there, you find the make my own leather backpack and think, is this something I REALLY want to do right now? If not, you just move the task to Some day/maybe and that is ok, I use to think a lot of things that are very cool to do but thinking twice, are not things that I should be doing now, and knowing this is also a valuable skill too. Now if this is something I really really want to do then I would have to figure out what list it belongs to. If this is something physical and actionable that can be done it would go on the Next actions list, if it's blocked by something, on the Waiting for list, and in this specific case, as this is something that will require many actionable items, it will go in the Projects list and I would have to think on the first actionable, for example, it could be Buy leather and it could have the market context. So the next time we visit the market I can check on my phone and say, Oh! I have to buy leather, and later at home, mark that actionable as done and add the next one to the Next actions list, for example cut the leather. So the next time I'm bored at home, when I pick up my phone to do some zombie scrolling I'll see the list with cut the leather on top and think, oh! I'll cut the leather instead because I wanted to make my own backpack! And finally, on Sunday evening during the Weekly Review, I can check all the things I did during the week.