← Назад до блогу
·7 хв читання·

Приклад: Telegram Mini App, яка ділить витрати групи всередині чату

Конкретна Mini App для поїздки, квартири чи маленької команди: відкрити з групи, записати хто платив, спростити борги, закрити через Stars, інвойс або TON. Чому `chat_instance` - це робочий простір, і що я б зібрала першим.

Telegram Mini AppsПрикладГрупиОплатаПродукт

Цю Mini App я беру, коли група вже є, а біль - таблиця. Поїздка в гори. Четверо в орендованій квартирі. Маленька команда ділить клієнтську вечерю. Хтось завжди платить, хтось завжди «пізніше скину», і це пізніше живе в Google-таблиці, яку ніхто не відкриває.

Settler і Fracti вже довели форму: записати витрату в групі (текст, голос або панель), показати баланси в Mini App, закрити одним тапом. Я б не збирала їхній AI-парсер голосу в перший день. Я б збирала леджер і кнопку «закрити». Це і є продукт.

1. Шлях користувача в цьому прикладі

Робочий простір - це група. Ніхто не створює акаунт «Альпи 2026». Додають бота, відкривають Mini App з меню - і леджер уже цей чат.

  • Хтось додає бота в групу. Бот просить дозвіл бачити склад, щоб список поділу був людьми з чату - не формою з імейлами.
  • Олена заплатила 2400 грн за котедж. Відкриває Mini App, сума, назва, хто в поділі. MainButton = зберегти. Haptic при успіху. Бот кидає рядок-квитанцію в групу, щоб іншим ще не треба було відкривати ап.
  • Будь-хто пізніше відкриває Mini App і бачить «Андрій винен Олені 600». Не матриця. Один спрощений граф. Кнопка «закрити» на кожному ребрі.
  • Закрити: позначити оплаченим (довіра), надіслати інвойс Telegram / Stars, або TON, якщо група вже так ганяє гроші. Бот пише в групу «закрито». Ребро зникає.

2. Чому Mini App, а не лише бот

Текстовий бот може записати «/paid 2400 котедж». Він не покаже чесний поділ із винятками, не дасть поправити вчорашню вечерю і не дасть Андрію одним тапом заплатити Олені без нитки команд. Чат лишається інбоксом. Панель - UI.

  • Опційно: згадка в групі - «@splitbot я заплатив 50 за вечерю» - створює чернетку. Підтвердження в Mini App. Так Fracti здається магією. Так само з’являється сміття в таблиці, якщо підтвердження пропустити.
  • `chat_instance` - первинний ключ. Дві групи з тими самими людьми - два леджери. Не зливайте їх, бо збіглись user id.

3. Що я б збирала першим (і що ні)

Перша версія - калькулятор із чатом. Це не Splitwise з банками і податковими звітами.

  • У першу версію: додати витрату, рівний поділ, виключити одну людину, спростити борги, позначити закритим, квитанція бота в групі, HMAC на кожен запис.
  • Далі: одна рейка закриття, якою група вже користується. В Україні часто інвойс Mono або «скинув, тапни підтвердити». Stars - якщо суми малі й цифрові. TON - лише якщо гаманці в групі вже є.
  • Не збирати першим: OCR зім’ятих чеків, голосовий NLP, шаблони оренди, п’ять валют із живим курсом, публічний профіль. Це другий місяць, якщо перший леджер відкрили двічі.

4. Два баги, які вбивають ап поділу витрат

Неправильна математика і зниклі люди. Решта - полірування.

  • Спрощуйте борги проходом min-cash-flow, потім одне число на пару. Якщо показати сиру матрицю N×N, люди заскрінять її в іншу таблицю.
  • Хто вийшов із групи, лишається на старих витратах і зникає з нових. Знімок складу на кожному рядку. Не перераховуйте історію проти сьогоднішнього списку.

Mini App поділу - це леджер, а група - кімната

Я б зібрала це для клубу поїздок, колівінгу, маленької агенції чи будь-якої Telegram-групи в стилі WhatsApp, яка вже свариться через гроші. Панель на Next.js, леджер у Postgres з ключем `chat_instance`, бот, який лише постить квитанції і нагадування закрити, одна платіжна рейка. Якщо це ваша група - напишіть через форму. Візьмемо першу версію, яка цього місяця запише справжню вечерю, не AI, який вигадає, хто з’їв піцу.

Треба зібрати, а не лише прочитати?

Розробка Telegram Mini App: Next.js, платежі, боти. Прямий підряд.

Розробка Telegram Mini App

Готові обговорити проєкт?

Я senior веброзробниця, спеціалізуюсь на React і Next.js - відкрита до фриланс-проєктів по всьому світу.