npekerman
← Все проекты

Закрытый канал на подписке

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

Направление
Подписочный продукт
Клиент
Клиентский проект
Роль
Продукт, миграция, разработка, инфраструктура
Год
2026
Срок
август 2026 — сопровождение
Стек
TypeScript · Node.js · grammY · SQLite · Nginx · Telegram Bot API
4 интерфейса: бот, поддержка, мини-апп, дашборд
вся база подписчиков переехала из конструктора с состояниями
без кода рассылки, теги, скидки и промо — из дашборда

Задача

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

Задача — перенести учёт к себе и собрать продукт: подписка с жизненным циклом, каталог контента, управление без разработчика.

Решение

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

Результат

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

Нужен сервис подписок?

Опишите, как сейчас принимаете оплаты и выдаёте доступ к контенту. Обсудим подписки, продления и управление без ручных операций.

Следующий проект Переезд сервиса с конструктора