Проект: Клубный микроблог: Вастрик.Трибуна  Публичный пост
15 января 2024  1156
ОХУЕННО
Клубный микроблог: Вастрик.Трибуна
https://t.me/+LHnmfbNIdM9kNmNi

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

Привет, я Женя Зубак, продакт с многолетним стажем, часто у меня чешутся руки что-то поделать в области айтишечки, но не хватает тех скиллов или сил. И вот однажды я решил, что Клубу не хватает нового сервиса и начал пробовать подходить к нему с разных сторон. Проект позволяет всем участникам Клуба писать короткие сообщения, которые другие могут комментировать.

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

Мне показалось, что в Вастрик.Клубе есть места для высказываний в формате длинных текстов, коротких вопросов и прочих объявлений, но нет сервиса для более короткого текстового формата типа Twitter. Я подумал, что сообщество стало бы живее, если бы могло общаться более короткими социальными транзакциями.

К сожалению в чатах очень сложно разделять заданные темы и комментарии к ним, поэтому конструктивным такое общение сложно назвать. В чатах активны единицы, а на платформе типа нашей удобно общаться в режиме on-demand.

И ещё, кажется, что членам Клуба всё сложнее писать посты из-за высоких требований и кол-ву символов, рано или поздно это может привести к «замиранию» Клуба, потому как он вертится частично вокруг контента.

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

Пару лет назад я запилил no-code решение на существующих ботах пересылки сообщений между группами Telegram и каналами. Т.е. юзерам приходилось писать в специальную группу сообщение, которым они хотели поделиться, и бот-админ этой группы пересылал это сообщение в канал, в котором люди уже могли комментировать «пост». Это было настолько же неудобно насколько это звучит сейчас. Люди путались куда надо писать сообщения и куда они потом отправляются. Поэтому первый прототип через пару недель тестирования пришлось закрыть, хотя у него было прикольное название, о чём мне неоднократно писали клубни. Назывался сервис тогда Вастрик.Пульс.

Следующий подход был весной прошлого года, когда я попробовал найти уже готов ботов, которые реализовывали функционал так называемой «предложки», однако я нашёл только ботов, которые позволяют публиковать предложенные посты только руками модератора, то есть по схеме премодерации. Мне не хотелось сидеть и согласовыывать посты так словно я играю в Papers, Please! целыми днями, поэтому я в очередной раз забил на проект и вернулся к нему лишь когда у меня появились силы на то, чтобы запилить кастомное решение, тогда я написал в несколько клубных чатов в поиске разработчика, который готов был запилить бота с таким функционалом, который нам нужен был, и Бахти откликнулся на мой клич в чатике Индихакеров.

Я написал требования для бота (заценить их можно по ссылке) и Бахти начал процес подготовки инфраструктуры и запиливания функционала (посмотреть репозиторий и законтрибьютить можно здесь)

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

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

Стек: python, django, pytelegrambotapi, sqlite, GitHub CI

Были сложности с реализацией приема и отправки стопок/альбомов фото/видео, потому что каждое медиа в стопке есть отдельный message. Гугл говорит, что кто-то смог через таймаут решить этот вопрос, а также по time stamp, так как все сообщения в стопке имеют одинаковое значение date в json виде message от API. В данном случае используется более простой вариант: если отправляется 1 фото/видео, то оно уходит сразу на превью, а если несколько и до 10 включительно, то я пока что не решил как реализовать одним из способов выше и сделал по нажатию на кнопку Запостить, которая дает подтверждение боту, чтобы пользователь завершил отправку сообщений и можно их отправлять на превью.

В данной реализации бэк хранит все file_id всех медиа из стопки в рамках одной записи в БД с указанием первого message_id для идентификации.
Также, читал/слышал/предлагали варианты с хранением каждого file_id в отдельной записи в БД, и создать общий ключ media_group, т.е. у всех message в одной стопке - единый media group.

Также были проблемы с получением Caption для фото/видео стопок/альбомов, читать текст/заголовок стопки. Как выяснилось, Caption прикрепляется к первому message из всей стопки, так получилось получать caption корректно.

Очень надеюсь, что найдутся python-разработчики, которых заинтересует участие в данном проекте, как минимум в рефакторинге кода, а в лучше написание нереализованного функционала. Для упрощения развертывания, тестирования в репозитории имеются dockerfile, docker-compose.yml файлы, а также, настроен GitHub CI (имеется файл пайплайна для развертывания на сервере с self-hosted раннером, переменные окружения передавать из Repository Secrets)

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

Мы разослали анонс о запуске сервиса в несколько клубных чатов, в основном нас с анонсом встретили хорошо, только в одном чате поворчали и попросили больше не спамить. В сервис налетело около 150 человек в первые дни. Если вы читаете этот пост, залетайте тоже, чем больше народу, тем прикольнее обмениваться мыслями, идеями и темами для обсуждения в коротком формате.

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

Основные трудности для меня (Жени), как для продакта проекта были найти в себе силы и догонять скорость Бахти, технические трудности мы описали выше. Наши ожидания были — несколько постов от участников в неделю и несколько комментариев в неделю. Пока что люди не постят особо, думаю, потому что им не нравится, что их посты увидит не так много людей. Однако писать пост на Трибуну гораздо проще, чем писать полноценный пост в Клуб, поэтому вливайтесь. Мы будем стараться продвигать проект более активно и надеемся на поддержку администрации Клуба в продвижении сервиса. Мы хотели бы получить статус официального сервиса Клуба и войти в страницу со всем чатами и сервисами Клуба.

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

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

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

Какие планы на будущее?

У нас есть следующие гипотезы и идеи фич:

Гипотезы

  1. Пользователи будут без проблем постить в канал
  2. Пользователи будут комментировать посты в канале
  3. Пользователям понравится UX
  4. Администрация Клуба поддержит нас, когда увидит вовлеченность
  5. Админы бота смогут без проблем модерировать сервис

Идеи фич

  • Ограничение кол-ва постов в день от одного пользователя
  • Сообщение отправлено в Вастрик.Трибуна — передавать ссылку на запощеное сообщение
  • Поддержка эмодзи телеграма
  • Поддержка всех видов форматирования текста, включая цитаты
  • Поддержка микс стопок (фото + видео в одной стопке)
  • Поддержка активного слушания при отправке медиа, чтобы не пришлось прожимать команду /publish
  • Уведомление от бота о комментариях к записи

Хотим и будем ненавязчиво продвигать бота в чатах Клуба, уж простите, это во благо Клуба!

Нужны ли какие-то советы или помощь Клуба?

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

Интересно было бы также узнать ваше мнение о формате описания функциональных требований, который я выбрал от лица разработчиков и других небезразличных. Возможно, Бахти было бы интересно узнать фидбек об архитектуре и решениях в коде.

Кстати проект опенсорсный, если хотите, можете переиспользовать его в своих целях.

Какой совет вы бы сами могли дать идущим по вашим стопам?

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

Всем спасибо, будем отвечать на ваши комментарии и ждём их!

Связанные посты
25 комментариев 👇
🕵️ Юзер скрыл свои комментарии от публичного просмотра...
🕵️ Юзер скрыл свои комментарии от публичного просмотра...

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

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

Женя и Бахти, привет.

Перед тем, как сесть писать коммент а-ля "спасибо за продукт" или "говно собачее этот ваш тивттор" потратил где-то минуту на то, чтобы зайти в канал и посмотреть на контент. И вот моё мнение:

выглядит, как если бы я подписался на @zubak в ex twitter, спасибо что @legeminus что-то пишет... я уже подумал что сам продукт для коллективного творчества – обман чтобы набрать классов, тк выглядит как авторский паблик.

второе, собсно почему этот комментарий оказался здесь – мне понравилась идея, сейчас сейчас, получать дозу контента от кого-то в интернете, кого я не знаю. Например, от кого-то из клубчан.

конечно, не на каждого я готов подписаться. но суть то в том, что это КОЛЛЕКТИВ и иногда хочется как в том стаде, идти за толпой. Главное что бы в толпе были знакомые лица. А иначе я могу и на 2ch зайти, там интересного контента поболее.

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

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

напр. я бы подписался на такой канал от комнаты по gamedev. ибо сил читать за сутки 4К сообщений в чате сил моих нет уже. ну а так всё как в twitter (только без права отписаться от особо токсичных).

  Развернуть 1 комментарий
🕵️ Юзер скрыл свои комментарии от публичного просмотра...

А где ссылка на трибуну? В посте не нашла

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

@viktoriai,

Название проекта кликабельно

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

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

  Развернуть 1 комментарий
🕵️ Юзер скрыл свои комментарии от публичного просмотра...

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

  Развернуть 1 комментарий
🕵️ Юзер скрыл свои комментарии от публичного просмотра...

А где можно код посмотреть? Премодерация предусмотренна?

  Развернуть 1 комментарий
🕵️ Юзер скрыл свои комментарии от публичного просмотра...

т.е. у всех message в одной стопке - единый media group.

так и есть. Уже реализовывал репост стопки. Пример можно посмотреть по ссылкам. Там на C#, но суть уловить не сложно:

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

😎

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

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


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