Github issues as my todo list

Introduction / motivation

Some friends and me have a regular weekly meeting. Besides friendly chatter, the reason for this particular meeting is to discuss what everyone has done respectively failed to do. We listen, give feedback where necessary, and the task to actually talk about your tasks is a great productivity boost. At the end of each session the planned tasks for next week will be presented. Additionally everybody has to sent an eMail presenting a small summary of tasks (not) done / tasks todo.

Until now I didn’t really track these tasks, besides some notes in the eMails themselves and some paper scraps. But this changes this year with Github issues.

Github issues

There are quite a lot todo list apps out there. Personally I did try Wunderlist and Todoist in the past. Why would I choose Github (GH for short) Issues over these more “traditional” tools?

Besides a personal preference about the way GH is used, there are two big reasons:

  • templates
  • API

Templates

Github lets you save templates from which you can choose for different issues. Not only can you set the issue text, but also the labels, assignments, and milestones / projects they belong to. For example a template for normal todos with sections for SMART goals, and a template for buying things with a budget section.

API

Automation is sometimes pretty handy and even useful. GH offers a very comprehensive GraphQL Api, which can be used to handle issues.

Further down I describe two cases where the API is used to great satisfaction.

more reasons

The following reasons contribute also:

  • As a software developer I am already comfortable with GH and its UI / possibilities.
  • Githubs UI is in my opinion better for usage on the desktop. (Regarding smartphone useability I have no idea — I generally use my smartphone only for podcasts and chatting.)
  • Progress can be easily tracked with comments and appended files (like pictures).

Automation

There are some Saas platforms like zapier or IFTTT that have integrated GitHubs API. And there are tools you can use respectively self-host that have integrated or at least can be used with the API. Tools like huginn, n8n or Node-RED.

The following two tasks have been automated (for now with Zapier ¯\_(ツ)_/¯):

Book summary issue

After finishing a book, a reminder to summarize the book is created. Not all books need a summary, or have some lasting value, but some do. The reminder is an issue with the book title, read from a Goodreads RSS feed containing my read books.

Weekly check-in

One of the things that can’t be represented in issues are daily or otherwise very often repeated tasks. These I track offline. But a weekly check-in issue to track the overall accomplishment of dailies is a good compromise in my eyes. Just let the automation service create a checklist issue with the current week as title.

Open tasks / questions

Like already mentioned, there are things that cannot really be represented in the GH issue flow. For example things like dailies or otherwise often repeated tasks and deadlines / schedules.

For now I just use the weekly check-in as reminder respectively a calendar.

Thanks for reading!

How to start an Electron + Vue + Typescript project

Prelude

For a new, to be announced, project, I needed to combine some technologies I am not yet accustomed with.

GUI: I decided to write the GUI in Vue. Vue is a toolkit to write “modern” HTML/CSS/JS front-ends. Why not React you ask? Because be use Vue at work, and it cannot harm knowing it also a bit. Plus it is called beginnner-friendly and looks pretty similar to React.

Backend: Either a dedicated server, or something with integrated browser. I choose the latter, because I want to try Eclipse 🙂 Eclipse has an integrated Browser engine (Blink from the Chromium project), has APIs to interact with the desktop and can also run the “backend” part alongside the front-end.

Language: Typescript, because also want to try it 🙂

How to start an Electron + Vue + Typescript project

There were some problems in getting started, because the three projects evolved pretty rapidly in the last few months. Thus many posts or tutorials were already outdated, as well as popular templated like https://github.com/SimulatedGREG/electron-vue.

install Vue CLI

install Vue CLI with

$ npm install -g @vue/cli

create a new Project

create a Vue project with your project_name

$ vue create project_name

You can now choose between a default plugin preset, or choose manually the ones you need. You can always install missing plugins later, if you are unsure of your needs.

Vue CLI v3.5.5
? Please pick a preset: default (babel, eslint)

install plugin electron-builder

go to the project folder, and install electron-builder with

$ vue add electron-builder

add Typescript support

add typescript support

$ vue add @vue/typescript

That’s it!

you can now run the electron app via

$ npm run electron:serve

Have fun!