πŸŽ‰ Launch Special 90% off: Get lifetime access to my latest Mandarin-Chinese tool!Learn more β†’

Gabriel Uribe

The methodology around my accountability trackers πŸ‘¨β€πŸ”¬

NOTE: This page has been deprecated, go here


Link to this headingBackground

The initial idea for this feature just included tracking my commits to personal projects each week as a way to increase accountability, but since then, this feature has evolved into much more.

After launching, I quickly added more goals and increased the intensity. Read my first impressions post for more details.

I now use noticeably more tech for this feature, and expect that to increase as I track more metrics and leverage additional data to make the trackers more useful. Which is why I decided to start this living page.

Read on to find out how each tracker works, what I'm planning on trying out, and things I've already tried out or built.

Link to this headingCurrent Methodologies

Link to this headingGitHub commits

This tracker is fully automated with real-time data. It currently fetches all of my git commits using the official GitHub API, filters out the commits to repos I don't directly own, and then counts the number of commits I've made in the last 7 days.

I've also added a simple trend indicator next to the progress percentage that indicates whether progress is up or down week-over-week.

Link to this headingMovement

The movement tracker is fully automated with daily data. It uses the Apple HealthKit API via an iOS app on my phone. I used Apple's Mobility Health App sample project as a starting point before integrating the database and accessing the specific data points I wanted.

With this, the app is now able to read my walk/run distance daily and push that to my site's Firebase Firestore Database. For more information, see this post that I wrote on accessing iOS health data.

I've also added a simple trend indicator next to the progress percentage that indicates whether progress is up or down week-over-week.

Link to this headingMandarin Chinese

This tracker is fully automated with daily data. Because I use hackchinese.com to drill vocabulary, I have that data relatively accessible.

I wrote a script that runs via GitHub Actions once a day, collects the vocabulary count from my account, and pushes that as an entry to the relevant collection in my project's Firestore Database.

As with movement, I've added a simple trend indicator next to the progress percentage that indicates whether progress is up or down week-over-week.

Link to this headingSinging practice

This tracker is not currently automated. I directly enter an entry to the relevant Firestore Database collection that contains entries mapping to dates of when I recorded a practice session. The last 30 days of entries are pulled from Firebase when displaying the tracker.

While there is a path forward for full automation (via accessing the files generated from the Voice Memos app on macOS), I do want to always keep at least one tracker manually updated to ensure that I'm still looking at my site each day.

As with movement, I've added a simple trend indicator next to the progress percentage that indicates whether progress is up or down month-over-month.

Link to this headingFuture plans and experiments

These are simply ideas that I may or may not try out in the future. I'll update this page as I try them out and move them to Previous plans with comments on whether they were implemented or scrapped.

The list of ideas in no particular order:

  • Streak tracker per goal
  • Access my Workout data to track some variation of:
    • the number of workouts I do a week
    • the number of minutes I spend working out a week
    • the number of strength training workouts I do
    • the number of walks/runs I went on
  • Historical charts view
    • Now that I've integrated a database and am accumulating historical data, I could present that data in a more meaningful way.
  • Store github commits in Firebase so that I could do historical and trend analysis for that tracker as well

Previous plans

Plans that I've either implemented or scrapped, preserved for posterity in chronological order (most recent first):

  • βœ… Trend analysis
    • Now that I've integrated a database and am accumulating historical data, I can compare month-over-month or week-over-week trends to provide high-level insights.
  • 🟑 Automation
    • βœ… Fully automated the Movement and Mandarin Chinese vocabulary trackers
  • βœ… Database
    • Integrated Firebase's Firestore Database to store data instead of the static constants file that I was overriding each day.
    • Initially entered all data into the database manually before automating most of that.
  • βœ… Migrated from text-heavy UI/UX to simpler, graphical trackers
    • Purpose was to provide a better at-a-glance view
    • Included switch from binary success/fail indication next to each goal to displaying percentages and circular progress trackers of each goal along with simple color gradings (see this image for reference of how the tracker looked before)
  • βœ… Added additional trackers
    • Movement
    • Mandarin Chinese vocabulary
    • Singing practice session trackers

Last Updated: Thu Dec 29 2022

Link to this headingRelated

Link to this headingLooking for more posts?

Looking for a full-stack Next.js/iOS/visionOS developer for your project? Email us at hello@skyporch.co.