// 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

Все статьи

// Python Projects

Проекты Python Dev

Все проекты

// Contact

Нужна помощь?

Свяжись со мной и я помогу решить проблему

Написать в Telegram

Отвечаю в течение рабочего дня (03:00–13:00 GMT)

Или оставьте заявку здесь:

Отправить заявку
Написать и получить быстрый ответ