FateLogger.com is a CBT Thought Diary Android app, developed by a Java programmer with a serious mental illness and over 10 years experience as a Delphi programmer. It consists in large part of 6 screens: year, month, week, day, feed, and event. The bottom half of the first 5 screens consists of an event panel. When the user is entering text into an event, the year, month, week, and day panels are hidden and the keyboard takes up roughly half of the bottom part of the screen. The event panel consists of 3 columns of text: feelings, thoughts, and actions (behaviors). The feelings column is only 4 characters wide. At the top of the event panel are 2 single lines for the primary actor, usually a person's name (may be "self"), and the description. Tapping on the plus icons [+] next to the primary actor/description displays the secondary actor(s), if any, or the rest of the description. Actors may or may not be contacts of the current user. The FATE in FateLogger stands for Feelings, Actions, Thoughts, and Events.

Business Model

FateLogger is free for consumer/survivors (members), and costs $5 for friends, relatives, and health care providers of the members. All of the profits are donated to CAMH. Version 2.0 of FateLogger can be customized using a proprietary scripting language called Cooperscript. All users of Cooperscript, including members who download customized versions of the app, must pay the $5 one-time fee normally charged only to non-members. The names of all users who've paid the fee appear in purple, since they financially support CAMH which has a purple logo. Hosting FateLogger.com costs money, since contact/event data must be stored in a central database, so CAMH does not receive the full $5 every time a user pays that one-time fee. Cooperscript is a stepping stone to a general purpose app creation tool for Android (apps on the low end of complexity). The iOS version of FateLogger lacks Cooperscript support.

Navigation Commands

  • Left/right swipe on top grid: next/previous
  • Left/right swipe on event panel: next/previous event
  • Tap on day in top grid: display current event in day tapped on
  • Tap on month in top grid: display current event in month tapped on
  • Swipe up on event panel: scroll down
  • Swipe up on top grid: display higher level top grid
  • Drag down actor name in full event screen: display top grid (day)
  • Drag up actor name when top grid is displayed: hide top grid (full event screen)
  • Tap on event in top grid (day): display that event
    • Event consists of colored dot (RGBY) next to tag (short string of text)
  • Drag event in top grid (day): move it
  • Drag event in top grid (day) off screen: delete event

Event Attributes

  • Event dots are colored red, green, blue or yellow: negative, positive, neutral, both
  • Feeling score (4th letter in feelings column) is A thru E: most intense to least intense
  • Feeling score is red for negative feelings and green for positive feelings
  • Visibility scope: all contacts, one clan (see below), or private
  • Active/Passive switch: active events (and comments, if any) displayed in feeds of contacts


  • First Name
  • Last Name (abbreviated to an initial if desired)
  • Relationship: self, friend, mother, son, etc.
  • Gender (square, circle, triangle, blank): male, female, non-binary, unspecified
  • Actor (Y/N): current contact is just a primary or secondary actor, not a member of the contact list of current user


  • Subsets of contacts of current user


  • Display only events not filtered out by current filter(s)
  • Contacts:
    • All contacts
    • Single clan
    • Boolean expression of 2 or more clans: and, or, not
    • Single contact
    • Gender
  • Feelings:
    • Positive or Negative
    • Upper and Lower bound: A - E
    • Feeling code (3 uppercase letters)
  • Thoughts/Actions:
    • keywords (text-based indexed search)
    • phrases: delimited with double quotes (")
  • Random (Y/N)
  • Active: events are broadcast to feeds of all contacts or a single clan, similar to Facebook posts

Day Panel

  • 3 panels (top, middle, bottom): morning, afternoon, evening
  • Unlimited no. of events in each panel
  • Swipe left/right to horizontally scroll panels crowded with too many events

Week Panel

  • 6 weekday panels (3 rows and 2 columns)
  • Lower right-hand (weekend) panel divided into 2 sub-panels: Saturday, Sunday
  • More than 3 events allowed in each weekday panel

Month and Year Panels

  • Only 3 events allowed in each day/month panel: red, blue, and green
  • Month panel has 5 rows and 7 columns: calendar format
  • Year panel has 4 rows and 3 columns: 12 months

Event Editing

  • Continuation lines of multi-line thoughts/actions indented
  • Tapping in any of 3 columns of full event screen displays keyboard which takes up roughly half of the bottom part of the screen
  • Pressing Enter starts a new thought/action line (not indented)

Random Chime

  • When enabled, a chime is sounded at random intervals, with an equal probability in each second
  • User-selectable begin/end times of day
  • User-selectable frequency, M times per hour: M is floating point, may be less than one, not necessarily a whole number
  • User optionally enters an event, flagged as random, whenever the chime is heard

Why FateLogger is Cool

FateLogger is a highly ambitious Android app project, designed and implemented by a consumer/survivor with only a modest amount of design input from mental health care professionals. I will tell 2 CAMH employees about this website who are involved in the CBT group I am presently enrolled in, as well as my psychiatrist who works for CAMH. Other CBT apps are designed by mental health care professionals who often have to hire and pay implementers, so they skimp on hard-to-implement functionality in order to save on development costs. Even if FateLogger is unsuccessful, I will hopefully have succeeded in implementing Cooperscript, a scripting language and tool used for developing all sorts of Android apps on the low end of the app complexity scale.

About CBT

CBT stands for Cognitive Behavioral Therapy, a type of psychotherapy which links thoughts, feelings, and behaviors. At the time this project was first conceived, Mike the founder was in the middle of a 16-week group CBT program at CAMH, which meets every Friday from 2 to 4 p.m.

[ Back to Top ]