Overview
You Can’t Manage What You Don’t Measure
Peter Drucker
After three years of trying to fit my habit-tracking needs into the confines of Google Sheets, I’ve finally made the leap to rather develop my own product.
I wanted a tool that was both robust and flexible, allowing me to easily create and modify habits as well as log my daily performance, without needing to worry about breaking any excel formulas. I also wanted the ability to expand the tool by deriving insights into my performance via visualisations, instead of only looking at an HTML table containing performance data.
Im not totally sure about the future of this tool, but should I choose to enhance it further, some ideas I had were to:
- -Create a custom front end for each daily log that shows everything you did on a specific day. Perhaps even further integrate other pieces of information relevant to the day via API
- -Create a custom front end for each habit that shows performance data and your relationship relative to a specific habit.
- -Enable subscription so that other people can also use it
- -Go all out and build a web app using a WordPress + React combination.
For now, my use-case is solved. I use the tracker every day and it has successfully replaced all of my google sheets.
You can see a demo of the product by following the link below.
Feature Spotlight
Now that you know what the motivation was around the product, I wanted to highlight a couple of usability considerations I thought were pretty neat.
1) Ease of linking habits to a day
The entire product was conceived from a publishing perspective. I wanted daily logging to be incredibly easy and quick so that I didn’t end up dreading the act of doing so. The below gif shows how habits are dynamically linked when created, and automatically shows up in the list when logging a day’s performance. While the intention is not at this stage to be viewed on phones, this widget does allow for easy entry on mobile.

2) Hide the Title field, and use the contents of the Date Picker to populate the Title
By default, when creating posts in WordPress, a requirement is to add a title. In this situation I did not want to end up needing to write out manually, so a neat little trick I used here was to hide (not remove) the title field from the interface, and to hook into the save_post function in order to just duplicate the contents of the date field into it before saving. This is cool because it allows my post entries in the backend to be totally consistent 🙂

3) Adding a custom “View Performance” Button
One of the most annoying things I needed to rectify was adding a custom button to the Daily Log post type. I ended up clicking the “View Daily Log” button the whole time when I actually just wanted to view my performance. This resulted in me creating one of the most unmissable buttons possible.

4) Ease Navigation to individual Habits and Daily Log editing screens
There are few things more detrimental to the use of a product, than one that makes doing the core features cumbersome. To make sure I can quickly modify habits and daily logs, I ended up making all row and column headings in my data table point to each post backend.

