Проект: Splitsheet — учёт групповых трат в Телеграме  Публичный пост
1 ноября 2024  624
Splitsheet - учёт групповых трат в Телеграме
https://t.me/splitsheetbot

Расскажите о сути проекта?

Совместный трип с друзьями. Кто-то снял жилье, другой съездил в магазин и закупился. Ленка вон вообще оплатила счёт в кафе за всех. Как будем считать финансы? Мы же не дикари, чтобы пользоваться калькулятором и бумагой. Да и отдельное приложение ставить неудобно. И тут - ОН. Бот для учёта трат в телеграме, который решит вашу проблему.

Идея в том, чтобы сделать добавление групповых расходов наиболее простым для всех участников.

Вводные:

  1. У вас уже есть чат в телеграме, где вы кидаете мемы и синхронизируетесь
  2. Все умеют печатать текст и отвечать на сообщения

Готово, этого достаточно, чтобы использовать Splitsheet. Splitsheet - это динамическое сообщение в телеграм чате. Такой финансовый отчёт в миниатюре, содержащий историю трат и информацию кто кому должен. Если запинить, то будет вообще удобно. Добавление трат - исключительно через реплай на Splitsheet. Не нужен строгий формат, предзаданные категории, ничего. Только суть, дальше LLM разберётся.

Я отвечаю на Splitsheet:

  • супермаркет 1340 - значит делим на всех поровну, я платил
  • купил Васе попить 230 - Вася задолжал мне 230
  • Вася купил мне и Роме билеты по 120 каждый - Тут уже я и Рома должны Васе по 120

Бот анализирует каждый ответ и искренне пытается понять, что имелось в виду. Если требуются изменения, можно отредактировать сообщение, либо же внести изменения ответом на сообщение с расходом.

  • пиво 450
    • ой, правильно будет 500
    • а вообще удали, это я себе покупал

В итоге все расходы будут сведены в одну табличку, подсчитано, кто кому сколько должен. Как бонус - расходы будут сохранены в виде реплаев на сообщение, и в случае если бот скончается - всё останется в чате.

Разберём на примере

Скрины делал максимально искусственные и безличностные, сорри. Но суть передают

  1. Вид на Splitsheet сообщение. Кто-то отвечает на него новым расходом, Spa Anna and me 75

  1. Хоп, Splitsheet обновился, отражая свежий расход

  1. Если нажать кнопку More, откроется Mini App с подробностями

  1. Тут есть полный лог изменений и детали по каждому расходу

Как появилась идея? Что вдохновило?

2023 год, рождество, 80 километров от Риги, дом посреди ничего. Внутри светло, 7 человек устраивают праздничную суету.

  • "Тэкс, как деньги считать-то будем?"
  • "Слышал есть приложение Splitwise, туда всё забъём"
  • "А ок, хорошо"

Следующий день:

  • "В смысле только 3 расхода в день, FUUUU"

Потный Валенсийский август 2024. Боль от несовершенства мира всплыла вновь. Я могу сделать как они, но лучше. Оо, мне пришла гениальная новаторская идея, это будет бот для учета трат, а не приложение. Быстрый тест аналогов, всё неудобно и не то.
/команды, Mini Apps не к месту, добавление расхода - это несколько действий. Надо делать своё.

И вообще:

Что вошло в прототип и сколько времени на него было потрачено?

Первый POC был написан буквально за 3 дня. Опробован в двухнедельной поездке. Вносить траты прям в чатике показалось суперудобно. Правда один человечек до сих пор не может дописать свои расходы, но не будем записывать это в минусы подхода.

Потом я захотел сделать ХОРОШО, ну вот прямо чтобы удовольствие сочилось. И потратил суммарно где-то часов 100 на разработку. Текущая версия - это ХОРОШО в моей системе координат.

Какой технологический стек вы использовали? Почему?

Хостим - Cloudflare (Workers, Pages, D1)
Serverless, просто берёт и всегда работает. Деплой за 15 сек не выходя из редактора (мерзко приятная штука).

Язык программирования - TypeScript
Классненькая система типов, нравятся подсказки в редакторе когда не надо думать а просто из списка выбираешь что дают. Можно использовать и на фронте, и на беке. По-настоящему hot reload даже бекенд части.

По фреймворкам и либам:

  • SvelteKit - фреймворк для UI. Приятный и предсказуемый, мне как бекендеру работать одно удовольствие. Быстрый без лишних заморочек, что важно для Mini App
  • Tailwind - CSS фреймворк. Вместе с плагином для VS Code и prettier выглядит как лучик надежды в царстве CSS. Искренне не понимаю, как можно его НЕ использовать
  • grammY - ТОП 1 библиотека для работы с Telegram Bot API из TypeScript. Минимально тоненький слой абстракции, но с превосходными TS типами и всеми нужными точками расширения
  • Hono - Web framework. Легкий во всех смыслах

В качестве LLM использую OpenAI API. Да да, АЛЕРТ, все ваши сообщения отправляю прямиком туда. В целом работать с LLM в таком ключе показалось очень любопытным и вознаграждающим процессом:

Пара примеров:

  1. Так, я знаю что LLM слабы в математике но чтобы ВОТ НА СТОЛЬКО. Ага, создаю инструмент calculator, говорю LLM, используй вот его для рассчетов когда надо. И она ИСПОЛЬЗУЕТ
  2. Вижу, что иногда происходит путаница во всяких не примитивных случаях. То неправильно поймёт кто платил, то выдумает что-нибудь. Решение - отдельным действием просим подробно расписать, как было понято сообщение. Затем отдаём этот разбор вместе с калькулятором дальше на обработку. Сразу напомнило меня. Тоже без плана могу понести околёсицу

Как вы запускались и искали первых пользователей?

Затестил adsgram.ai, реклама в Mini App. Потратил на показы 5 USDT, получил в районе 250 пользователей, которые нажали start. У большинства дальше чтения приветствия дело не пошло.

Рассказал о своём проекте на https://productradar.ru/. Респект авторам площадки, за саму идею и постройку сообщества вокруг. Учитывая, что я просто разместил объяву и отошёл, размещение дало 26 переходов.

Загуглил пару каталогов с TG ботами, тоже туда запостил описание и ссылки. Это дало ещё 3 перехода (подозреваю, что от авторов каталогов).

Официальный Telegram Apps Center принял мою заявку на добавление, но скромно предупредил, что время рассмотрения - 2 месяца.

С какими самыми неожиданными трудностями пришлось столкнуться?

Основная - что этот проект нужен только мне. Оказывается, не так просто рассказать о себе людям, и убедить их начать пользоваться

Сколько потратили и заработали? Есть идеи как это можно монетизировать?

Потратил:

  • $10 на recraft.ai, чтобы сгенерировать аватарку и другие изображения
  • $10 на домен в зоне .com. Думал сделать лендинг но забил, лежит без дела
  • $5 на рекламу в adsgram.ai
  • $10 на баланс OpenAI. Должно хватить надолго

Заработал:

  • Прекрасный опыт

Монетизацию добавил сразу, в виде ограничения на 10 записей в одном Splitsheet, и возможности за звёзды снять ограничение на определенный срок.

Заключение

Я спрашивал совета в чате индихакеры, и запомнил один ответ (суть примерно):

Со старта помимо самой идеи надо иметь представление о местах обитания потенциальной аудитории твоего продукта и о действенных способах рассказать аудитории про продукт

Согласен на 100%. Каким бы приятно техническим не было приложение, оно не представляет ценности, когда им никто не пользуется.

Дочитавшему - ссылка.
https://t.me/splitsheetbot?start=vas3k
Переходи по ней, и если твой TG аккаунт привязан к активной учётке в клубе, все твои Splitsheet будут месяц работать без ограничений по кол-ву расходов. Да, речь идёт про месяц на каждый Splitsheet, так что потом можно просто создать ещё один, а потом ещё, и ещё

Связанные посты
20 комментариев 👇
Вастрик Блогер, питонист, мизантроп 1 ноября 2024

Все, я переименовываю раздел "Проекты" в Клубе в "Аппы для трекинга трат"!

P.S.: Хотя с миниаппом это даже наконец-то выглядит весьма привлекательной заменой splitwise, пойду попробую

  Развернуть 1 комментарий

@vas3k, отлично. Дополнительный стимул для меня наконец-то написать про своё поделие :)

  Развернуть 1 комментарий
Миша Безверхий управляющий изделием 1 ноября 2024

Монетизацию добавил сразу, в виде ограничения на 10 записей в одном Splitsheet, и возможности за звёзды снять ограничение на определенный срок.

С учётом того, что в сплитвайзе я никогда не сталкивался с ограничениями (и только из твоего поста узнал про три в день), могу сказать, что меня бы твоя модель точно оттолкнула в объятия сплитвайза) с другой стороны, десять — прикольно, люди начали вносить расходы, инвестировали время. Не думал использовать другие пороги? 5/20 записей, 2 недели после первых пяти записей, что-то ещё?

По идее, твоя задача, раз уж ты хочешь монетизировать любого вовлечённого пользователя, а не только тех, кто вовлечён сильно (как это делает сплитвайз), найти этот баланс между бесплатным использованием и хорошим вовлечением.

А ещё ты монетизируешь per user или per channel?

  Развернуть 1 комментарий

@mixbez, о спасибо за обратную связь. Искренне считаю, что моя модель несовершенна и требует улучшения

Мой план был - монетизировать всех, для кого Splitsheet представляет максимальную ценность. Это люди, у которых:
a. Много расходов, что вручную считать неудобно. Например, совместная поездка
b. Расходы время от времени на длинном промежутке. Например, соседи по квартире, частично ведущие общий бюджет

Сделал акцент на первых. Дополнительно, хотелось сделать максимально прямолинейную логику, чтобы сразу было понятно, что и когда доступно. Так и пришёл к ограничению на кол-во расходов. Число 10 - это кинул 4d6.

А ещё ты монетизируешь per user или per channel?

нет и нет. Монетизирую per Splitsheet. Кто-то один "проплатил" Splitsheet, все остальные в чате могут добавлять в него расходы сверх лимита. Оплата "улучшает" Splitsheet на ограниченный срок: неделя, 2 недели, месяц. Срок прошёл и надо добавлять расходы - плати ещё

  Развернуть 1 комментарий

@zzodoo,

Монетизирую per Splitsheet

Я думал, что это per chat. Но если один Splitsheet — это одно закрепленное сообщение, то, выходит, в рамках одного чата я могу запинить, например, два разных сообщения, и у каждого будет лимит в 10 расходов?

  Развернуть 1 комментарий

@mixbez, да, число Splitsheet на чат неограниченно. Можно два, можно больше. У каждого будет по 10 расходов

  Развернуть 1 комментарий

@zzodoo, Понял
Вижу потенциал для арбузинга (переносить прошлый сплитшит в новый как первый расход)

  Развернуть 1 комментарий

Spa Anna and me 75

Вот это прикольно, что из пяти человек он на двоих это считает. Мой так не умеет (разумеется у меня тоже есть бот, чтобы считать в нем деньги), надо может своровать. Вижу тут расходы, имена и сумму. Ладно сумма, а как отделяешь имена от категории?

А если имя ебанутое типа vas3k Nagibator7777, его надо каждый раз писать? А если два Олега в одном чате?

  Развернуть 1 комментарий

как отделяешь имена от категории?

с использованием structured output в LLM. Например: https://platform.openai.com/docs/guides/structured-outputs

А если имя ебанутое типа vas3k Nagibator7777, его надо каждый раз писать?

если написать просто нагибатор то нейронка догадается, о ком идёт речь.

А если два Олега в одном чате?

Undefined behavior. Одному из тёзок придётся сменить имя, это можно сделать через Mini App. Ну или просто добавить фамилии, чтоб было понятно

  Развернуть 1 комментарий

Тоже считаю клевой заменой для SplitWise.
Теперь осталось поехать куда нибудь, чтобы затестить)

  Развернуть 1 комментарий
Oleg Nevedomsky Девелопер \ инвестор 4 ноября 2024

Юзаю splitwise уже очень долго, далее не критика, а скорее пожелания

  1. Очевидно: не все в тележке, люди за границей часть используют вацап, миниэпп жестко привязывает именно к тележке, а то что надо еще и какие-то звездочки ...

  2. контакты участвуют в разных поездках, а в данном случае это значит разные чаты и тп

  3. в сплитвайзе у меня есть записи которым уже годы, например я попросил человека оплатить мелочь в РФ (у меня нет карты РФ), когда-то я ему оплачу что-то и мы зачтемся

  4. финансовый апп который ошибается в подсчетах - это совсем никак совершенно точно нельзя

Я б перешел на аналог сплитвайз, одной из фишек которого было бы подхватывать расходы из чатиков

PS 3 расхода в день - не сталкивался, показывает рекламу платной версии но потом все равно можнро добавить ..

  Развернуть 1 комментарий

@Myst, спасибо за отзыв

1, 2, 3 - всё так, всё by design. Ad hoc сервис для уверенных телеграм пользователей.

  1. LLM используется только на этапе извлечения структурированной информации из сообщения. Далее считается по старинке, ошибок быть не должно

Я б перешел на аналог сплитвайз, одной из фишек которого было бы подхватывать расходы из чатиков

ну кстати идея для чьего-нибудь pet project. У Splitwise есть API, можно написать бота для внесения расходов прямиком из TG

  Развернуть 1 комментарий

бета-тестеров нанимаете? оплата небольшой поездки небольшой группе.
с нас отчет по ux и освещение с социалках =)

  Развернуть 1 комментарий

@denisx, могу предложить оплату промокодами для splitsheetbot. Как крипта, будут становится ценнее с каждым годом (или нет)

  Развернуть 1 комментарий

Огонь, мне кажется оч удобно! Буду тестить)

Пока нашел маленький баг, бот триггерится на все реплаи в чате, не только на реплаи в его сторону

  Развернуть 1 комментарий

@ekarp, по идее, бот не должен видеть чужих сообщений, только все реплаи на свои, включая транзитивные. Мб ему отсыпали админских прав? В любом случае проверю как он себя ведёт с админскими правами и пофикшку, спасибо

  Развернуть 1 комментарий
Vladislav Onishchenko Пишу под мобилки 1 ноября 2024

AAAAAAWWWWW
уже три года плачу за домен для своего подобного приложения
но разработка чот не ушла дальше кривой мвпшки, все равно компаниями продолжили юзать сплитвайз, а сейчас перекатились на сеттлап

  Развернуть 1 комментарий
Gleb Krapivin Senior Software Engineer 4 ноября 2024

Прикольная идея, тоже думал, зачем лишнее приложение, если все друзья и так в телеграме

Но в splitwise, кстати, ограничение на 3 транзакции только на фронте. В результате для меня оказалось, что написать в 50 строчном сli sp add sasha 50 beer намного проще. Теперь только так и пользуюсь :)

  Развернуть 1 комментарий

@glebkrapivin, А с телефончика как CLI запускать?
Я себе тоже для одной цели CLI написал и заэкспозил через бота в телеграм.

  Развернуть 1 комментарий

@omrigan, обычно до компа терпит,а если что-то срочное, то можно и через прогу добавить

  Развернуть 1 комментарий

😎

Автор поста открыл его для большого интернета, но комментирование и движухи доступны только участникам Клуба

Что вообще здесь происходит?


Войти  или  Вступить в Клуб