0dev.team
← All work

Voice diary in Telegram

An app in Telegram that sorts voice notes into expenses, tasks, notes and meals

Task

A multi-user app inside Telegram. Dictate “coffee two hundred, call the bank tomorrow” — the expense lands in money, the task in the list. A photo of a plate becomes a meal entry with calories. Data belongs to a space, not to a person: isolation is enforced at the database level.

How it works

  1. Voice → recognition (Whisper)
  2. A model parses the phrase into a structure
  3. Sorting into sections
  4. Postgres with space isolation (RLS)
  5. MCP connector over OAuth: consent with a button in the bot, no key in a person’s hands
  6. Owner alerts: an outage calls, minor issues accumulate

What had to be solved

One button could shut down the whole product

Under every notification to the owner hung a button “ban the invite branch”. The owner’s branch is 57 accounts out of 58 — that is, the whole product in two taps. The button was not fixed but removed, together with the whole class of such functions: the admin panel only watches, it holds no power.

Commits

  1. b626fbf14.09.2026one button in the chat could shut down 57 accounts out of 58
  2. 8d6dbea14.09.2026the recogniser invents text on silence, and it was ending up in people’s notes
  3. b83569a14.09.2026half of the newcomers never pressed a single button
  4. 080383f11.09.2026calories can be trusted only if they are not a guess passed off as fact
  5. a3d4cfc04.09.2026meals are logged from a photo, and parsing survives provider overload
  6. 246e09b04.09.2026one’s own chat reads the diary — a connector with no key in a person’s hands