callyomomma

May 19, 2026

how callyomomma's accountability loop works

people ask how the loop actually works. here it is, in plain terms.

step one: you pick three things

cadence — every 3, 7, 14, or 30 days. most people land on 7. some land on 3. 30 usually means something else is going on.

voice — auntie, homie, conscience, sage, or a custom voice you write yourself. the same reminder reads differently from each.

tough-love level — how sharp the writing gets when you've ignored a few. low is gentle. high is direct without being mean.

that's the setup. it takes about a minute.

step two: nightly pre-generation

every night, a cron job pre-generates the next reminder text for every active user. the writing is produced ahead of time and stored on the reminder row in the database.

the reason is simple: the AI that writes the nudge is a separate system from the one that sends it. if the writer has a bad day, the sender doesn't care. the text is already on disk. delivery is bulletproof.

step three: the dispatcher sends

a separate cron runs every five minutes. it looks for reminders that are due and dispatches them — email today, push notification for installed PWAs, more channels later.

quiet hours are absolute. nothing sends between 9pm and 9am in your local time. if your nudge would land in that window, it shifts to 9am.

step four: two buttons

the nudge has two buttons. log call and snooze 7 days. it does not have a dismiss button. it does not have a "later." it does not let you swipe and forget.

this is the dismissal gate. the entire product is built around it.

if you call her, you tap log. if you can't this week, you tap snooze — once, max, before the cadence picks back up. honest snoozes are fine. infinite snoozes are not allowed.

step five: the log

tapping log opens a tiny form. who did you call. what did you talk about. that's it. one sentence, two sentences, whatever you have.

the form is short on purpose. a long form would be its own dismissal — people would close the tab instead of filling it out. a one-sentence form survives the moment.

step six: the journal

over time, the logs build a quiet record. you can scroll through and see the calls you've made — when, with whom, what you talked about. it isn't a feature most people sign up for. it's the feature most users find themselves valuing six months in.

your mom isn't a row in a database. but the things you talked about with her on a tuesday in march — those memories thin out without something holding them. the journal holds them.

the rest

ignoring us pauses the nudges. if you don't log or snooze for a week, we stop sending. we don't punish. we rest. when you come back, you can resume.

quiet hours are absolute. 9pm to 9am local. no exceptions. no marketing pings. no "are you still there" emails.

delete is hard delete. if you leave, your data is gone. not anonymized, not archived. gone.

there are no streaks. streak counters turn a relationship into a leaderboard. we don't want that.

no analytics on you. we count how often the dispatcher fires and how often nudges convert to logs, in aggregate. we don't track which articles you read, who you called, what you wrote in your journal. the journal is yours.

that's the loop. it's small on purpose. the work of the product is the friction of the dismissal gate plus the writing of the voice. everything else is plumbing.

more like this