"Did you take out the trash?" "I thought it was your turn." "No, I did it last week." "That was two weeks ago."

Sound familiar? This conversation happens in our apartment roughly every garbage day. Not because either of us is lazy—we just genuinely can't remember whose turn it is.

So I built a Telegram bot to keep track.

The Problem with Household Tasks

Living with a partner means sharing responsibilities. In theory, this is simple: you do half, they do half. In practice, it's a minefield of forgotten tasks, different standards, and the eternal question of whose turn it is.

We tried shared to-do apps. Too much friction—nobody wants to open an app just to mark "vacuum living room" as done. We tried a whiteboard on the fridge. It lasted two weeks before becoming invisible.

What we actually do every day is check Telegram. So why not meet the workflow where it already exists?

Enter BoberHouse

The concept is simple: a Telegram bot that tracks recurring household tasks and fairly alternates them between household members.

Every morning, the bot sends a message: "Good morning! Today's tasks: 🧹 Julian: Vacuum living room, 🍽️ Melissa: Load dishwasher." Tap the button when you're done. If you skip, the bot notices. If someone consistently does more, the stats show it.

The key insight was alternation over assignment. Rather than assigning tasks based on preferences or fixed schedules, the bot simply alternates. You did the trash last time? Your partner does it this time. No debates, no memory required.

Features That Actually Matter

Flexible Cadence: Some tasks are daily (dishes), some weekly (vacuum), some monthly (clean oven), some every X days (water plants every 3 days). The bot handles all of these.

/newtask
📝 Task name: Water plants
🔄 Cadence: Every 3 days
⏰ Reminder: 9:00 AM

Task created! First assignment: Julian (starting tomorrow)

Reminders: Configurable notifications before a task is due. "Reminder: Trash goes out tomorrow morning" at 8 PM the night before saves many panicked 6 AM runs to the curb.

Completion Notifications: When your partner marks a task done, you get notified. This sounds small but it's actually huge. You know the dishwasher is running without having to check. You know the trash went out without having to ask.

Stats: A simple breakdown of who completed what over the past week/month. Not for point-scoring—but for catching imbalances before they become resentment. If the stats show 70/30, that's a conversation to have.

Skip and Reassign: Life happens. Can't do the vacuuming because you're sick? Skip it (task goes to next occurrence) or reassign it to your partner for this instance.

The Technical Bits

The bot is written in Go—my current language of choice for anything that needs to run reliably for months without attention. Telegram's bot API is well-documented, and there are decent Go libraries.

Stack:

  • Go with go-telegram-bot-api
  • SQLite for persistence (one file, easy backups)
  • Docker for deployment
  • Simple cron-like scheduler for reminders

The alternation algorithm is surprisingly tricky to get right. You need to handle edge cases like:

  • What if one person skips three times in a row?
  • What if a new member joins mid-cycle?
  • What if someone leaves the household?
  • What about tasks that aren't alternated (always the same person)?

The solution was tracking "balance" per task per person. Complete a task: +1. Skip: -1. Reassign to you: +1 for you. The person with the lowest balance gets the next occurrence. Simple, fair, explainable.

Why Telegram?

I get this question a lot. "Why not a native app? Why not a web app with notifications?"

The answer is friction. Or rather, the absence of it.

Opening a native app requires: finding the app, tapping it, waiting for it to load, navigating to the task, marking it done. That's 5-10 seconds and multiple taps.

Telegram is already open. The notification comes in, you tap the inline button, done. Two taps, under a second. The difference matters when you're asking people to do this multiple times a day.

Plus, Telegram is already our communication channel. Task discussions happen naturally. "Hey, I'll skip the vacuuming today, can you cover?" is a message that sits right next to the bot's task list.

The Social Dynamics

Building the bot taught me something unexpected about household task management: the hardest part isn't technology, it's psychology.

Early versions showed detailed stats: completion rates, average time to complete, who skipped most. Turns out, that level of transparency creates resentment rather than accountability. "The bot says you only did 43% of tasks this month" is not a fun conversation.

Now the stats are simpler and gentler. Weekly summary, task counts, nothing more. Enough to notice patterns, not enough to weaponize.

Similarly, the "skip" feature needed careful design. Too easy to skip, and people abuse it. Too hard, and legitimate needs get blocked. The current version requires confirming the skip and shows a running skip count in your profile. Social pressure, not enforcement.

Three Months In

We've been using BoberHouse daily since July. The impact surprised me.

First, we stopped arguing about whose turn it is. The bot is the arbiter. It's not Julian saying "it's your turn," it's the neutral system showing the rotation. Somehow that makes it easier to accept.

Second, tasks actually get done. The daily reminder at a consistent time creates a habit. 9 AM message, handle morning tasks. 8 PM message, check evening tasks. Routine beats willpower.

Third, we discovered hidden imbalances. Before the bot, we both felt like we were doing "most of" the work. The stats showed it was actually pretty even—but different. Melissa did more daily tasks, I did more weekly ones. Neither perspective was wrong, but both were incomplete.

What's Next

The bot currently runs on my server, used only by us. But a few friends have asked for access. I'm considering whether to make it available more broadly.

The challenge with a shared household bot is privacy and data handling. People's household routines are surprisingly intimate. Who takes out trash isn't sensitive, but patterns of presence and activity can be.

For now, the code is structured for multi-household support, and I might open it up to friends-of-friends. A full public launch would need more thought about moderation, support, and all the things that turn a side project into a product.

But even as a two-person tool built in a weekend, BoberHouse has been worth it. Sometimes the best software solves your own problems first.

Now if you'll excuse me, the bot just reminded me it's my turn to water the plants. 🌱