Korat
Модуль

Создайте группу, ведите участников и роли

Группа в Korat — прежде всего место, где публикуют: контент группы — тот же объект, что пост ленты, поэтому он наследует комментарии, упоминания и уведомления, а не реализует их заново и плохо. Рядом с этим у группы могут быть текстовые комнаты — намеренно тонкие, как и сказано во врезке ниже.

Разговор больше чем двух людей в Korat происходит в группах, потому что личная переписка — только между двумя. У него две формы. Основная — посты: пост в группе — обычная строка в таблице постов с идентификатором сообщества, поэтому комментарии, упоминания, уведомления и поиск работают на нём без изменений, а не строятся параллельно. Рядом с этим у группы могут быть комнаты: текстовые каналы в духе Discord, перечисленные внутри группы, со своими правами и своим статусом прочтения. Комнаты намеренно тонкие, и врезка ниже говорит, насколько именно.

Пост группы — это пост ленты с адресом

Это самое важное, что стоит понять про группы Korat. Публикуя в группу, вы создаёте ровно тот же объект, что и в своей ленте: те же реакции, те же ветки комментариев, те же упоминания, ведущие к настоящим людям, та же правка и удаление, та же машинерия уведомлений. Нет второсортной системы комментариев для групп, которой недостаёт чего-то из ленты.

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

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

Комнаты группы — не мессенджер. Личная переписка идёт между двумя людьми и не превращается в групповую. Комнаты группы несут чистый текст, который можно отправить и удалить: без редактирования, без ответа на конкретное сообщение, без реакций, без фотографий, файлов и голосовых сообщений и без звонков.

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

Открытая и закрытая — и что значит закрытая

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

Закрытая группа работает через заявки. Человек просится, владелец или администратор принимает либо отклоняет; заявку можно отозвать, а не застревать в ожидании решения, которого не будет. Уведомляются обе стороны: управляющие — о новой заявке, заявитель — об одобрении. Заявка, пропавшая в тишине, — самый частый сбой любой системы групп, и уведомление об одобрении лечит его дешевле всего.

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

Четыре списка вместо одного со значками

Экран групп разбит на озаглавленные разделы со счётчиками, а не сделан одним списком, где отношение передаёт мелкий значок: группы, которыми я управляю, группы, где я состою, отправленные заявки и найти новые, плюс поиск по всем сразу.

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

Роли и передача группы

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

Правило Korat: действие, в котором сервер откажет, не нужно предлагать вовсе. Владелец не видит пункта «покинуть группу», потому что уход осиротил бы её; путь для владельца, который хочет уйти, — сначала передать владение. Разрушительные действия — удаление группы, исключение участника — стоят за подтверждением, где написано и то, чего *не* произойдёт, ведь колеблются люди в основном потому, что предполагают худшее.

Уведомления, соответствующие решениям

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

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

Как поделиться группой наружу

Группой делятся через ту же систему непрозрачных ссылок, что и всем остальным в Korat: адрес koratland.com/s/<token> с 14-символьным случайным токеном, который раскрывается в приложении. Функция разрешения возвращает только тип объекта и сам объект и никогда не сообщает, кто создал ссылку и сколько раз её открывали. Так что публично выложенная ссылка-приглашение не несёт никакой информации о том, кто её выложил — это функция SECURITY DEFINER, описанная на странице безопасности.

Два полезных соседа. Тренировочная группа, привязанная к одному виду спорта, — отдельный модуль с рейтингом и лентой активности: спортивные клубы. А заведение, которое обращается к своим клиентам, публикует не в группе, а со своей страницы, которой управляет консоль заведения.

Частые вопросы

Как несколько человек общаются в группе Korat?

Двумя способами. Публикациями — пост в группе поддерживает комментарии, реакции, упоминания и уведомления — и в комнатах группы, текстовых каналах в духе Discord, перечисленных внутри неё. Сама личная переписка остаётся только между двумя людьми.

Комнаты намеренно тонкие: чистый текст, который отправляют и удаляют, без редактирования, без ответа на конкретное сообщение, без реакций, без фотографий, файлов и голосовых сообщений и без звонков.

Чем открытая группа отличается от закрытой?

В открытую вступают сразу. В закрытой действуют заявки, которые владелец или администратор принимает либо отклоняет, а заявитель может отозвать.

У закрытой группы на карточке замок, поэтому её тип виден до нажатия.

Появляются ли посты групп в основной ленте?

Нет. Они исключаются из основной ленты в одной точке конвейера ранжирования и видны только внутри своей группы.

При этом они остаются обычными постами, так что реакции, комментарии, упоминания, правка и удаление работают одинаково.

Можно ли передать группу другому человеку?

Да, передача владения встроена, и это правильный путь для владельца перед уходом. Пункта «покинуть группу» владельцу не предлагают, потому что уход осиротил бы группу.

Владелец и администраторы также могут сменить роль участника или исключить его.

Узнают ли участники о моём посте в группе?

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

Посты групп используют ту же систему уведомлений, что и обычные посты ленты.

Создайте группу

Название, правила, открытая или закрытая. Бесплатно, на Android и в браузере.