Огляд
Малому бізнесу, який запускає рекламу в Instagram чи Facebook, потрібна посадкова сторінка під трафік — сьогодні, а не за два тижні. У бʼюті-майстра, репетитора, психолога чи продавця одного товару зазвичай немає бюджету на дизайнера й терпіння на конструктор із «блоками», а заявки губляться в директі.
GetLanding (getlanding.online) — наша відповідь на це: self-serve SaaS, у якому власник описує бізнес звичайними словами, додає кілька фото й отримує готовий лендінг — тексти, дизайн, SEO-метадані та форму заявок, — згенерований LLM за хвилини. Сторінка публікується на субдомені платформи або на власному домені клієнта з HTTPS «з коробки», а кожна заявка потрапляє у вбудовану CRM зі сповіщеннями на email і в Telegram.
На відміну від клієнтських проєктів, GetLanding — продукт, який ми самі володіємо й обслуговуємо: один кодовий репозиторій, реальні користувачі, реальний рекламний трафік і прямий зворотний звʼязок між тим, що ми випустили ввечері, і тим, як конвертують кампанії наступного ранку.

Що робить продукт

- Опис. Користувач вводить назву, slug і вільний текстовий опис, завантажує до пʼяти зображень (растр конвертується у WebP на сервері). Інтерфейс доступний українською та англійською.
- Генерація. Мультимодальний промпт (текст + зображення) іде в OpenAI; відповідь розбирається в один самодостатній HTML-файл зі структурою, текстами, дизайном, SEO-метаданими та динамічною схемою форми заявок. Генерація асинхронна, інтерфейс опитує статус, а з балансу списується лише за успішний результат.
- Доопрацювання. Над тим самим HTML працюють три редактори: AI-редактор, який приймає інструкції природною мовою і змінює сторінку через цикл викликів інструментів; візуальний редактор, де будь-який текстовий блок на живій сторінці редагується кліком; і звичайний редактор коду. Кожен перезапис зберігає попередній стан в історію версій із безкоштовним відкатом.
- Публікація. Один клік — і сторінка доступна за адресою
<slug>.getlanding.onlineабо на власному домені клієнта з автоматично виписаним сертифікатом. Режим субдомену можна увімкнути, вимкнути або перенаправити на власний домен. - Збір заявок. Сабміти потрапляють у вбудовану CRM зі статусами (нова / у роботі / виграна / програна), сповіщення йдуть на email і в Telegram, є експорт у CSV/XLSX, атрибуція UTM за першим і останнім дотиком і доставка в зовнішню CRM SalesDrive.
Монетизація — баланс pay-as-you-go у гривнях, а не жорстка абонплата: бонус за реєстрацію покриває перший лендінг, генерація й AI-правки списуються за дію, а кожен активний лендінг платить невелику добову плату. Баланс поповнюється карткою або регулярним платежем через Mono Acquiring; підтримуються промокоди.


Наша роль
Beehive Logic спроєктувала, побудувала й обслуговує GetLanding від початку до кінця: продукт, бекенд, інтерфейс, білінг, інфраструктуру та маркетинговий сайт. Перший MVP-коміт датований квітнем 2026 року; платформа обслуговує реальних користувачів і платний трафік із весни 2026 року й розвивається безперервно.
Увесь продукт — один Go-моноліт (близько 14 тисяч рядків Go у 54 файлах і 34 серверні шаблони), свідомо утримуваний простим: статичний бінарник, html/template для SSR, PostgreSQL як єдине сховище, деплой через Docker Compose.
Інженерні особливості

Один бінарник, три типи трафіку
Той самий процес обслуговує портал (app.getlanding.online), десятки опублікованих лендінгів на субдоменах пулу та довільні власні домени клієнтів. Middleware маршрутизації за хостом стоїть перед усіма маршрутами: хост порталу йде в застосунок; будь-який інший хост шукається як активний лендінг за субдоменом чи власним доменом, і його HTML віддається просто з PostgreSQL. Статика, завантажені файли й сабміти форм проходять до застосунку незалежно від хоста — інакше згенеровані сторінки ламалися б.
HTTPS для доменів, які нам не належать
Клієнт спрямовує домен на платформу — і сертифікат Let’s Encrypt виписується автоматично через ACME (autocert). Стан сертифіката — очікує, виписано, помилка — сканується кожні 30 секунд і показується в інтерфейсі. Ліміти Let’s Encrypt (50 сертифікатів на зареєстрований домен за тиждень) — жорстке бізнес-обмеження, тому пул доменів платформи керується явно й розширюється конфігурацією.
LLM як ненадійний і платний ресурс
Генерація недетермінована, тарифікується токенами й може обірватися на середині. Система побудована з урахуванням цього:
- кожен виклик OpenAI записується в таблицю споживання токенів і покроковий журнал генерації, доступний адмінам;
- задачі, що зависли в
generating/editingпісля краху чи деплою, відновлюються на старті; - кожна AI-, візуальна чи ручна правка зберігає попередній HTML і схему форми в історію версій (останні 10 станів, конфігурується) з безкоштовним і скасовуваним відкатом;
- кошти списуються лише за успішний результат — невдала генерація чи повторна спроба нічого не коштує.
AI-редактор реалізований як цикл викликів інструментів: модель може змінювати сторінку лише через update_html, а окремими інструментами читає й змінює схему форми заявок, каталог товарів і зображення лендінгу — тож запит «зроби, щоб форма запитувала телефон» змінює реальну конфігурацію форми, а не лише розмітку.



Гроші як окрема підсистема
Усі зміни балансу проходять через один пакет (balance.Credit / balance.Debit) і зберігаються цілими копійками — жодних float поруч із грошима. Кожна зміна створює рядок транзакції, тож історія користувача, коригування адміна, промокоди й повернення (наприклад, при скасуванні передачі лендінгу) повністю аудитовані. Mono Acquiring обробляє разові поповнення та регулярні платежі; воркер звірки кожні пʼять хвилин порівнює стан підписок із Mono й добирає платежі, підтверджені, поки застосунок був недоступний. У вересні 2026 року внутрішню валюту «поінти» переведено в гривні однією ідемпотентною міграцією даних без жодних дій з боку користувачів.
Фонові воркери як частина бізнес-моделі
Добова плата за активні лендінги, звірка підписок, outbox доставки заявок у SalesDrive з ретраями, Telegram-бот на long-polling і сканер сертифікатів — усе це воркери-горутини в тому самому бінарнику. Graceful shutdown скасовує активні генерації, зупиняє воркери й дренажить HTTP-зʼєднання за 25 секунд, тож деплої не втрачають заявок і не залишають напівсписаних задач.
Гарантована доставка заявок
Заявка не має зникнути через те, що чужий API полежав пʼять хвилин. Сабміти спершу пишуться в базу, потім передаються в зовнішню CRM через outbox із ретраями; сповіщення власнику йдуть паралельно на email (SMTP) і в Telegram.
Дешева інтернаціоналізація
Портал і всі листи двомовні (українська за замовчуванням, англійська); мова обирається при реєстрації та зберігається в акаунті. Нова мова — один файл словника; згенеровані лендінги й адмін-панель не зачіпаються.

Технологічний стек
| Шар | Технологія |
|---|---|
| Мова | Go 1.23, один статичний бінарник (CGO_ENABLED=0) |
| HTTP-фреймворк | Echo v4, middleware маршрутизації за хостом |
| Рендеринг UI | Серверний html/template, словники i18n (uk / en) |
| База даних | PostgreSQL через GORM, AutoMigrate + ідемпотентні міграції даних |
| Автентифікація | Email + bcrypt, JWT у cookie, верифікація email, скидання пароля |
| AI | OpenAI Go SDK (GPT-4o): мультимодальна генерація, редагування через виклики інструментів, облік токенів |
| Медіа | Серверна конвертація завантажень у WebP (nativewebp), відео та SVG — як є |
| TLS | Let’s Encrypt через ACME autocert, сканер стану сертифікатів |
| Платежі | Mono Acquiring — разові поповнення, регулярні платежі, webhook + звірка |
| Інтеграції | CRM SalesDrive (outbox із ретраями), Telegram Bot API, SMTP, маркер конверсії Google Analytics 4 |
| Експорт | CSV і XLSX без зовнішніх бібліотек |
| Інфраструктура | Docker Compose (app + postgres), graceful shutdown |
| Маркетинговий сайт | Hugo + Tailwind CSS на Cloudflare Pages, живі ціни та статистика з публічних JSON-ендпоінтів |
Результат
- У продакшені з весни 2026 року: обслуговує український малий бізнес і маркетингові агенції, які роблять лендінги своїм клієнтам.
- Понад 140 лендінгів згенеровано на платформі станом на вересень 2026 року (число публікується наживо через публічний ендпоінт статистики й показується на маркетинговому сайті).
- Повний self-serve цикл — генерація, редагування, хостинг із HTTPS, CRM заявок і білінг — працює в одному Go-бінарнику без зовнішнього хостингу чи сервісу форм.
- Регулярні платежі, двомовний портал, історія версій, візуальний редактор і передача лендінгів між акаунтами вийшли до реальних користувачів за перші пʼять місяців.
- GetLanding — також наш полігон для продуктів на LLM: облік токенів, відновлення задач, редактори на викликах інструментів і списання лише за успішний результат — патерни, які ми тепер переносимо в клієнтські проєкти.