Перейти до вмісту

Проєкти02 / 07 · автоматизація контенту · 2023–2026

DNA 02

Медіабізнес веде десятки Telegram-каналів. Ця платформа веде їх за нього — збирає, чистить, переписує, планує, публікує й виставляє рахунки, без наглядача.

Техлід · архітектор · PM · devops
Одразу до інженерної частини
Простими словами

Руками це не складно — це неможливо

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

Власник один раз підключає канали й джерела, задає правила — і платформа перебирає роботу на себе: круглу добу, включно з вихідними, без людини за консоллю. Кожен клієнт навіть отримує власного брендованого бота, якого платформа створює й обслуговує сама.

Чому це справді складно. В Telegram немає офіційного API для такого. Платформа тримає парк із 61 живого акаунта на низькорівневому протоколі — і Telegram може забанити будь-який за дивну поведінку. Тож більшість інженерії тут — не «зробити фічу», а «не зламатися»: бюджети частоти, розділення відбитків, обробка банів, відновлення сесій — система лікує себе, поки власник спить.

Для інженерів

Headless-моноліт на п’ять роутів і userbot-парк, який лікує себе

200 тис. рядків Ruby у 1 100+ сервісних об’єктах і 45 таблицях, і майже два рядки тесту на кожен рядок коду.

Headless-моноліт

Ні шаблонів (views), ні JS-збірки, ні REST API — усього п’ять роутів. Уся адмінка й панель користувача — це стейт-машина всередині Telegram: 200 тис. рядків Ruby, 1 100+ сервісних об’єктів, 45 таблиць.

Два пайплайни доставки

Живе дзеркалення (слухач → клон на канал → автопост) і крапельний backfill історії джерела за курсором. Вони отримують дані різної форми, тож кожен баг захоплення перевіряється в обох.

Userbot-парк на нативному TDLib

Дві сесії на акаунт — одна читає, друга діє — усі слухачі під одним супервізором із реконсилером, що підхоплює нові акаунти без рестарту. Бюджети вступів, відбитки пристроїв на акаунт, витримка flood-wait, звірка членства.

Семантична дедуплікація й детект реклами

1536-вимірні embeddings прямо в таблиці контенту з HNSW-індексом; AI-промпти на канал збираються в рантаймі з JSONB, тож тюнінг не потребує деплою.

Інциденти, які варто прочитати

Виснаження файлових дескрипторів (951 при soft-ліміті 1 024) поклало супервізор на 11 годин → ліміти підняті, запас FD під моніторингом. Фрагментація арен glibc з’їдала ~1 ГБ → jemalloc із тюнінгом decay. 498 systemd-сервісів на бота згорнуті в один супервізор.

Гейт якості

14 000+ прикладів RSpec, майже два рядки тесту на рядок коду, чотири власні RuboCop-копи, strict loading увімкнений за замовчуванням і автоматичне AI-рев’ю кожного pull request за чеклистом із восьми пунктів.
429
деплоїв
1 245
тікетів · 6 800 год залоговано
90 %
merge-комітів
20
власних перевірок моніторингу
Про цифру охоплення: 33 млн+ — це сума підписників керованих каналів, а не унікальні люди — через платформу пройшло близько 7 млн різних Telegram-акаунтів. Наводжу обидві, бо перша лестить, а друга правдива.

Хто над цим працював · 6 учасників

Даниїл Шкоропад

техлід · архітектор · PM · 2023–2026
  • Архітектура, продуктові рішення і 90 % merge-комітів.
  • Провів міграції Python→Ruby, Rails 7.2→8.1 і PostgreSQL 16→18 особисто.

Михаїл Юн

співзасновник · продукт · 2023–2026
  • Спершу знайшов клієнтів: десятки власників каналів опитано до першого рядка коду, далі — ТЗ.
  • Ціноутворення й рекламні кампанії за зростанням клієнтів ×20 за 14 місяців.

Наталія Макаренко

бекенд · дані · 2025–2026
  • Генерація embeddings на Gemini і HNSW-індекс на 1536-вимірній колонці, у яку вона пише.
  • Фонові джоби й рутина бекапів, що працює за всім цим.

Олексій Міхно

фулстек · 2025–2026
  • Панелі всередині Telegram-стейт-машини — у продукту п’ять HTTP-роутів і жодного шаблону (views).
  • Екрани білінгу й флоу фабрики ботів під клієнта.

Олександр Шемберко

бекенд · рев’ювер · 2025–2026
  • Власні пости клієнта — створення, розклад, налаштування на канал — і сервіс бронювання реклами.
  • Меню оплати преміуму й розподіл безкоштовного та преміум-функціоналу; рев’ю 105 pull request’ів колег.

Claude

рев’ю pull request’ів · 2026
  • Автоматичне рев’ю кожного pull request за чеклистом із восьми пунктів, інлайн у дифі.
  • Тільки дорадчо. Перед мерджем усе одно потрібні два людських апрува.

Дочитали до кінця й хочете обговорити?

rubyco.in