Проект: Клубный микроблог: Вастрик.Трибуна  Публичный пост
15 января 2024  1091
ОХУЕННО
Клубный микроблог: Вастрик.Трибуна
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 комментариев 👇

Женя, спасибо за проект и движуху! Дальше будет "но", не воспринимай плз как токсичность - будь я co-owner в стартапе, я бы тебя как продакта не нанял. Ты сформировал идею проекта на субъективных ощущениях, а не по запросу end user (потому, как ты пишешь "мне показалось...", "я подумал..." вместо "мы бухали с клубчанами / трындели в чатике и кто-то сказал, что давно хочет Вастрик.Твиттер"). То есть проект не решает какую-нибудь хотелку твоего пользователя, он решает твое субъективное представление о наличии такой хотелки. Окей, даже в этом случае проект все равно может выстрелить, но далее я не вижу ни инструмента обратной связи, ни явной воронки вовлечения. Твои гипотезы абсолютно не измеримы, как ты планируешь их оценивать? Где метрики? Получается такой пет-проект, который реализует твои амбиции и это в целом отлично, если бы оно тебя устраивало как "вещь в себе". Но если тебе нужны пользователи, как ты представляешь себе улучшения, если руководствуешься абстрактным "думаю, потому что им не нравится, что их посты увидит не так много людей"?

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

@helwig, а что ты подразумеваешь под инструментом обратной связи и воронкой привлечения?

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

@zubak, под воронкой обычную конверсию, т.е. как ты продаешь=завлекаешь себе пользователей.


Под инструментом обратной связи - как ты получаешь информацию от этих пользователей.
Грубо говоря, я твой потенциальный юзер, "продай мне эту ручку(с)". Где в твоей модели придумывание проблемы для меня, которую я захочу решить твоим продуктом? Почему мне не должно хватать Клуба + Справочной? Что я получу?

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

@helwig, это все описано в закрепе Трибуны и в этом посте.

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

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

@zubak, Жень, выйди плз из защитной стойки и давай поговорим как будто бы ты презентуешь свой стартап и у тебя elevator pitch. В посте ты описал все через "Мне показалось, что в Вастрик.Клубе есть места для высказываний в формате длинных текстов, коротких вопросов и прочих объявлений, но нет сервиса для более короткого текстового формата типа Twitter. Я подумал, что сообщество стало бы живее, если бы могло общаться более короткими социальными транзакциями.
И ещё, кажется, что членам Клуба всё сложнее писать посты из-за высоких требований и кол-ву символов, рано или поздно это может привести к «замиранию» Клуба, потому как он вертится частично вокруг контента." Я со стороны в этом описании не вижу ничего про себя, я вижу только какой ты молодец что увидел возможность. Мне как пользователю такое отношение не нравится, я хочу чтобы меня вовлекли в продукт и объяснили, почему моя жизнь поделится на до и после.

Давай попробуем развернуть это как типовой кейс выдвижения гипотез через конечного пользователя. Допустим, есть Боб. Боб - член Вастрик.Клуба, ему 35 лет и он типичный айтишник-интроверт-хиккан. Боб обладает экспертизой, но стесняется писать длинные посты. Зато Боб пишет хорошие емкие комментарии. Мы предполагаем, что Боб - наша целевая аудитория для проекта Вастрик.Трибуна. Что нужно иметь Вастрик.Трибуне, чтобы Боб не вылетел с воронки, а стал пользователем? Что мы можем предложить Бобу, чтобы не быть в его глазах yet another channel?

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

@helwig,

Что мы можем предложить Бобу, чтобы не быть в его глазах yet another channel?

Как Боб, я хочу топикстартить в Трибуне, потому что я выгорел и писать длиннопсто на платформе Клуба у меня лапки!

Жень, выйди плз из защитной стойки и давай поговорим как будто бы ты презентуешь свой стартап и у тебя elevator pitch.

Чето сегодня нет такого фрейма :(

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

@zubak, ну блин, вот опять Боб у тебя не портрет юзера, а ты. Можешь абстрагироваться от своих представлений и накидать несколько профилей ЦА и посмотреть на продукт их глазами, со стороны? Например, Бобу-нерду будет важно, чтобы была возможность самореализоваться (это у тебя реализовано через подпись с линком на профиль), но при этом чтобы площадка была закрыта (здесь возникает вопросик к использованию телеги как платформы, так как происходит деанонимизация пользователя. Хотя можно предположить, что у Боба есть фейковые телеграмм-акаунты). Или давай представим инфлюэнсершу Алису, для которой в приоритете будет доступ к новой аудитории чтобы рекламировать всякое. Для нее как раз будет актуальна проблема отсутствия контента и аудитории, которую ты уже описал в посте. Но если на Трибуну распространяются правила Клуба, то Алису вообще модерация не пропустит.

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

@helwig, Олег, мб ты попробуешь описать свои предположения? Выглядит так что у тебя есть чем поучаствовать

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

@iskameri, поучастсовать точно нет, спасибо. Но раз уж "критикуешь-предлагай", то идея не совсем мертворожденная, но в текущей реализации не взлетит. Что собственно и показывает малое количество плюсиков в посте и небольшое изменение юзеров в канале по сравнению с "в сервис налетело около 150 человек в первые дни". Женя признавал, что с трудом переносит критику, поэтому я хотел дать ему количественный инструмент оценки "когда можно признать, что лошадь все таки сдохла". Плюс напомнить о том, что создание продукта для портфолио и фана идет по одному треку, создание продукта для аудитории - по другому.

Поэтому предлагаю тут сделать водораздел - если Трибуна интересна как опыт пощупать технологии, сделать что-то и извлечь из этого опыт - well done, можно уже постмортем делать.

Если же цель сделать что-то для людей в Вастрике, то:

  • Если я хочу поделится опытом в формате Клуба, я пишу пост. Если я хочу узнать что-то по быстрому, я иду в клубный чат или Справочную. Если я хочу закинуть визуальный контент на поржать, я иду в Мемы. Получается, у нас остается только один юзер флоу для шеринга мыслей.
  • Развиваем эту тему - почему я должен шерить мысли не в существующем твиттере или threads в инсте? Наверное потому, что доверие к аудитории Клуба у меня выше. Почему выше? Потому что это закрытый Клуб с неким порогом входа. Значит инструмент должен обладать такой же закрытостью, например авторизация через клубных ботов.
  • Сделали мы закрытый Вастрик.Твиттер с сейфспейсом и куртизанками, каким его наполнить контентом? "Вот вам фоточка заката" - этим меня в инсте уже спамят, не нужно. "Смотрите какая статья" - любой профильный канал, ютуб с пересказами, бложики. Получится вторично и не интересно. Чем людей цепляет контент Вастрика и посты в Клубе? Личным авторским опытом, блин! Значит, нужно определить правила и на входе дать это понять. Что мы можем дать из авторского контента малого объема? Какие-нибудь инсайты / лайфхаки / предостережения о граблях.

Как-то так ¯_(ツ)_/¯

  Развернуть 1 комментарий
Daria Golubeva Системный аналитик/Дата аналитик 15 января в 07:23

Женя, привет!
Я сидела в трибуне первые 2 недели с запуска и даже писала пару вопросов, так как хотелось поддержать любую новую движуху, могу дать обратную связь.
На мой взгляд, изначально идея у проекта мертворожденная, так как она повторяет функционал справочной/"вопросов" в клубе/поисковой строки гугла. Просидев пару недель, я пришла к выводу, что ребята в клубе думают также, потому что это была не Вастрик Трибуна, а Трибуна Жени Зубака, в которой только ты писал вопросы.
Мне кажется, что лучше всего сделать выводы и закрыть неудачный проект, а ваши наработки добавить для бота Справочной.

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

@drdsh, спасибо за обратную связь. По задумке, Трибуна, она не для вопросов, а для высказываний и контента, которым ты хочешь поделиться не разрабатывая целый пост в Клубе.

Моя попытка поддерживать там активность и показать примером, что можно прикольные посты писать, немного странно выглядит, да.

Я считаю, что мы немного зафакапили с запуском и с концепцией, т.е. существует гипотеза, что для этого сервиса нужна аритическая масса людей и удачное время запуска. Мы запустились под конец года и не дожали с запуском, в том числе не выпустили пост, в котором я пишу сейчас этот комментарий.

У Трибуны со справочной, кстати, четкое разделение: Справочная — для вопросов, Трибуна для высказываний.

И это изначально просто эксперименты, как и всё, что я делаю в Клубе. Что-то взлетает, что-то — нет.

P.S. Подскажи, а как для тебя выглядело бы закрытие сервиса. Вот мы выпускаем пост сегодняшний, ты в него пишешь и мы тут же удаляем его и весь проект или как?

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

😱 Комментарий удален автором поста...

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

😱 Комментарий удален его автором...

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

😱 Комментарий удален автором поста...

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

😱 Комментарий удален его автором...

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

😱 Комментарий удален автором поста...

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

😱 Комментарий удален автором поста...

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

😱 Комментарий удален его автором...

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

😱 Комментарий удален его автором...

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

😱 Комментарий удален автором поста...

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

😱 Комментарий удален автором поста...

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

Это уже не трибуна, а трибунал

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

@Rdnask, мы с Мишей уладили вопрос. Дискуссия не касалась темы поста.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

@viktoriai,

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

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

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

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

@bykov_tech, В закрепе и профиле канала есть ссылка

Но про кнопку подумаем, спасибо

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

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

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

@momai, Так же как и в Твиттере

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

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

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

@Crypto_mate,

GitHub

Да, есть такая фича

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

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

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

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

😎

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

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


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