Консьерж «свои люди по миру»: бот, закрытый канал и мини-приложение
Совместный продукт с партнёром: консьерж для тех, кто живёт или переезжает за границу. Бот выдаёт доступ в закрытый канал, мини-приложение показывает направления и каталог сообществ по странам, админка управляет всем без программиста. Работает как демо, на живых людей продукт ещё не запускали.
Коротко (TL;DR)
- Это совместный продукт с партнёром: консьерж для тех, кто живёт за границей или собирается переехать. Бот, закрытый канал, мини-приложение и админка, в которой партнёр управляет всем сама.
- Главная идея: каталог сообществ по странам. Человек выбирает страну и видит чаты, каналы и боты земляков с фильтром по языку и типу. Сообщества добавляет партнёр или предлагают сами люди, но видны они только после одобрения.
- Проверки 08.11.2026: 54 проверки логики, ноль нарушений axe-core на всех экранах в светлой и тёмной теме, живой путь через боевой API 11 из 11.
- Статус честный: рабочее демо. Канал пуст, каталог на боевом сервере без сообществ, на людей продукт не запускали, мини-приложение на живом телефоне внутри Telegram я не открывал.
Сделаю под ключ: разберу задачу, назову срок и цену. Чтобы начать, напишите в Telegram одной фразой.
Обсудить ботаЛюди, которые уехали или едут жить в другую страну, находят друг друга случайно: чей-то чат, чья-то ссылка, совет из третьих рук. Идея продукта простая: собрать «своих людей» по странам в одном месте и вокруг них поставить сервисы, с которыми обычно приходят в такие сообщества: визы, переезд, туры, знакомства. Я взял на себя техническую часть.
Задача
Партнёр знает аудиторию и умеет договариваться с администраторами сообществ. Программировать она не будет, поэтому всё содержимое должно меняться без разработчика: направления, страны, сообщества, события, рассылки, тексты. При этом контент закрыт: в приложение пускают тех, кто подписан на канал и оставил номер телефона.
Условия, которые я поставил себе:
- вход без паролей: через Telegram, на сайте через подтверждение в боте;
- админка тоже без пароля, чтобы нечего было терять и подбирать;
- на старте приложение не выглядит пустым: лучше показать четыре честных раздела, чем двадцать заглушек;
- ни одного выдуманного человека, чата или цены. Если данных нет, в интерфейсе так и написано.
Что я сделал
Серверная часть написана на Python: FastAPI, SQLite и отдельный процесс бота, который опрашивает Telegram и разбирает очередь рассылок. Мини-приложение собрано на TypeScript и Vite. Работает всё за обратным прокси, копия базы снимается по расписанию. Секреты лежат только в конфигурации на сервере, в репозитории токенов нет.
Вход. Внутри Telegram мини-приложение проверяет подпись данных, которые передаёт сам Telegram. На сайте человек нажимает кнопку, бот получает короткий код и просит подтвердить вход. Админ вводит в боте команду, и бот присылает одноразовую ссылку на 10 минут. Паролей нет нигде. Похожий выбор между ботом и мини-приложением я разбирал в статье про интерфейс прямо в чате.
Закрытый канал. Бот состоит в канале администратором и сам выпускает пригласительную ссылку. Контент открывается, когда выполнены два условия: человек состоит в канале и поделился номером. Подписку бот проверяет запросом к Telegram, а не доверяет кнопке «я подписался». Как связать канал с заявками, я писал в материале про кнопку под постом.
Каталог сообществ. Это та часть, ради которой продукт задуман. Вкладка «Свои»: список стран со счётчиком сообществ, внутри страны чаты, каналы и боты с фильтром по языку и по типу, внутри ещё группировка по городам. Партнёр добавляет сообщество в админке, и оно сразу видно. Любой человек может предложить своё: такая запись получает статус «ждёт», админам уходит уведомление, а в каталоге она появляется только после одобрения. Переходы в сообщества считаются, потому что при переговорах с администратором важно сказать, сколько людей пришло.
В карточке есть две кнопки для партнёра. Первая подтягивает число участников открытого сообщества. Вторая публикует в канале анонс с кнопкой, которая ведёт в бота по ссылке вида «старт с кодом страны», а бот отвечает кнопкой «Открыть сообщества страны». Здесь пришлось обойти одну особенность: Telegram кладёт данные запуска в часть адреса после решётки, поэтому параметр страны передаю обычным параметром адреса, иначе он теряется.
Заявки и рассылки. Направления услуг (визы, переезд и резидентство, авторские туры, знакомства) принимают заявки, у каждой заявки журнал статусов. Рассылки идут через очередь, которую разбирает процесс бота, а пробную рассылку я прогнал на тестовых получателях.
Баллы. Человек получает баллы за приглашённого друга, но только когда друг уже в канале и оставил номер. Это защищает от накрутки пустыми аккаунтами. Подарки за баллы заведены как заглушки с условными ценами, а вывода баллов деньгами в продукте нет. Идею приглашения друзей я описывал отдельно: реферальная игра «приведи друга».
Что было сложно
Лимит ботов на аккаунт. Продукт сначала назывался иначе. Когда мы сменили название, оказалось, что бот привязан к старому имени, а у аккаунта исчерпан лимит в 40 ботов, свободных мест нет. Пришлось удалить старого бота и завести нового. Урок на будущее: перед тем как заводить бота, решить название, а лишние боты чистить заранее.
Пустой интерфейс. В приложении заведено 17 направлений из переписки и 19 стран без гайдов, один тур. Если выставить всё сразу, выглядит как витрина с пустыми полками. Я добавил галочку «Показывать» на каждое направление и на каждый раздел. На старте включены четыре направления и три вкладки (главная, заявки, профиль), остальные тринадцать спрятаны и включаются в админке за секунду. Направление, ссылающееся на выключенный раздел, скрывается само, а открытая вручную ссылка на выключенный раздел ведёт на главную.
Стекло и читаемость. Оформление построено на эффекте жидкого стекла: карточки, поиск, плавающая панель вкладок. Красиво, но на стекле легко потерять контраст. Блик стекла сначала рисовался поверх текста, и я исправил слои. Контраст текста я не оценивал на глаз: скрипт прячет надпись, снимает экран и берёт худший по яркости фон в середине надписи. Рамка целиком даёт ложные результаты из-за скруглённых углов, поэтому замер идёт именно по середине. Метки в тёмной теме получили отдельные цвета.
Мелочи платформы. Кнопка «Назад» вне Telegram показывала лишнее, бот отвечал только на известные команды (теперь отвечает на любую), а скрипты проверки с сервера нужно запускать от пользователя службы, иначе файлы базы становятся принадлежащими администратору и служба перестаёт их писать.
Что получилось
| Что | Состояние |
|---|---|
| Бот, канал, мини-приложение, сайт | развёрнуты на сервере, адрес временный, домен не куплен |
| Логика | 54 проверки пройдены 08.11.2026 |
| Доступность | axe-core: 0 нарушений на всех экранах, светлая и тёмная тема |
| Живой путь через боевой API | 11 из 11 |
| Рассылка | пробная прошла |
| Контент | 17 направлений, 19 стран без гайдов, один тур, сообществ на боевом сервере пока 0 |
| Канал | пуст, первый пост и текст приветствия партнёром не согласованы |
| Запуск на людей | не было |
Не проверено: открытие мини-приложения на живом телефоне внутри Telegram и запрос контакта кнопкой на настоящем устройстве. Для этого нужно принять условия Telegram от имени владельца, и я оставил это ему. Тестовые сообщества в каталоге были только на моём компьютере, на боевом сервере их нет.
Что дальше
Сначала наполнить каталог: партнёр договаривается с администраторами и добавляет первые сообщества, без этого вкладка «Свои» пуста. Потом согласовать приветствие и первый пост в канале. Название продукта и домен тоже ещё не согласованы окончательно, поэтому публиковать адрес рано.
Перед запуском на людей остаются два вопроса, которые решает не код. Первый: денежные операции и любой вывод баллов в деньги требуют юридической проработки, поэтому в продукте их нет. Второй: телефоны граждан России нельзя просто складывать на сервер за границей, надо выбрать площадку и оформить согласия, об этом я писал в статье про 152-ФЗ для чат-ботов. MAX в продукте отложен, но поле для идентификатора в базе уже есть.
Частые вопросы
Это работающий продукт с аудиторией?
Пока нет. Это рабочее демо: всё запускается и проверено тестами и замерами, но людей в канале нет, а каталог ждёт первых сообществ.
Почему доступ к контенту по номеру и подписке?
Подписка отсекает случайных посетителей, номер нужен, чтобы партнёр могла связаться по заявке и чтобы баллы за друга начислялись только за настоящих людей. Контакт человек отдаёт сам, нажатием кнопки в Telegram.
Сможет ли партнёр менять всё сама?
Да, в админке есть направления, страны, сообщества, события, рассылки, баннеры, настройки разделов и журнал действий. Изменения не требуют выкладки кода.
Коротко о главном
Для такого продукта важнее не количество экранов, а то, что приложение не выглядит пустым и что партнёр может менять его без программиста. Галочки видимости, модерация предложений и вход без паролей закрывают это малым кодом. Проверенное и непроверенное я разделил честно: логика, доступность и боевой API прошли, живой телефон и первые люди ещё впереди.
Если вам нужен бот с закрытым каналом, мини-приложение и админка, которой управляет не программист, я соберу такой бот под вашу аудиторию. Напишите в Telegram, MAX или VK.
Что я делаю для бизнеса
Напишите одной фразой, что нужно. Отвечу, что подойдёт, сколько займёт и сколько стоит. Сообщение уже подготовлено.
- Боты в Telegram, MAX, VK
- Автоматизация процессов и CRM
- Аналитика и дашборды
- Сайты и лендинги под ключ
Разборы, кейсы и практика — без воды. Выходит регулярно, читать 3–5 минут.


