Build notes

I made quitting cost me something

I've stopped posting three separate times and never got past a month. So I built a bot that texts me. Here's the whole thing, in plain words.

What it actually is

It's a text message, and that's the honest answer.

When I post something, I text a bot one word. It texts back how many days in a row I've kept going. If I skip a day, the number goes back to zero and I have to watch that happen.

What it looks like on my phone

/posted
Streak 1. Personal best. This week: 2/5 · 0 freeze(s) left

There's no app to download and nothing to subscribe to. I'd tried the apps and every one of them was ten bucks a month and still not quite right, so this one is exactly mine.

Why a number on a screen changes anything

You don't keep a Duolingo streak for 400 days because you can speak Spanish. You keep it because losing it would cost you something.

That's the whole trick, and it's worth sitting with for a second.

The three times I quit before, quitting was free. Nothing happened, nobody noticed, including me. I just went quiet one week and that was that.

A streak turns quitting into something I have to do on purpose, in front of a message. Same effort, completely different feeling.

What you need

BFBotFatherbot
/newbot
Alright, a new bot. How are we going to call it? Please choose a name for your bot.
Streak
Good. Now let's choose a username for your bot. It must end in 'bot'.
louie_streak_bot
Done! Use this token to access the HTTP API: 7xxxxxxxxx:AAH…

Making the bot. This is the whole of it, and Telegram does it for free.

That token is the only thing you copy anywhere. Hand it to Claude Code and you're done with this part.

The three steps

You're not writing code here. You're describing what you want, in normal sentences, and letting it build.

  1. 1

    Say what you're tracking

    "Track the days I post. Count them up. Reset to zero if I miss one."

  2. 2

    Say you want it on your phone

    This one matters more than it sounds. The thing you're tracking happens on your phone, so the logging has to happen there too. If you need a laptop to log it, you'll stop within two weeks.

  3. 3

    Say where the number lives

    Put it somewhere you already look every day, somewhere you can't scroll past. Mine sits in the bar at the bottom of my screen while I work.

SStreakbot
/posted
Streak 1. Personal best. This week: 2/5 · 0 freeze(s) left
SStreakbot
/streak
Streak at 0 — one post starts it ▰▱▱▱▱ 1/5 this week · best 1 · 0 freeze(s) left

Two commands, and that's the entire thing you ever type. The screen on the right is my real one, from the day I wrote this.

The one rule that makes it work

Skips are earned, and there are never many

You get one skip for every week you hit your goal, three maximum, ever.

I got this wrong the first time and gave myself two skips a month automatically, which turned out to be an off switch. A pile of skips you can spend means two quiet weeks whenever you feel like it.

When there are almost none, spending one becomes a decision you actually make instead of a thing that quietly happens.

What it can't do

It can't make me post. I want to be straight about that, because most of these posts end with someone claiming they solved the thing.

All it does is make quitting something I have to do on purpose, in front of a text message, instead of something that just happens to a week.

Whether that's the thing that was missing the last three times, I'll know in about three weeks.

Build your own

Point it at the gym, at practice, at anything you've quit more than once. The build is the same.

See how I build the rest

Made by Louie at Lead Piranha. I build systems that delete the busywork, so I have to face the work that matters, and nothing automates that part.