Checkbot

Post at — Jan 01, 0001

Checkbot is a mobile app for monitoring behaviors by checking on me at different times during the day. The goals are 1) collecting long term behavior data; and 2) build better habits where possible. The challenge: how can I check the right behaviors at the right times?

Background

I’ve always been envious of people that can collect good lifestyle data. Every so often, I see a Hacker News post from some engineer who has kept a meticulous activity spreadsheet for years - and I really want those data for myself.

Alas, I could never do that. I’ve tried various forms of tracking beavhiors - spreadsheets, apps, journals, etc. - they never last more than a few weeks.

Checkbot is an attempt at collecting behavior data, via the only mechanism that I might be able to maintain for years.

Specs

  • Within Checkbot, I define a set of desired behaviors, e.g.:

    • Meditate daily
    • Lift weights at least 2x/week
    • Stay hydrated all day every day
  • Checkbot sends me a push notification a few times a day to check on those behaviors.

  • The timing of the checks, the frequency of the checks, and which behaviors are checked are all adaptive.

  • A check collects the behavior status (👍/👎) with some basic metadata (currently, root causes and corrective actions, if applicable).

  • Checks are nonintrusive and not urgent. But, if I miss checks for 36 hours, Checkbot takes over my lock screen and pesters me incessantly via Live Activities.

Why I built this

I originally started building Checkbot in Feb ‘23 because:

  • I wanted to refresh on native app development.

  • I wanted to test bulding a greenfield project with ChatGPT (spoiler: it was awesome, but not in the way that you’ll see in the sensationalist YouTubes).

Current Status

As of May 23rd 2023:

  • I’ve been using Checkbot for 2 months (on my phone via TestFlight).
  • Compliance is good. Using the app (i.e. completing checks) is satisfying and still not annoying.
  • The hardcoded check score algorithm is okay, but room to improve.