// Python Dev
Зачем в свободное время я решил сделать миллиардное приложение ToDo
Опубликовано 01.06.2026
Todo-приложение — этакий Hello World в мире программирования. Каждый разработчик хоть раз его делал, обычно в самом начале, когда ещё не знаешь что писать, но уже хочется что-то создать работающее. Разница в том, что большинство такие проекты и не предполагает использовать их в реальной жизни. Я же сделал приложение, которым пользуюсь сам.
Всё началось с обычного вечера: я сидел за компьютером в том состоянии, когда работать лень, но руки чешутся. Вспомнил про свою давнюю идею — сделать этакую записную книжку с элементами ведения списка дел. Конечно цифровую, блокнот на столе удобно, но искать там что-то сложно. Я, как и многие, постоянно пытаюсь внести упорядочность в свою работу, но подобрать нужный инструмент сложно. В какой-то момент ловишь себя на мысли, что трачу больше времени на выбор инструмента, чем на сами задачи. Ладно, решил я, сделаю своё.
Почему готовые не работали
Дело не в функциональности. Функций там обычно хватает, часто даже с избытком. Проблема в другом.
Во-первых, удобство: чтобы записать задачу, нужно открыть приложение, найти нужный список, сформулировать задачу в том формате, который ожидает система. Это мелочь, но именно она убивает привычку. Мозг ленив — если добавить задачу чуть неудобно, проще “запомнить” и забыть.
Во-вторых, эмоциональная связь. Готовый инструмент — он не твой. Ты не вложил в него ничего, кроме нескольких минут на регистрацию. Бросить не жалко. Свой инструмент работает иначе: ты потратил время, ты знаешь как он устроен, ты хочешь им пользоваться уже хотя бы из принципа. Ну и как бонус — легко добавить новые фичи.
Что получилось
Бот живёт в Telegram — там, где я и так провожу большую часть рабочего времени. Никакого отдельного приложения, никакого переключения контекста.
Задачу можно добавить в свободной форме: просто написать что нужно сделать, с дедлайном или без. LLM разбирает текст, извлекает факты и даты, записывает в список. Можно написать “позвонить Ване в пятницу вечером, в шесть” — бот поймёт. Но самое главное — можно просто отправить голосовуху. Зажимаешь кнопку в ТГ, диктуешь что надо сделать и когда — и готово, запись создана.
Но самая интересная фича — другая.
Голосовуха как задача
Если вы работаете с людьми в мессенджерах, вы знаете этот сценарий: клиент или партнёр присылает двухминутное голосовое в 11 вечера. Там — задача, срок, детали. И всё это надо как-то не забыть.
Раньше: слушаешь, пересказываешь себе, записываешь вручную. Да, Telegram может распознать текст, но его надо читать, выделять факты. Теперь: пересылаешь голосовуху боту — и задача уже в списке. LLM разбирает аудио, извлекает суть, добавляет в список. Ничего не теряется. А если там были даты дедлайна — ещё и привязывается к ним.
Технически
Бот написан на Python с aiogram, задачи хранятся в PostgreSQL. Голос распознаётся локально через Vosk — небольшая модель, поднял у себя на сервере, платить за API не нужно. Классификация и извлечение данных идёт через OpenRouter, использую Gemini — при таких объёмах это буквально копейки в месяц. Мы же не грузим море контекста, а только классифицируем текст и ищем в нём факты — LLM делает это очень быстро и точно.
Деплой через Docker на собственном сервере. Cursor с подпиской Pro помог собрать первую рабочую версию — от идеи до работающего бота с голосовым вводом примерно два часа. Причём в код я не заходил вообще: формулировал архитектуру, план, итерировал через тесты и правки.
Честно говоря, значительная часть этих двух часов ушла даже не на разработку — а на придумывание названия, регистрацию бота, описание и картинку. Это тоже работа.
Групповые чаты
Бота можно добавить в групповой чат — тогда появляется возможность ставить задачи нескольким людям. Задания привязываются к конкретным пользователям.
Здесь есть нюанс: Telegram не отдаёт ботам user_id участников чата просто так. Пользователь должен сам взаимодействовать с ботом в групповом чате — выполнить любую команду. После этого бот получает событие с userId и chatId, и с этого момента может адресовать задания этому человеку.
В списке задачи группируются по статусу: просроченные, на сегодня, остальные. Каждую можно отметить выполненной.
Уведомления — надо ли?
Пока не добавил нотификации, и это осознанное решение. Назойливые напоминания раздражают — а зайти в бот и посмотреть список своих и общих задач несложно. Если появится нужда — добавлю. Бот полностью доступен для редактирования. Пока не вижу смысла.
Вывод
Todo — это действительно Hello World. Но именно в простых задачах хорошо видно, что делает инструмент рабочим не в теории, а на практике. Для меня сработала комбинация из трёх вещей: убрать неудобство при создании задачи, работать в той среде, где ты и так постоянно сидишь, и сделать так, чтобы инструмент был твоим — не чужим.
Главная мысль, которую я вынес из этого вечера: не нужно терпеть инструменты, которые не подходят. Сделать что-то под себя сегодня намного проще, чем кажется — особенно если у тебя есть чёткое понимание, что именно должно работать иначе. Иногда два часа и правильный промпт решают задачу, которую годами закрывали неудобным компромиссом.
Если хочешь попробовать бота — @eshche_tudushka_bot. Интерфейс на русском.
А если есть идея своего инструмента, но нет времени или желания разбираться самому — напиши, обсудим. Или пришли голосовуху.
// Python Dev
Другие статьи Python Dev
2026-05-30
Два дня на задачу, которая казалась тривиальной: асинхронность загрузки в Telegram-ботах
Есть класс задач, которые выглядят как пятнадцать минут работы. Потом садишься за них и обнаруживаешь, что дело не в коде — дело в том, как устроена система под …
2026-05-15
n8n: красивая обёртка, которая съела два дня
Клиент пришёл с идеей: у них есть доступ к API level.travel, сотни Telegram-каналов для турагентов и желание автоматически публиковать выгодные туры по …
2026-05-14
Как подружить LLM с памятью: храните факты сами
LLM отлично рассуждают. С памятью у них беда. Спросите AI-ассистента о чём-то, что вы упоминали раньше в длинном диалоге — и он может запутаться, перепутать …
// Python Projects
Проекты Python Dev
2026-05-28
Робот-коллектор: автоматический обзвон должников
Система автоматического голосового обзвона должников с интеграцией с Google Таблицами, синтезом речи, распознаванием ответов и повторными попытками дозвона.
2026-05-27
Автоматическое ведение сети Telegram-каналов для турагента
Система автоматического ведения 150 Telegram-каналов с подбором туров и авиабилетов, генерацией визуалов и публикацией по расписанию.
2026-04-29
Автоматический протокол звонка: от записи до структурированного документа
Автоматический протокол звонка: от записи до структурированного документа Распределённые команды проводят много времени в звонках. Обсуждают задачи, принимают …
// Contact
Нужна помощь?
Свяжись со мной и я помогу решить проблему
Написать в TelegramОтвечаю в течение рабочего дня (03:00–13:00 GMT)
Или оставьте заявку здесь: