Обновить
256K+

Мессенджеры *

Системы обмена сообщениями

163,9
Рейтинг
Сначала показывать
Порог рейтинга

В Telegram появился WEB‑прокси: как мессенджер учится притворяться обычным сайтом и чем это отличается от SOCKS5 и MTProto

В конце августа пользователи обратили внимание, что в Telegram появился новый тип подключения — Web-прокси. Одновременно разработчики выложили открытый репозиторий telegramdesktop/tproxy-server.

Что это за зверь и почему классические прокси проигрывают цензуре?

Любой прокси-сервер — это посредник между вашим устройством и конечным сервисом. Разница в том, как именно этот посредник передает ваши данные и насколько он заметен для систем DPI (глубокого анализа пакетов):

  • Прямое подключение (без посредников): Пакеты летят напрямую в подсети Telegram. Провайдер сразу видит целевые IP-адреса мессенджера или характерные сигнатуры и обрубает соединение.

  • Обычный прокси (SOCKS5): Протокол передает данные и рукопожатие открытым текстом. DPI давно умеет распознавать сигнатуры протокола, в текущих реалиях прокси работают плохо.

  • MTProto с Fake-TLS: Притворяется HTTPS-сессией к чужому, как правило популярному ресурсу (google.com). Но у прокси нет настоящего SSL-сертификата и ключей от чужого домена. Цензоры научились слать на подозрительный сервер проверочные запросы, в случае получения нехарактерного для указанного домена ответа, соединение банится.

  • WEB-прокси: Telegram заворачивает трафик в стандартные веб-протоколы (HTTPS / WebSocket) через встроенный движок браузера. Запрос идет на обычный домен с настоящим SSL-сертификатом от Let's Encrypt. Снаружи на этом адресе висит реальный сайт (даже обычный одностраничник), поэтому любая автоматическая проверка видит обычный веб-серфинг.

В чем главная техническая хитрость?

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

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

Как устроен tproxy-server

Что мы видим в репозитории telegramdesktop/tproxy-server:

  1. Сервер слушает только веб-порты (80 и 443). Все служебные порты остаются внутри локального сетевого интерфейса.

  2. Обязательный сайт-прикрытие. Разработчики специально не добавили в репозиторий готовый шаблон сайта, чтобы исключить слепое копирование (защита от дурака). В документации так и сказано — если тысячи операторов поставят один и тот же дефолтный лендинг, по нему создадут сигнатуру. Сервер требует настроить проксирование на любой реальный сайт (блог на WordPress, документацию, портфолио или страницу на React/Node.js).

  3. Разделение потоков. Когда на порт 443 приходит проверяющий, робот или случайный посетитель — сервер возвращает обычные HTML/CSS-страницы. Но если по специальному пути приходит клиент Telegram с валидным секретным ключом, соединение проксируется на внутренний демон mtproto-proxy.

Что нужно, чтобы поднять свой WEB-прокси?

Для самостоятельного развертывания понадобится собственный VPS за пределами зон фильтрации (подойдет любой недорогой виртуальный сервер, главное, чтобы он не был заблокирован), доменное имя (любой недорогой домен в свободной зоне (.xyz, .site, .top или .com/.net), SSL-сертификат (выпускается автоматически через Let's Encrypt или ZeroSSL).

Также нужно будет оформить сайт-фасад (сделать на домене статичную веб-страницу, чтобы сайт выглядел как сайт и не вызывал подозрений) и понадобится также секретный ключ, который Генерируется стандартной утилитой openssl rand -hex 16.

Главный плюс такого подхода заключается в том, что если домен попадет под блокировку, ничего не придется перенастраивать с нуля. Достаточно будет зарегистрировать новый домен за, направить DNS-запись на тот же IP-адрес и перевыпустить сертификат. И WEB-прокси снова работают.

Теги:
+8
Комментарии4

Наконец мой мессенджер прошёл тест в Google Play . За время тестирования он научился совершать звонки по udp. Это позволило по udp получать не только голос, но и пинок от сервера на проверку сообщений в реальном времени. Осталось придумать как без внешних сервисов, вроде FCM, не засыпать вместе с системой и не давать андроиду прибить процесс приложения, чтоб принять udp пендаль в любое время. Так как мессенджер ориентирован на пользователей роутеров Mikrotik, на роутер и была возложена такая задача. Не давать телефону спать :). В качестве энергетика будет выступать DHCP Lease. В приложении я подписываюсь на изменения параметров сети, и выполняю задачу в обычном executor.

private void registerNetworkCallback() {
        ConnectivityManager connectivityManager = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
        if (connectivityManager != null) {
            connectivityManager.registerDefaultNetworkCallback(new ConnectivityManager.NetworkCallback() {
                @Override
                public void onAvailable(@NonNull Network network) {
                    isNetworkActive.set(true);
                    if (userId > 0) {
                        tickUdp();
                        startDownloadNewMsg(true);
                    }
                    offlineHandler.removeCallbacks(resetStatusesRunnable);
                    Log.d(LOG_TAG, "Network: WiFi Connected. " + network);
                }

                @Override
                public void onLinkPropertiesChanged(@NonNull Network network, @NonNull LinkProperties linkProperties) {
                    Log.d(LOG_TAG, "LINK CHANGED DNS=" + linkProperties.getDnsServers());
                    if (userId > 0 && isNetworkActive.get()) {
                        tickUdp();
                        startDownloadNewMsg(true);
                    }
                }

                @Override
                public void onLost(@NonNull Network network) {
                    isNetworkActive.set(false);
                    offlineHandler.postDelayed(resetStatusesRunnable, 15000);
                    Log.d(LOG_TAG, "Network lost. Scheduled offline reset in 15s...");
                }
            });
        }
    }

который тригерится в том числе и на изменение списка DNS серверов. В роутере я указываю время аренды DHCP для подключённых устройств 6 минут. Соответственно устройства будут обновлять аренду каждые 3 минуты. С таким же интервалом 3 минуты, скриптом меняем список DNS серверов для локальной сети.

:local netId [/ip dhcp-server network find address="192.168.88.0/24"];
:local currentDns [/ip dhcp-server network get $netId dns-server];
:if ($currentDns = "192.168.88.1,8.8.8.8") do={
    /ip dhcp-server network set $netId dns-server="192.168.88.1,8.8.4.4";
} else={
    /ip dhcp-server network set $netId dns-server="192.168.88.1,8.8.8.8";
}

Этих трёх минут вполне хватает чтоб не заснуть, и пингануть разочек сервер для прогрева udp порта.

Расход заряда в планшете с таким энергетиком от роутера я специальными приборами не замерял. Но на глазок, за 12 часов бездействия ни одного процента зарядка не потяряла, и через 12 часов и планшет и телефон приняли и звонок и сообщение мгновенно.

Теги:
+4
Комментарии0

В Bot API 10.3 появилась остановка генерации. Но LLM-запрос придётся отменять самому

24 августа вышел Telegram Bot API 10.3. В нём появилась полезная функция для AI-ботов: пользователь может остановить генерацию ответа штатной кнопкой Telegram.

В методы sendMessageDraft и sendRichMessageDraft, которые позволяют показывать черновик ответа в личном чате, добавили два параметра:

  • can_stop=True — показывает кнопку остановки;

  • keep_on_stop=True — временно оставляет уже сгенерированную часть ответа в чате.

Когда пользователь нажимает кнопку, бот получает обновление stopped_message_generation. В нём есть chat, message_thread_id и draft_id, поэтому событие можно связать с конкретной генерацией.

Если вы явно задаёте allowed_updates, новый тип обновления нужно добавить туда. Иначе нажатие кнопки просто не попадёт в обработчик.

Но Telegram останавливает только показ черновика. Запрос к LLM на стороне бота продолжит выполняться, пока разработчик сам его не отменит.

Например, можно хранить задачи по ключу из идентификаторов чата, темы и черновика:

key = (chat_id, message_thread_id, draft_id)

active_generations[key] = asyncio.create_task(
    generate_answer()
)

При получении stopped_message_generation находим задачу и отменяем её:

event = update.stopped_message_generation
key = (event.chat.id, event.message_thread_id, event.draft_id)

task = active_generations.pop(key, None)

if task is not None:
    task.cancel()

    try:
        await task
    except asyncio.CancelledError:
        pass

Это упрощённый пример: конкретный обработчик зависит от используемого фреймворка.

Одного task.cancel() тоже не всегда достаточно. Отмена в asyncio кооперативная: задача остановится только тогда, когда управление вернётся в event loop. Если внутри работает синхронный код или отдельный поток, он может продолжить работу.

Нужно также закрыть потоковое HTTP-соединение с провайдером модели. А если провайдер поддерживает отдельный API отмены, вызвать и его. Иначе модель может продолжить генерацию — вместе с расходом токенов — даже после закрытия соединения.

По сути, здесь есть три независимых действия:

  • Telegram прекращает показывать черновик;

  • бэкенд отменяет локальную задачу и закрывает соединение;

  • провайдер модели останавливает генерацию, если умеет это делать.

Ещё один нюанс касается keep_on_stop=True. Остановленный черновик не превращается в обычное сообщение. Он исчезнет после следующего сообщения в чате или примерно через 30 секунд.

Если частичный ответ нужно сохранить, его придётся отдельно отправить через sendMessage или sendRichMessage.

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

Telegram добавил удобный интерфейс, но жизненный цикл генерации всё равно остаётся на стороне разработчика.

Вопрос: что вы бы делали после остановки: сохраняли частичный ответ, удаляли его или показывали кнопку «Продолжить», которая запускает новый запрос с уже полученным текстом?

Теги:
+4
Комментарии0

WEB-прокси Telegram помогает клиенту, но не инфраструктуре бота

В Telegram Desktop 7.1.0 появился новый тип подключения — WEB proxy. Его уже успели описать как способ, с помощью которого Telegram может выглядеть для сети как обычный HTTPS-сайт.

Если сильно упростить официальное описание архитектуры, работает это так:

  1. Клиент сохраняет обычный MTProxy framing и шифрование.

  2. Соединения проходят через скрытый WebView внутри приложения.

  3. WebView передаёт несколько логических потоков через один или несколько HTTPS- либо WebSocket-соединений с тем же доменом.

  4. Серверный relay разделяет потоки и передаёт каждый локально запущенной официальной реализации MTProxy.

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

Указанный домен продолжает работать как обычный HTTPS-сайт. Если запрос не содержит корректного capability, вычисленного из домена и секрета WEB-прокси, посетитель получает публичную страницу. Bridge открывается только клиенту с правильными параметрами подключения.

Сейчас готовая реализация работает в Telegram Desktop. Для Android существует экспериментальный клиент, а поддержка iOS пока описана только в планах проекта.

Что это меняет для разработчика бота

Сам WEB-прокси обслуживает соединение Telegram-клиента с инфраструктурой мессенджера. Он не становится общим туннелем для всех компонентов продукта.

По-прежнему существуют отдельные сетевые контуры:

  • Telegram Desktop пользователя → WEB-прокси → Telegram;

  • сервер бота → api.telegram.org;

  • Telegram → webhook endpoint бота;

  • Mini App → домен, на котором размещено веб-приложение.

Если сервер бота потеряет доступ к api.telegram.org, результат будет зависеть от способа получения обновлений.

При long polling бот перестанет и получать обновления, и вызывать методы Bot API.

При webhook входящие обновления ещё могут приходить, если endpoint доступен извне. Однако обычные исходящие обращения к Bot API работать не будут. Есть редкое исключение: Telegram разрешает передать один метод Bot API прямо в HTTP-ответе на webhook. Но узнать результат выполнения такого метода бот уже не сможет.

WEB-прокси также не восстановит недоступный webhook и не поможет загрузить Mini App, если проблема возникла с доменом самого веб-приложения.

Это не недостаток новой технологии. Просто WEB-прокси решает задачу доступности клиента, а не отказоустойчивости сторонней инфраструктуры.

Что по-прежнему остаётся на стороне разработчика

Для long polling нужно отдельно контролировать доступность Bot API и задержку получения обновлений.

Для webhook полезно отслеживать через getWebhookInfo как минимум:

  • pending_update_count;

  • last_error_date;

  • last_error_message.

Обработку обновлений лучше делать идемпотентной: если webhook отвечает кодом вне диапазона 2xx, Telegram повторяет доставку. А слепой повтор исходящих методов вроде sendMessage, наоборот, способен создать дубли.

Получается, фраза «Telegram у пользователя открылся» ещё не означает, что бот, webhook и Mini App тоже работают.

Подскажите, держите ли для Bot API резервный egress или HTTPS-прокси? И состояние webhook вы контролируете через getWebhookInfo или ограничиваетесь метриками самого приложения?

Теги:
+3
Комментарии0

Wildberries выпустила собственный мессенджер WB Chat

У Wildberries появился собственный мессенджер WB Chat. Приложение уже доступно пользователям на Android и iOS, а авторизация проходит через WB ID.

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

Набор функций тоже постепенно расширяется. Сейчас WB Chat позволяет:

  • отправлять сообщения, фото, видео и файлы;

  • пересылать сообщения и отвечать на них;

  • использовать реакции, эмодзи и стикеры;

  • создавать публичные и приватные группы и каналы;

  • закреплять важные сообщения;

  • искать людей, чаты и сообщения;

  • совершать аудиозвонки;

  • расшифровывать голосовые сообщения в текст.

Последняя функция особенно интересна для повседневного использования: рядом с кнопкой воспроизведения голосового сообщения появляется возможность получить его текстовую расшифровку. То есть длинное голосовое необязательно прослушивать целиком.

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

В Google Play приложение опубликовано компанией WB FZE, зарегистрированной в Hamriyah Free Zone в эмирате Шарджа, ОАЭ. На момент проверки там указано 1 тыс.+ скачиваний.

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

Скачать WB Chat для Android можно через Google Play, для iPhone и iPad — через App Store. Также заявлена веб-версия WB Chat.

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

✔ Код — журнал о технологиях https://t.me/kodjournal подпишитесь на наш Telegram-канал! 😎

Теги:
0
Комментарии2

MAX тоже можно защитить шифрованием поверх мессенджера

Telegram, VK и другие сервисы можно использовать как транспорт для зашифрованных сообщений, не полагаясь на их собственный механизм защиты содержимого. Российский разработчик развивает open-source проект CryptoLayer — библиотеку, которая создает дополнительный криптографический слой непосредственно на устройствах участников переписки.

Идея простая: мессенджер становится каналом доставки. Сообщение сначала шифруется локально, затем полученные данные отправляются через выбранный сервис. На устройстве получателя они восстанавливаются и расшифровываются.

Как это работает

CryptoLayer не заменяет Telegram, VK или другой сервис, а отделяет защиту содержимого от транспорта.

Для шифрования используется AES-256-GCM, для цифровых подписей — ECDSA на кривой SECP256R1, а согласование ключей выполняется через ECDH с той же кривой. Дополнительно библиотека может преобразовывать зашифрованные данные с помощью WordCoder — он кодирует байты в последовательность обычных слов.

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

Один криптографический слой — разные каналы

Главная особенность проекта — модульная архитектура. CryptoLayer не привязан к конкретному мессенджеру или платформе.

В репозитории указано, что транспортом может быть практически любой канал, способный передавать данные. Среди примеров — Telegram, VK, Discord, HTTP, SSH, FTP, UDP, облачные хранилища, файловая система и Bluetooth. Для нового варианта передачи требуется написать отдельный модуль.

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

Однако готового модуля для MAX в основном репозитории сейчас нет. Поэтому полноценной поддержки этого мессенджера пока нет — потребуется отдельная интеграция.

Какие инструменты уже доступны

Вокруг CryptoLayer постепенно формируется собственная экосистема:

  • CryptoLayer CLI — интерфейс для работы из терминала;

  • CryptoLayer Web UI — веб-интерфейс для защищенного обмена сообщениями;

  • zkgram — отдельный клиент для приватного общения через Telegram.

Исходный код опубликован под лицензией MIT. На момент проверки официальный репозиторий набрал более 200 звезд на GitHub, но проект остается небольшим независимым open-source решением, а не криптографической системой, прошедшей масштабный аудит.

Это важная оговорка. Наличие AES-256-GCM, ECDSA и ECDH само по себе не гарантирует безопасность всей системы. Многое зависит от реализации протокола, генерации и хранения ключей, защиты конечных устройств и отсутствия ошибок в коде.

Что все равно видит мессенджер

CryptoLayer решает конкретную задачу: защищает содержимое сообщения от транспортного сервиса. Но он не скрывает сам факт общения и не делает пользователя анонимным.

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

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

Где посмотреть исходный код

Репозиторий CryptoLayer на GitHub содержит исходный код, описание архитектуры, используемые криптографические механизмы и информацию о доступных интеграциях.

Архитектура и принцип работы проекта также показаны в видеопрезентации CryptoLayer.

Главное

CryptoLayer интересен не как новый защищенный мессенджер, а как внешний слой шифрования, который отделяет конфиденциальность переписки от конкретного сервиса доставки.

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

✔ Код — журнал о технологиях https://t.me/kodjournal подпишитесь на наш Telegram-канал! 😎

Теги:
+3
Комментарии3

Ситуация, знакомая многим: MAX ставить не хочется, а приходится. Работа, знакомые, школьные чаты — и вот у тебя на телефоне живёт приложение, которому ты не доверяешь, и которое работает в фоне тогда, когда ему захочется.

Мне хотелось чтобы MAX вообще не было ни на моём телефоне, ни в моём браузере — а переписка при этом приходила туда, где я и так сижу. В Telegram.

Так появился Telemax — мост между MAX и Telegram.

Что понадобится

Сервер — любая VPS на Ubuntu/Debian. Требования скромные, хватит самой дешёвой.

Свой Telegram-бот — создаётся за минуту в @BotFather, токен вставляется при настройке. Бот твой, живёт на твоём сервере, никакого общего чужого бота — данные идут только через твою инфраструктуру.

Telegram-группа с включёнными темами, куда ты добавишь этого бота админом. Она и станет твоим «окном» в MAX.

Номер MAX, на который мост авторизуется (в том числе если на аккаунте стоит пароль-2FA).

Про безопасность и доступ — два уровня:

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

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

Честная оговорка: тот, кого ты добавил в Telegram-группу, видит там все MAX-чаты, а не один. Так что доступ к самой группе — вещь чувствительная.

В ТГ это выглядит так:

Что уже работает в обе стороны:

— текст, фото, файлы, голосовые, видео и видео-кружки;
— стикеры — и статичные, и анимированные;
— геолокация и контакты;
— опросы — создание и голосование;
— удаление сообщений;
— реакции;
— пересылка;
— поиск контакта MAX по номеру или нику — и новая личка в один тап, не заходя в MAX;

уведомления о звонках (входящий / пропущенный / завершённый — текстом, без передачи звука: для аудио нужен WebRTC, это вне рамок).

Плюс мелочи для удобства: 🎛 пульт управления кнопками прямо в Telegram (пауза моста, бан надоевших чатов, обновление в один тап), авторизация в личке бота — код из SMS и пароль-2FA не попадают в группу. С версии 0.4 мост полностью headless: ни одного открытого порта наружу.

Из интересного: анимированные стикеры ТГ по умолчанию МАХ не принимает, поэтому они конвертируются в короткие видео - можно завалить максчатланинов своими стикерпаками )

Как развернуть

На чистом Ubuntu-сервере — одна команда:

curl -fsSL https://raw.githubusercontent.com/Trollobot/Telemax/main/install.sh | bash

Дальше скрипт сам поставит Docker, склонирует проект, сгенерирует ключи и по шагам проведёт настройку: попросит токен Telegram-бота (создаётся в @BotFather) и сам определит id твоей группы. Вход в MAX — команда /login в личке бота. Настройки потом меняются повторным запуском setup.sh — там теперь целое меню.

Честно про ограничения, чтобы никто не питал иллюзий:

Это не end-to-end. Переписка идёт через серверы MAX и Telegram — как и в любом обычном мессенджере. Мост ничего в этом плане не «шифрует поверх», он просто переносит сообщения. Переписка оседает на твоём сервере — в логах и в истории Telegram-группы. Безопасность этого сервера (доступ, шифрование диска) — на тебе.

Это неофициально. Проект не связан с MAX, работает поверх твоего собственного аккаунта на твой страх и риск.

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

Специально открытый исходник — чтобы можно было посмотреть, что внутри, и гонять на своём сервере, а не на чьей-то инфраструктуре:

github.com/Trollobot/Telemax

Зы: на следующий день после поста Гит забанили — разбираюсь с поддержкой.

Проект от этого не остановился: живёт на собственном зеркале с HTTPS, а каждый релиз подписан ключом — обновления проверяют подпись, так что доверять транспорту и не требуется. Установка, пока GitHub в бане:

curl -fsSL https://zergont-gate.duckdns.org/install.sh | bash

Теги:
+22
Комментарии48

14 августа 2026 года проекту Telegram исполнилось 13 лет. В этот день в 2013 году мессенджер был официально запущен в виде клиента на iPhone.

Теги:
+6
Комментарии0

Почему корпоративные чаты постепенно превращаются в новую файловую систему

Когда-то для хранения рабочих файлов были папки, сетевые диски и корпоративные порталы. Сейчас всё чаще главным местом хранения информации становится обычный рабочий чат.

Презентация? "Где-то в чат".
Ссылка на документ? "Используй поиск".
Важное решение? "Где-то выше в переписке".
Нужный файл? "Поищи в нашем чате, я точно отправлял".

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

Почему так происходит

Чат удобнее большинства корпоративных систем.

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

Но удобство быстро превращается в проблему.

Через несколько месяцев поиск нужного документа выглядит примерно так:

"Это было либо в понедельник, либо в четверг. Кажется, Андрей отправлял. Название было что-то вроде final_final22314.xlsx".

Поиск по сообщениям помогает, но не решает главную проблему: контекст и информация смешиваются в одном потоке.

Самая опасная часть — знания

Файл найти ещё можно.

Гораздо хуже, когда в чате остаётся решение:

"Давайте делаем по второму варианту".

Через полгода новый сотрудник видит это сообщение, но вообще в глаза его не видел:

  • что обсуждалось до него;

  • почему выбрали второй вариант;

  • кто принимал решение;

  • актуально ли оно сейчас.

Получается своеобразная «база знаний без документации».

Что с этим делать

Не обязательно запрещать использование чатов.

Достаточно разделить информацию:

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

Главное правило можно сформулировать очень просто:

Чат должен быть местом, где информация появляется, а не местом, где она навсегда хранится.

Иначе однажды поиск по корпоративному чату станет самым важным IT-инструментом компании — просто потому, что больше никто не знает, где что лежит.

Теги:
Всего голосов 5: ↑5 и ↓0+7
Комментарии3

Почему одни Telegram-каналы с 500 подписчиками зарабатывают больше чем другие с 50 000

Долго не мог понять эту разницу. Потом увидел несколько проектов изнутри и стало понятно.

Дело не в размере аудитории. Дело в том за что именно платят подписчики.

В большом канале с холодной аудиторией люди подписались потому что алгоритм показал или кто-то порекомендовал. Они читают. Но не платят - потому что не чувствуют связи с автором. Контент есть, отношений нет.

В маленьком канале с горячей аудиторией люди пришли целенаправленно, следят давно, чувствуют что автор понимает их ситуацию. Они платят не за контент - за доступ к человеку который им доверяет.

Это меняет всю стратегию монетизации.

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

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

Самый быстрый способ проверить где вы сейчас: спросите свою аудиторию о чём-нибудь личном и посмотрите сколько человек ответят. Если отвечают единицы из тысяч - аудитория холодная. Если десятки из сотен - горячая.

У вас какой тип аудитории и как это влияет на монетизацию?

Теги:
Всего голосов 2: ↑1 и ↓1+2
Комментарии0

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

12 августа в 11:00 МСК пройдет бесплатный вебинар «Импортозамещение ≠ долго, дорого, формально. Миграция корпоративных коммуникаций: опыт VK WorkSpace и кейсы крупных компаний».

Эксперты VK Tech расскажут, как подготовить инфраструктуру к переходу, какие данные можно перенести в SaaS-версию и нужно ли при этом останавливать работу на прежней платформе. Отдельно разберут возможные ошибки при миграции, восстановление неперенесенных данных и адаптацию сотрудников после запуска новой системы.

В прямом эфире покажут работу сервисов VK WorkSpace: почты, календаря, мессенджера, видеоконференций, документов, облачного диска и таск-трекера. На примерах крупных компаний спикеры объяснят, сколько времени может занять переход и какие сложности обычно возникают в процессе. Вебинар проведут Сергей Кирсанов, менеджер по развитию продаж VK WorkSpace, и Иван Бородин, пресейл-архитектор VK WorkSpace.

Теги:
Всего голосов 7: ↑7 и ↓0+9
Комментарии0

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

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

Поделюсь тем что удивило.

Большинство людей выбирают сервис по стоимости подключения. Это почти всегда ошибка.

Настоящая стоимость - в модели работы сервиса. А моделей сейчас три.

Модель 1 - комиссия с каждой оплаты

Tribute, Paywall и похожие сервисы берут 10-20% с каждой транзакции. Деньги идут через их систему, они выплачивают тебе остаток по расписанию.

Считаем на конкретных числах. При обороте 30 000 рублей в месяц комиссия 10% это 3 000 в месяц и 36 000 в год. При обороте 100 000 - уже 10 000 в месяц и 120 000 в год. При 300 000 - 30 000 в месяц и 360 000 в год только за пользование платформой.

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

Минус который мало кто считает заранее: при обороте от 100к в месяц комиссия начинает ощутимо давить. А ещё - Tribute работает через иностранное юрлицо (TRBT Limited). Для самозанятых это дополнительные вопросы по 173-ФЗ о валютном контроле.

Модель 2 - Telegram Stars

Нативная валюта платформы. Пользователь платит не выходя из Telegram, конверсия выше.

Но есть нюансы которые многие узнают постфактум. Если пользователь купил Stars через iOS или Android - Telegram отдаёт разработчику примерно 70%, остальное уходит Apple или Google. Если через десктоп - почти всё твоё. Вывод только через Fragment в TON, для рублёвой отчётности лишний шаг.

Для кого подходит: проекты где аудитория сидит в основном на десктопе, или те кто не против крипто-вывода.

Модель 3 - фиксированный тариф

Деньги идут напрямую на твой счёт в ЮKassa или CloudPayments, сервис берёт фиксированную абонентку.

Та же математика. При обороте 30 000 в месяц платишь фикс около 2 000 - экономия против 10% всего 1 000, разница несущественная. При 100 000 в месяц фикс те же 2 000, экономия уже 8 000. При 300 000 - фикс 2 000, экономия 28 000 в месяц. За год это больше 300 000 рублей которые остаются у тебя а не у платформы.

Из российских сервисов с такой моделью смотрел Nemiling - там фиксированный тариф от 1 790 ₽ в месяц без ограничений по количеству проектов, деньги приходят напрямую на счёт, бесплатно до 5 000 ₽ оборота.

Что ещё важно при выборе - и про что почти не пишут.

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

Платные группы а не только каналы. Большинство сервисов умеют закрытые каналы. Но платная группа где участники общаются между собой - это другой технический сценарий. Не все его поддерживают.

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

Налоговый статус. Самозанятый или ИП - это влияет на выбор сервиса. Деньги которые приходят от иностранного юрлица могут создавать вопросы которые лучше закрыть заранее, а не когда уже пришло требование от банка.

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

При обороте до 20-25 тысяч в месяц разница между моделями почти незаметна - можно брать что удобнее. При росте выше - фиксированный тариф начинает выигрывать математически.

А вы как выбирали инструмент для монетизации Telegram-проекта - считали экономику заранее или уже потом пересчитывали?

Теги:
Всего голосов 1: ↑1 и ↓0+3
Комментарии0

[пожалуйста, не злоупотребляйте эмодзи]

😻 Привет Халчане! Новое обновление HalChat for Android 1.0.3 (Pin, read and react)

Что нового?
🥷 Теперь можно закреплять сообщения
🤗 Поиск по чату
😳 Реакции на сообщения
🤓 Возможность выделять и копировать текст
🤖 Синхронизация действий в реальном времени
🫢 Возможность вернуться в самый низ, когда зашли далеко

Что исправлено?
🤠 Проведена оптимизация от улучшения распределения задач до ускорение процессов синхронизации
👻 Исправлены баги (опросы показывали зашифрованный текст, не всегда загружались люди, терялась синхронизация и данные и т.п.)
🫩 Добавлен выбранный вариант в опросе

Что дальше?
🙀 В следующем обновлении будут дополнительно добавлен локальный ИИ. Благодаря однобитным ИИ моделям, это новая технология уже доступна на HalChatWeb.
🤔 Также я дообучил собственную ИИ модель HalChat-RP с которой сняты больше ограничений и дообучена на RP общении, в том числе все 1к+ ИИ персонажей из генератора HalChatRP

И хотел бы попросить вас всем пройти опрос, проголосовало мало людей, а от этого выбора зависят новые звуковые эффекты мессенджера: https://halwarsing.questionpro.com/t/AddsYZ9TdN

😈 До новых встреч!

Google Play: https://play.google.com/store/apps/details?id=halwarsing.net.halchatandroid
RuStore: https://www.rustore.ru/catalog/app/halwarsing.net.halchatandroid
HalChat Web: https://halch.at/c/tZgWWT
GitHub: https://github.com/halwarsing/HalChat/tree/dev

Теги:
Всего голосов 4: ↑1 и ↓30
Комментарии1

Ближайшие события

Хочу сделать своего бота для монетизации платного контента в Telegram.

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

Кандидаты, которых изучил:

Tribute и Paywall - деньги идут через внутряннию систему сервисов, они забирают комиссию с каждой транзакции (от 10 до 20%). Tribute официально декларирует плоскую комиссию 10% выплаты по расписанию два раза в месяц. Для меня это хорошая модель: чем больше оборот, тем больше я заработаю. Но если смотреть глазами пользователя, при росте оборотов 10-20% начинают очень заметно съедать прибыль, и сегодня многие склоняются в пользу другой модели.

Nemiling - там переводы идут напрямую на счёт, а вместо комиссии фиксированный тариф за оборот: бесплатно до 5k руб/мес, дальше два плана без ограничения по количеству проектов - 1790 руб/мес при обороте до 60 000 руб/мес и 2990 руб/мес при обороте выше - без ограничений. По сути, это классическая SaaS-модель с подпиской.

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

Как ведут себя цифры при обороте

Если по‑честному взглянуть на цифры, разница между процентной моделью (как у Tribute/Paywall) и фиксированной подпиской (как у Nemiling) становится болезненной уже на средних оборотах.

Если владелец канала стабильно делает 50 000 в месяц.
С комиссией 10% он каждый месяц отдаёт по 5 000, а за год набегает около 60 000 только за пользование платформой.
В фиксированной истории вроде Nemiling на таком уровне автор платит около 2 000 в месяц, то есть примерно 21-22 тысячи в год. Получается, вместо 60k он отдаёт чуть больше двадцати - просто потому, что платит фикс за сервис, а не процент с каждой оплаты.

А если автор стабильно держит в районе 300-500 тысяч в месяц?
При процентной модели 10% это уже 30-50 тысяч в месяц, то есть от 360 до 600 тысяч в год только за то, что он пользуется сервисом.
В фиксированной модели он всё так же платит несколько тысяч в месяц, суммарно порядка 35. Разница уже не просто ощутимая, а стратегическая.

Так вот как создателю бота, мне хочется запуститься с моделью как у Tribute или Paywall, она она обещает хорошие деньги, но с другой стороны, смогу ли я успешно конкурировать с такими закоренившимися ботами. Хочется зайти в нишу и при этом сделать всё так, что-бы иметь конкурентное приемущество.

Если выбрать решение типа Nemiling: удобный рублёвый вывод на счёт, фиксированная плата при росте оборотов и экономия в разы. У меня будет "козырь" с котрым проще зацепиться и удержаться, хотя и окупаемость будет дольше.

Вопросы к сообществу

  1. Кто юзает ботов платных подписок: какую модель в итоге выбрали и почему?

  2. Какие тонкие нюансы с выводом и отчётностью вы встречали при работе с Tribute, Paywall, Stars, Nemiling, investmember? Особенно интересует опыт с рублёвой отчётностью и валютным контролем.

  3. Есть ли на сегодняшний день надёжные гибридные решения - например, фиксированная подписка + внутренняя опция «оплатить через Telegram (Stars)»?

Буду признателен за конкретные цифры, кейсы и ссылки на опытные расчёты. Спасибо!

Теги:
Всего голосов 1: ↑1 и ↓0+3
Комментарии4

Telegram-канал как продукт: что я понял только после запуска

Когда запускал платный канал, думал что весь фокус на контент. Сделай хороший контент, люди будут платить.

Как бы не так.

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

Второе. Удержание в Telegram другое чем где-либо ещё. От email-рассылки отписываются легко, из закрытого канала уходят реже. Не потому что контент лучше, а потому что канал это сообщество. Человек уходит не от контента, он уходит от людей. Это меняет то как нужно думать про churn.

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

Всё это звучит очевидно когда читаешь. Не очень очевидно когда запускаешь.

Кто строил платные продукты в Telegram, что стало главным сюрпризом?

Теги:
Всего голосов 6: ↑2 и ↓40
Комментарии1

Дал боту имя и работать стало приятнее

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

Назвал Степаном.

Смешно, но код стал аккуратнее.

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

Наверное дело в том что когда называешь что-то именем, начинаешь нести за это ответственность иначе. Не «упадёт и ладно», а «Степан не должен падать».

Кто-нибудь ещё так делает или это только у меня странности?

Теги:
Всего голосов 3: ↑1 и ↓2+1
Комментарии1

Реклама в Telegram в 2026 году: что работает, что перестало

Последние полгода активно тестировал разные форматы продвижения в Telegram.

В Ads через официальный кабинет минимальный порог входа снизился до 1500 евро, это уже не только для крупных компаний. Таргетинг по каналам работает нормально если правильно подобрать список. Цена за пдп сильно зависит от ниши, у меня выходило от 40 до 180 рублей.

Посевы в каналах. Живее чем кажется. Но рынок сильно изменился + цены подросли не смотря на все замедления и прочие проблеммы: накрученные каналы стали легче распознавать по статистике просмотров и вовлечённости. Спасибо Telemetr и Tg Stat. Хорошие площадки с живой аудиторией стоят дороже, зато конверсия реальная.

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

Что удивило: Stars как инструмент продвижения. Telegram позволяет оплачивать рекламу внутри платформы звёздами, и это заметно дешевле чем через обычный кабинет. Не все знают про эту механикуу.

Главный вывод: Telegram как рекламная платформа ростёт. Халявного трафика почти не осталось, зато инструменты стали нормальными. Бюджет нужен, но и результат предсказуемее.

Какие форматы продвижения сейчас используете, что даёт лучшее соотношение цены и качества аудитории?

Теги:
Всего голосов 2: ↑2 и ↓0+4
Комментарии0

Telegram как платформа для платного продукта: что изменилось в 2026 году

Два года назад когда я впервые запускал платный доступ через Telegram, это выглядело как костыль. Бот принимает деньги, добавляет пользователя в закрытый канал, следит за сроком. Всё самописное, всё ломалось в самый неподходящий момент.

Сейчас картина другая.

Telegram Stars превратился в нормальный платёжный инструмент внутри платформы. Пользователь платит не выходя из мессенджера, конверсия ощутимо выше чем при редиректе на сайт. Для цифровых продуктов это реально меняет воронку.

Но самое интересное не в Stars. Аудитория Telegram в 2026 году психологически готова платить внутри мессенджера. Два года назад нужно было долго объяснять зачем вообще платить за контент в Telegram. Сейчас люди привыкли, платные каналы и боты стали нормой.

Что из этого следует для продуктов.

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

Ограничения реальные: вывод через Stars только в TON через Fragment, для российского бизнеса с рублёвой отчётностью это головная боль. Поэтому многие комбинируют: Stars для части аудитории, ЮKassa через Payments API для тех кто предпочитает карту.

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

Для каких продуктов это работает лучше всего: закрытые сообщества, доступ к контенту по подписке, консультации с автоматическим онбордингом. Для чего работает хуже: сложные SaaS с кучей настроек, всё что требует нормального личного кабинета.

Пробовали монетизировать что-то через Telegram?

Теги:
Всего голосов 2: ↑1 и ↓1+2
Комментарии0

Telegram Stars в боте: попробовал прикрутить, делюсь что удивило

Давно хотел добавить платежи в одного из своих ботов. Раньше использовал ЮKassa через нативный Telegram Payments. Но в этот раз решил попробовать Stars, всё-таки нативная валюта платформы, без внешних провайдеров.

Настройка оказалась проще чем ожидал. Никаких provider_token, никакой возни с webhook от платёжки. Просто отправляешь инвойс с указанием суммы в Stars и обрабатываешь successful_payment. Примерно так:

python

await bot.send_invoice(
    chat_id=message.chat.id,
    title="Премиум доступ",
    description="Доступ на 30 дней",
    payload="premium_30d",
    currency="XTR",
    prices=[LabeledPrice("30 дней", 100)]
)

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

Но есть нюансы которые я не учёл сразу.

Первое: если пользователь покупал Stars через iOS или Android, Telegram отдаёт разработчику примерно 70% от суммы, остальное Apple и Google забирают себе. Если через десктоп или веб — почти всё твоё. Это принципиально меняет экономику для аудитории которая сидит на телефоне.

Второе: возвраты. Stars можно вернуть и Telegram это делает по запросу пользователя. Нужно обрабатывать refunded_payment иначе пользователь получит деньги обратно а доступ у него останется.

Третье: вывод только через Fragment в TON. Для российского юрлица это отдельная история.

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

Кто уже работает со Stars в продакшене, как решаете вопрос с выводом в рубли?

Теги:
Всего голосов 2: ↑2 и ↓0+4
Комментарии0

Как записывать "кружочки" в мессенджере "BITCORD".

Пишу крутой облачный мессенджер (мини-соцсеть) под пилотным названием BITCORD. Недавно для него реализовал новую функцию отправки видеосообщений в формате других популярых мессенджеров. Теперь любой пользователь может отправить своему собеседнику модное селфи без каких-либо специальных настроек. Это дополняет общение дополнительными крутыми фишками.

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

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

Особенности видеосообщений:

  • Лимит времени: Максимальная длительность одного ролика составляет 10 секунд.

  • Формат: Видео автоматически обрезается в форме круга и записывается на фронтальную камеру.

  • Воспроизведение: В чате такие ролики проигрываются один раз при нажатии "Play".

Способ 1

Бэкенд приводит видео к "квадратному" формату с соотношением сторон 1:1 и возвращает ссылку на него обратно в чат собеседникам.

Ниже пример выполнения преобразования видео в "квадратный" формат с помощью "ffmpeg":

ffmpeg 
  -i input.mp4 
  -vf "crop=480:480:0:(ih-480)/2" 
  -c:v libx264 -crf 23 
  -c:a copy output.mp4

Чтобы отобразить "квадратное" видео в виде круга на Java, я создаю шаблон (ViewOutlineProvider). Он принудительно задает графическому элементу (View) форму идеального круга фиксированного размера:

private static final ViewOutlineProvider CIRCLE_PROVIDER = new ViewOutlineProvider() {
  @Override
  public void getOutline(View view, Outline outline) {
    int sizeInPx = (int) TypedValue.applyDimension(
      TypedValue.COMPLEX_UNIT_DIP, 270, view.getResources().getDisplayMetrics()
    );
    outline.setOval(0, 0, sizeInPx, sizeInPx);
  }
};

Затем в холдере применяю описанный выше шаблон к TextureView и ImageView:

static class CircleVideoViewHolder extends BaseViewHolder {
  TextureView texture;
  ImageView   preview;

  VidCrViewHolder(View v) {
    super(v);
          
    texture = v.findViewById(R.id.video_texture);
    preview = v.findViewById(R.id.video_preview);

    texture.setOutlineProvider(CIRCLE_PROVIDER);
    preview.setOutlineProvider(CIRCLE_PROVIDER);

    texture.setClipToOutline(true);
    preview.setClipToOutline(true);
  }
}

В результате выполнения этого кода видео примет "круглый" вид.

Способ 2

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

Так как камера смартфона снимает видео не в "квадратном" формате, я воспользовался матрицей преобразования, центрировал кадр и обрезал лишние стороны.

//фиксированный размер видео с камеры смартфона: 480x640
float scaleY = h / (w * 480 / 640); 
Matrix matrix = new Matrix();
matrix.setScale(1.0f, scaleY, w / 2f, h / 2f);
CircleVideoViewHolder vch = (CircleVideoViewHolder) holder;
vch.texture.setTransform(matrix);

При таком подходе вся работа выполняется на стороне графического процессора (GPU) самого смартфона с максимальной скоростью. Это полностью избавляет от необходимости обрабатывать видео на бэкенде.

В результате получилась вот такая красота:

селфи видео в круглом формате
селфи видео в круглом формате

Итог:

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

Спасибо за вашу поддержку. Это придает стимул писать дальше.

Теги:
Всего голосов 3: ↑3 и ↓0+6
Комментарии7
1
23 ...