New Flow

I’ve realized over the last couple of weeks that I have way more projects that I want to work on then time in the day. I just don’t have as much free time as I used to and can’t seem to burn the midnight oil anymore.

I’ve tried a few methods to try and keep my projects well defined and under a manageable scope. Each has had its drawbacks and never quite worked. My suspicion is that they have been too tailored too whoever thought of it.

A few days back @ben posted about limiting procrastination which brought me back to thinking about this.

My attention will always be focused on what I shouldn’t be doing at any time - it’s taken me at least 10 minutes to get back to this sentence. With some practice and a system that works for me maybe I can tackle that and squeeze in getting some more projects done.


Repo Madness

After some brainstorming, I decided I would try a different approach. I already keep most of my post ideas in a repo. Why can’t I keep all my todo’s in repo as well? This approach allows me to continue using tools I already use, no adding new services is a plus.

I’ve just started planning this out but here is what I’ve got so far. It’s a bit manual at this point while I figure it out but bits should be automated as it comes into focus.

Each repo has a project with an automated kanban board. Issues from each repo need to bubble up to the TODO repo which I’ll use as my master todo list. From there I can shuffle them around to any other columns I might need as needed. At the start I think we’ll stick to just “To Do”, “In Progress”, and “Done”.

Example repos:

  • TODO Repo

    • TODO Project (automated kanban board)
  • Posts Repo

    • Posts Project (automated kanban board)
  • Hugo Theme Repo

    • Theme Project (automated kanban board)
  • Reading Repo

    • Reading Project (automated kanban board)

OK, let’s say we want to write this post. We first make an issue in the Posts repo. For now, we’ll also need to manually make a post in the TODO repo. In that issue, we’ll refer back to the posts repo shindakun/posts#1. This will link back so we can open the TODO kanban board and quickly move around to the other repos.

We can then do the same in our Hugo repo. Or if I have a new book I want to read, Procedural Generation in Game Design. I can throw an issue into the reading repo.

I can create issues from my phone if I need to, or jot them down in a notebook to be entered later. I’d need to remember to sync any issues to the TODO repo at first. Which leads us to…


The Flaw

There is one major flaw - it’s too manual. But that shouldn’t stop us! It’s just another opportunity to write some code. This way we can enable webhooks on each of our repos, these will ping a small service which will, in turn, open a new issue in the TODO repo. This can be done with cloud functions or on a server. I’ll probably do a server version but, that can be easily converted to a cloud function I believe. This should be a nice refresher for some of the API stuff we worked on in the past.

Once this is setup I expect that the system could actually work - at least for me.

Example JSON Payload:

{
  "title":"read PCG in game design",
  "body":"it's on the kindle should probably read it\n\nshindakun/reading#1",
}

It will need to be added to the TODO kanban board as well. That should just be a matter of using details from the newly created issue. I’ll worry about that once we get the first part working.

I’ve been trying out the manual setup and it kind of works. For non-code tasks, I can close an issue then click through to the source repo and close that. That can probably be automated as well. For code related TODOs I can simply use the closes shindakun/todo#1 shorthand to close the TODO issue and closes #2 shorthand to close the “local” issue.


Next time

Just us next time as we embark on the most “over-engineered” TODO system I could come up with. We’ll be writing the first part of the code portion of this project - a service to accept webhooks from GitHub.


Enjoy this post?
How about buying me a coffee?