SaaS · аналітика

Astrina — платформа аналітики та моніторингу сайтів

Усі сайти в одному кабінеті: first-party аналітика, яку не ріжуть блокувальники, нічні SEO-перевірки з алертами й відгуки, які не можна видалити. Один скрипт, один логін.

Категорія
SaaS · аналітика
Орієнтовна вартість
від $28 000
Термін
≈ 5–6 місяців
astrina.ioAstrina
Головна сторінка проєкту — astrina.io

01Огляд проєкту

Astrina — це all-in-one платформа для всіх, хто відповідає за сайти: власників, веб-студій, агентств, розробників і SEO-спеціалістів. Її суть уміщується в один слоган — «кожен сайт, за яким ви стежите, — в одному кабінеті». Веб-аналітика, щоденний SEO-моніторинг, відгуки й репутація, публічні каталоги та рейтинги, плюс набір сервісних API — усе це живе під одним логіном і живиться від одного скрипта на сайті. Почати можна безкоштовно: тариф Free розрахований на три сайти й не вимагає банківської картки.

Продукт виріс зі спостереження, знайомого кожному, хто супроводжує більш як один сайт. Трафік живе в одному інструменті, SEO — у другому, відгуки — у третьому, і в кожного сайта — свій логін. Окремо кожен сервіс хороший, але зводити їх докупи — це та сама робота, яку ніхто не оцінював, ніхто не виставляє в рахунок, і яку хтось усе одно робить руками. Astrina замінює ці чотири інструменти й чотири логіни одним: один скрипт, один кабінет і лист уранці, коли щось просіло.

Ми спроєктували й зібрали продукт цілком — від архітектури first-party лічильника й нічного краулера до тарифної моделі, публічних каталогів, документації та трьох мовних версій (EN/RU/UK). Нижче розбираємо, яке завдання вирішує Astrina, як вона влаштована всередині та які інженерні рішення роблять її цифри чесними — зокрема те, чому лічильник переживає блокувальники реклами, а відгук не може видалити навіть власник сайта.

Окремо про контекст. Astrina — продукт екосистеми студії, а не замовлення «на сторону»: ми будували інструмент, яким користуємося самі. Сайт ostohlo.com підключено до платформи як сайт №6, і статистику він збирає через власний піддомен stats.ostohlo.com — тобто рівно за тією first-party моделлю, що продається клієнтам. Таке «поїдання власного корму» дисциплінує краще за будь-який тест-план: кожну незручність кабінету ми відчуваємо першими.

02Контекст і завдання

Стежити за сайтом «технічно» нескладно — складно робити це постійно та по всіх сайтах одразу. Коли ми розкладали завдання, назбирався цілий список болів, з якими живе кожен, хто відповідає за кілька проєктів:

  • Аналітика, якій бракує третини. Блокувальники реклами вирізають сторонні лічильники — приблизно третина аудиторії просто зникає зі звітів. Рішення ухвалюються за неповними цифрами.
  • Зоопарк інструментів і логінів. Трафік, SEO та відгуки — у трьох різних сервісах, у кожного сайта свої доступи. Зведена картина існує лише в голові або в таблиці, яку забувають оновлювати.
  • Тихі SEO-регресії. Оновлення теми мовчки ламає canonical — і ніхто про це не повідомляє. Дізнаєшся через тижні, коли трафік уже пішов і про це питає хтось інший.
  • Відгуки, яким не вірять. Рейтинг, який власник сам може підправити, нічого не вартий. А зовнішні майданчики з чесними відгуками живуть окремо від сайта та його метрик.
  • Рутина без власника. Регулярні перевірки «чи все гаразд» — робота, яку ніхто не оцінював у годинах. Вона або не робиться, або робиться на шкоду основній.

Завдання формулювалося так: зібрати платформу, де всі сайти — свої та клієнтські — видно в одній таблиці з живим трафіком і SEO-балом, а рутинне спостереження автоматизовано до стану «лист приходить сам». При цьому цифрам має бути можна вірити: і власнику, і клієнту агентства, якому ці цифри показують.

Окремий пласт завдання — чесність як продуктова властивість. Аналітика, яку ріжуть блокувальники, бреше на третину; рейтинг, який можна відредагувати, не означає нічого. Ми від самого початку вирішили, що довіру до цифр забезпечуватиме архітектура, а не обіцянки: лічильник вантажиться з домену самого клієнта, а відгуки фізично не можна ні змінити, ні видалити.

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

03Цілі проєкту

Із завдання виросли конкретні продуктові й інженерні цілі, які ми тримали в голові на всіх етапах:

  • Один скрипт, один логін. Підключення сайта — це один рядок перед закривальним тегом body. Не SDK, не тег-менеджер, не збірка — тег легший за 2 КБ, який починає звітувати з першого ж хіта.
  • First-party за побудовою. Лічильник завантажується з власного домену клієнта, тому блокувальники, що вичищають сторонню аналітику, його не чіпають. Без cross-site cookies, дані ніколи не продаються.
  • Лист замість чергування. Сайт під моніторингом переперевіряється щоночі; якщо SEO-бал упав — уранці в скриньці вже лежить лист. Власник дізнається першим, а не від клієнта.
  • Чесність як механіка. Відгуки 1–5 зірок власник не може ні відредагувати, ні видалити — лише публічно відповісти. Саме тому оцінці можна вірити.
  • API-first. Усе, що видно в кабінеті, можна забрати назовні: JSON API, CSV-експорт, MCP для AI-асистентів.
  • Низький поріг входу. Free-тариф на 3 сайти без картки й 3 безкоштовні SEO-перевірки на день на будь-якому тарифі — спробувати можна до того, як платити.
  • Три мови. Продукт повністю тримовний (EN/RU/UK) — від інтерфейсу до листів і публічних каталогів.

Як і в інших наших продуктах, ці цілі сформульовано як обмеження, а не «хотілки»: кожна відсікала невідповідні варіанти ще на етапі проєктування. Вимога first-party одразу визначила схему роздачі лічильника через домени клієнтів; вимога чесності заборонила будь-які «адмінські» правки відгуків на рівні моделі даних; а вимога «листа замість чергування» перетворила планувальник нічного перекраулу з фічі на несучу конструкцію продукту.

04Що ми зробили

Astrina збирає спостереження за сайтами в чотири модулі, які працюють від одного скрипта й одного кабінету:

Веб-аналітика

First-party лічильник легший за 2 КБ: живі візити, джерела трафіку й цілі — за цифрами, які не ріжуть блокувальники.

SEO-моніторинг

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

Відгуки й репутація

Чесні відгуки 1–5 зірок, які власник не може ні змінити, ні видалити; публічні відповіді, вбудовуваний віджет і SVG-бейдж.

Developer API та сервіси

JSON API з ключем лише в заголовку та квотою в кожній відповіді, CSV-експорт, соц-логін, hosted-хелпдески й MCP для AI-асистентів.

Поверх модулів — публічні каталоги й рейтинги (рейтинг відвідуваності, каталоги обмінників, хостингів та інші вітрини в дусі App Store), тарифна модель від Free до Business Plus і тримовний кабінет. Усе це розгорнуто як єдиний продукт на власній інфраструктурі.

Важливо, що модулі не розрізнені, а утворюють один контур даних: скрипт на сайті живить аналітику, краулер — SEO-бал, відгуки — репутацію, а публічні каталоги будуються з тих самих вимірювань, що бачить власник у кабінеті. Одна й та сама цифра трафіку показується і в приватному дашборді, і в публічному рейтингу — їй нема куди «роз'їхатися». Саме ця зв'язність відрізняє платформу від набору сервісів під спільним логотипом.

Коротко суть продукту: «Один скрипт, один логін — і всі сайти, за якими ви стежите, в одному кабінеті. Справжній трафік, щоденні SEO-перевірки, чесні відгуки й лист уранці, коли щось просіло».

05Архітектура рішення

В основі Astrina — мультитенантне ядро, навколо якого зібрані модулі. Центральна сутність — сайт: до нього прив'язані події аналітики, SEO-перевірки та їхня історія, відгуки, позиція в каталогах і квоти тарифу. Акаунт користувача — це набір сайтів, і неважливо, свої вони чи клієнтські: агентство бачить сотню проєктів у тій самій таблиці, у якій власник бачить три.

Логічно система складається з п'яти блоків: приймання подій (ендпоїнти лічильника, куди сиплються хіти з усіх підключених сайтів), краулер (перевірки за запитом і нічний перекраул з історією бала), вітрини (публічні каталоги й рейтинги, побудовані з тих самих даних), API-шар (JSON, CSV, MCP) і сповіщення (ранкові листи при падінні бала). Кожен блок відповідає за свій шматок життєвого циклу спостереження й спілкується з рештою через чіткі межі.

Особливий архітектурний наслідок випливає з first-party моделі: лічильник має завантажуватися з домену самого клієнта, а не з astrina.io. Отже, інфраструктура зобов'язана вміти обслуговувати чужі домени — приймати трафік на клієнтські піддомени, віддавати з них скрипт і приймати події. Роздача тега й приймання хітів проєктувалися під це від самого початку, а не «прикручувалися» потім: це найнавантаженіша й найпублічніша частина системи, і вона відділена від кабінету та краулера.

Під капотом — серверний стек на PHP 8.3 із MySQL, за Cloudflare (DNS, TLS, захист периметра). Квоти тарифів — кількість сайтів, глибина історії, денні ліміти перевірок та API-викликів — перевіряються кодом на кожній дії: кожна цифра на тарифній сторінці відповідає числу, яке система реально забезпечує. Це не лише чесність перед користувачем, а й захист самої платформи від перевантаження одним тенантом.

06First-party лічильник

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

Рішення — завантаження лічильника з власного домену клієнта. Блокувальники ріжуть запити до відомих аналітичних доменів; запит до піддомену самого сайта для них невідрізнимий від завантаження звичайного ресурсу. Тому тег Astrina підключається не з astrina.io, а з домену власника, і статистика збирається по всій аудиторії, а не по тій її частині, що не поставила блокувальник.

Сам тег гранично легкий і нудний — і це комплімент: менше 2 КБ, один рядок перед закривальним тегом body. Жодного SDK, тег-менеджера чи кроку збірки; лічильник починає звітувати з першого ж хіта. Для відвідувачів із вимкненим JavaScript передбачено noscript-піксель, тож навіть цей хвіст аудиторії не губиться. При цьому first-party не означає «стеження»: лічильник не використовує cross-site cookies, не будує міжсайтових профілів, а дані власника ніколи не продаються.

Модель перевірена в бою на власному сайті студії: ostohlo.com підключено до Astrina як сайт №6, і лічильник він вантажить із піддомену stats.ostohlo.com — легкий тег a.js плюс r.js для запису сесій. Це продакшн-доказ схеми: той самий CNAME-підхід, та сама роздача з клієнтського домену, ті самі цифри в тому самому кабінеті, що й у будь-якого користувача платформи.

Ключова думка: повнота даних тут — не «фіча зверху», а форма самої архітектури. Лічильник, який вантажиться з домену власника, нічим заблокувати списком сторонніх доменів — це сильніше за будь-які хитрощі на боці скрипта.

07Ключові можливості

Розберемо те, що робить Astrina не «ще одним лічильником», а платформою, яка закриває спостереження за сайтом цілком.

Жива аналітика

Живий перегляд відвідувачів, джерела трафіку й цілі — базовий набір, але зібраний за first-party цифрами. У кабінеті видно, що відбувається на сайті просто зараз, звідки приходять люди й чи доходять вони до цільових дій. На старших тарифах додаються стрічка живих візитів і запис сесій — можна переглянути реальний візит, а не гадати за цифрами.

SEO-перевірка за хвилину

Повний технічний аудит сайта займає менше хвилини — до 25 сторінок за прохід. Три перевірки на день безкоштовні на будь-якому тарифі, включно з Free: продукт дає помацати ядро без грошей. Кожна знайдена проблема супроводжується готовим промптом для AI-асистента — опис бага можна скопіювати і вставити в улюблений інструмент, який запропонує фікс.

Відгуки, віджет і SVG-бейдж

Модуль репутації збирає відгуки 1–5 зірок, на які власник може публічно відповідати, але не може їх редагувати чи видаляти. Рейтинг вбудовується на сайт віджетом, а SVG-бейдж — у README, футер чи підпис. Докладніше про те, чому незмінюваність — це фіча, нижче в окремому розділі.

Каталоги й рейтинги

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

Сервісні API

Окрім основних модулів, платформа віддає прикладні інструменти: phone intelligence API для перевірки телефонних номерів і перевірку паролів за базами витоків. Це ті самі дані, що живлять каталоги, — доступні програмно.

Вхід через Astrina та хелпдески

«Login with Astrina» — готовий соц-логін, який налаштовується один раз і знімає з власника сайта зберігання паролів. А hosted-хелпдески дають кожному проєкту готову сторінку підтримки на кшталт astrina.io/support/<домен> — без розгортання власної тікет-системи.

MCP для AI-асистентів

Дані платформи доступні AI-асистентам через MCP: асистент може сам запросити статистику чи результати перевірки й працювати з ними в діалозі. API, задуманий для людей і скриптів, виявився готовим і до агентів.

08Всередині SEO-моніторингу

Разова перевірка сайта — річ корисна, але справжня цінність моніторингу в регулярності. Зламаний canonical не оголошує про себе; він просто тихо живе в коді, доки позиції не поїдуть. Тому серце модуля — не сам аудит, а нічний планувальник.

Працює це так. Разова перевірка доступна всім: повний технічний чек до 25 сторінок менш ніж за хвилину, три безкоштовні проходи на день на будь-якому тарифі. Але сайт, поставлений під моніторинг, платформа переперевіряє щоночі сама — без запиту, без кнопки, без нагадувань. Результат кожної ночі лягає в історію: SEO-бал перетворюється з моментального знімка на криву, за якою видно, коли саме щось зламалося і що було до цього.

Третій елемент — ранковий лист. Якщо нічний прохід зафіксував падіння бала, лист приходить уранці того самого дня. Сенс цього рішення глибший, ніж здається: поштова скринька стає інтерфейсом моніторингу. Власнику не потрібно заходити в кабінет «про всяк випадок» — кабінет сам приходить до нього, причому рівно тоді, коли є що сказати. Тиша в скриньці — теж інформація: отже, все гаразд.

Кількість сайтів на нічному перекраулі — одна з осей тарифної сітки: 3 сайти на Pro, 25 на Business, 100 на Business Plus. Це чесне відображення собівартості: нічний краулінг — найресурсомісткіша частина платформи, і його квоти, як і всі інші, перевіряються кодом.

Перевірка за хвилину

Повний технічний аудит до 25 сторінок — швидше, ніж завариться кава.

Нічний перекраул

Сайти під моніторингом переперевіряються щоночі; історія бала накопичується сама.

Лист уранці

Бал упав уночі — лист у скриньці вранці. Власник дізнається першим, а не від клієнта.

09Невидалювані відгуки

Модуль репутації побудований навколо одного жорсткого правила: власник сайта не може ні відредагувати, ні видалити відгук. Ні за гроші, ні через підтримку, ні «як виняток». Єдиний доступний йому інструмент — публічна відповідь поряд із відгуком.

Це рішення продуктово контрінтуїтивне — здавалося б, платному клієнту варто дати контроль. Але рейтинг, який власник може причесати, не означає нічого: це оцінка, яку він сам собі виставив. Незмінюваність — єдина причина, з якої цифрі біля зірочок узагалі можна вірити. Ми свідомо заклали це на рівні моделі даних, а не політики: у системі просто немає операції «змінити чужий відгук», і жодна роль її не отримує.

При цьому чесність працює в обидва боки. Публічна відповідь дає власнику змогу розібрати спірну ситуацію на очах у всіх — а вдумлива відповідь на критичний відгук часто переконує сильніше за п'ятірку. Шкала 1–5 зірок проста і звична, а зібраний рейтинг можна винести на власний сайт вбудовуваним віджетом або легким SVG-бейджем — оцінка перестає жити лише на сторінці каталогу й починає працювати там, де ухвалюються рішення.

Чому це важливо: «рейтинг, який ви не написали собі самі» — рідкість в інтернеті, де відгуками торгують. Незмінюваність перетворює оцінку з декорації на валюту довіри — й водночас дисциплінує власника працювати з претензіями публічно.

Astrina
Інтерфейс проєкту — Astrina

10Приватність і безпека

Аналітична платформа за визначенням працює з чутливими даними — чужим трафіком. Тому приватність в Astrina — не розділ користувацької угоди, а набір архітектурних рішень. Лічильник не ставить cross-site cookies і не будує міжсайтових профілів: first-party модель означає, що дані кожного сайта живуть у контексті цього сайта. І принципова обіцянка платформи — дані власників ніколи не продаються: бізнес-модель Astrina — підписка, а не торгівля аудиторіями.

Другий пласт — безпека API. Ключ приймається лише в HTTP-заголовку й ніколи в URL. Це усвідомлене рішення: параметри URL осідають у логах серверів, проксі та браузерній історії, і ключ, одного разу переданий рядком запиту, варто вважати скомпрометованим. Заголовки в логи не потрапляють — так один рядок специфікації закриває цілий клас витоків. Для користувачів та сама дисципліна обертається сервісом: перевірка паролів за базами витоків вбудована в платформу.

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

11Мультисайтовий кабінет

Головний екран Astrina — таблиця всіх сайтів акаунта: відвідувачі за 30 днів, тренд, SEO-бал, живий статус. Це свідомий вибір точки входу: продукт для тих, хто стежить за багатьма сайтами, має починатися з відповіді на питання «чи все в мене гаразд — по всіх одразу». Один погляд на таблицю замінює ранковий обхід п'яти сервісів.

Тарифна сітка побудована навколо реальних осей вартості — кількості сайтів, глибини історії та обсягу автоматики. Free ($0) — 3 сайти, живий перегляд, джерела й цілі, 3 SEO-перевірки на день, відгуки й віджет рейтингу, 33 дні історії. Pro ($19/30 днів) — 25 сайтів, 180 днів історії, 3 сайти на нічному перекраулі з алертами, CSV-експорт і стрічка живих візитів, 5 000 API-викликів на день. Business ($59) — 100 сайтів, рік історії, 25 сайтів на перекраулі, запис сесій і 25 000 викликів. Business Plus ($99) — сайти без ліміту, 730 днів історії, 100 сайтів на перекраулі, hosted-хелпдеск для власних користувачів і 100 000 викликів на день.

Оплата влаштована по-дорослому й по-екосистемному: тарифи списуються з балансу акаунта, який поповнюється карткою або криптовалютою через Payora — інший продукт нашої екосистеми, про який у нас є окремий кейс. Автопродовження за замовчуванням вимкнене: ніщо не списується сюрпризом, продовження вмикає сам користувач. Для SaaS це рідкісна, майже демонстративна чесність — і вона з того самого ряду, що й невидалювані відгуки.

Кожна цифра з цього розділу — не маркетинговий текст, а значення з конфігурації, яке перевіряє код: створення 26-го сайта на Pro не «не рекомендується», а не виконується. Ми тримаємося правила «сторінка тарифів — це документація до лімітів», і воно сильно спрощує життя і підтримці, і користувачам.

12Developer API та інтеграції

Усе, що платформа показує в кабінеті, вона вміє віддавати назовні. Developer API — це JSON із передбачуваними відповідями, і в його дизайні є два рішення, які ми вважаємо взірцевими для будь-якого API.

Перше — ключ лише в заголовку. API не приймає ключ у рядку запиту взагалі: URL із ключем потрапляє в логи веб-серверів, проксі, історію браузера й реферери, і звідти витікає. Заголовок — ні. Правильна поведінка тут не «рекомендується документацією», а єдино можлива. Друге — залишок квоти в кожній відповіді. Клієнту не потрібно ні окремого ендпоїнта, ні підрахунку на своєму боці: кожна відповідь повідомляє, скільки викликів залишилося. Скрипт може сам пригальмувати перед лімітом, а не з'ясовувати його досягнення за помилкою 429.

Окрім JSON, дані вивантажуються в CSV — для звітів, таблиць і всього, що живе поза кодом. Через MCP із тими самими даними працюють AI-асистенти: агент запитує статистику чи результати перевірки просто в діалозі. «Login with Astrina» закриває соц-логін для сайтів на платформі, а hosted-хелпдески (astrina.io/support/<домен>) — підтримку користувачів без власної тікет-системи. Платформа дружить і з зовнішнім світом: Google Search Console, Google Analytics 4, Bing Webmaster та IndexNow — у списку підтримуваних інтеграцій.

Нарешті, публічні каталоги — теж свого роду інтеграція, тільки з відкритим інтернетом. Рейтинг відвідуваності будується з тих самих 30-денних вимірювань лічильника, що бачить власник у кабінеті; каталоги обмінників і хостингів — з тих самих даних і відгуків. Платформа рахує в усіх на очах, і будь-хто може звірити її роботу без акаунта.

13Технологічний стек та інфраструктура

Під Astrina ми зібрали окреме, ізольоване середовище зі своїми доменами, політиками й планувальником. Для платформи, що обслуговує чужі сайти, охайність середовища — частина продукту.

PHP 8.3MySQLREST APIFirst-party аналітикаSEO-краулерEmail-алертиCloudflareМультимовність
  • Бекенд — PHP 8.3: приймання подій лічильника, мультитенантне ядро, кабінет, API-шар і логіка квот.
  • Дані — MySQL: події аналітики, історія SEO-балів, відгуки, каталоги й тарифні ліміти в одній узгодженій моделі.
  • Краулер — модуль перевірок: аудит за запитом до 25 сторінок і нічний перекраул сайтів під моніторингом із накопиченням історії.
  • Доставка лічильника — first-party роздача тега з доменів клієнтів (CNAME-модель), noscript-піксель як fallback.
  • Сповіщення — email-алерти: лист уранці в день падіння бала.
  • Інфраструктура — Cloudflare (DNS, TLS, захист периметра) та ізольоване оточення з валідними сертифікатами.

Вибір PHP 8.3 і MySQL прагматичний: зрілий, швидкий і передбачуваний стек, на якому в одному оточенні живуть і високочастотне приймання хітів, і краулер, і кабінет, і API. First-party роздача додає стеку незвичну вимогу — обслуговувати чужі домени як свої, — і саме вона визначила конфігурацію периметра. Cloudflare закриває DNS і TLS, а все середовище спроєктовано так, щоб найнавантаженіша частина (приймання подій) не конкурувала за ресурси з найважчою (нічний краулінг): у них різні профілі навантаження й різний час піків.

14Дизайн і UX

Інструмент для щоденної рутини продає спокій, тому інтерфейси Astrina ми робили щільними й тихими. Головний екран — таблиця сайтів із трендом і SEO-балом — відповідає на головне питання користувача за секунду. Жодних вітальних банерів і «інсайтів тижня»: людина, у якої сотня клієнтських сайтів, приходить не роздивлятися, а перевіряти.

Окрема турбота — перші п'ять хвилин. Шлях від реєстрації до першого відвідувача на екрані свідомо короткий: вставив рядок тега — побачив живий хіт. Миттєвий зворотний зв'язок тут працює як онбординг: не тури інтерфейсом, а власний трафік, що з'явився на очах. Той самий принцип у SEO-модулі: перша перевірка безкоштовна, займає менше хвилини й закінчується конкретним списком проблем — із готовим AI-промптом біля кожної.

Публічний бік платформи — каталоги й рейтинги — спроєктовано як самостійну вітрину: відкриту, індексовану, робочу без акаунта. Це і маркетингова поверхня, і демонстрація методики: платформа не боїться показувати, як вона рахує. Нарешті, весь продукт тримовний — EN, RU та UK рівноправні від інтерфейсу й листів до публічних сторінок, з коректними hreflang і локалізованими URL. Для продукту, що живе в кількох мовних середовищах одразу, це питання не перекладу, а архітектури контенту — і воно закладалося з першого дня, а не «локалізовувалося» потім.

15Як ми працювали

Проєкт вели послідовними етапами з демонстрацією результату на кожному кроці:

  • Дослідження. Розібрали сценарії власників, студій та агентств, порахували болі «чотирьох інструментів» і зафіксували модель «один скрипт → один кабінет → лист уранці».
  • Архітектура. Спроєктували мультитенантне ядро, first-party схему роздачі лічильника, модель квот і контракт API — ключ у заголовку й квота у відповіді були у специфікації до першого рядка коду.
  • Розробка модулів. Зібрали приймання подій та аналітику, краулер із нічним планувальником та історією, модуль відгуків із незмінюваністю на рівні моделі, каталоги й кабінет.
  • Обкатка на собі. Підключили власні проєкти — ostohlo.com живе на платформі як сайт №6 із лічильником на stats.ostohlo.com — і місяцями користувалися продуктом до того, як кликати інших.
  • Запуск. Тарифи з оплатою через Payora, три мови, публічні каталоги, документація та MCP.

Порядок не випадковий: спершу ми фіксували контракти — схему квот, формат API, правило незмінюваності відгуків, — і лише потім будували навколо них реалізацію. Це дало змогу вести модулі майже паралельно: в аналітики, краулера й відгуків спільне ядро, але незалежні життєві цикли. А правило «спершу користуємося самі» відпрацювало як безперервне приймальне тестування: незручність, яку помічаєш щоранку у власному кабінеті, лагодиться швидше за будь-який тікет.

16Результат

Вийшов не «ще один лічильник», а платформа, яка замінює собою набір щоденних інструментів вебмайстра — і якою ми користуємося самі.

<2 КБ
вага first-party лічильника на сайті клієнта
4→1
інструментів і логінів замість чотирьох
3/день
безкоштовних SEO-перевірок на будь-якому тарифі
  • Сайт підключається за п'ять хвилин: один рядок тега — і перший відвідувач уже на екрані.
  • Аналітика бачить усю аудиторію, а не дві третини: first-party лічильник не ріжеться блокувальниками.
  • SEO-регресії перестали бути тихими: нічний перекраул, історія бала й лист уранці в день падіння.
  • Рейтингу можна вірити: відгуки фізично не можна ні відредагувати, ні видалити — лише публічно відповісти.
  • Дані не замкнені: JSON API з ключем у заголовку та квотою в кожній відповіді, CSV, MCP для AI-асистентів.
  • Продукт працює трьома мовами й перевірений у продакшні на сайтах власної екосистеми.

Але головний результат — не в окремих цифрах, а в зміні моделі. Раніше спостереження за сайтами було набором вкладок, логінів і «треба не забути перевірити»; тепер це одна таблиця й поштова скринька, у яку платформа пише сама — рівно тоді, коли є що сказати. Рутина, яку ніхто не оцінював у годинах, перестала існувати як ручна робота.

17Висновки

Astrina — приклад того, як довіра до продукту проєктується, а не декларується. Найцінніше тут не список модулів, а три рішення, на яких усе тримається: лічильник, який вантажиться з домену клієнта й тому бачить усю аудиторію; відгуки, які не можна видалити й тому вони щось означають; API, у якому ключ фізично не може опинитися в лозі. Кожне з них ухвалено один раз, на рівні архітектури, — і далі чесність продукту не залежить від чиєїсь дисципліни.

Для нас це був проєкт на стику аналітики, краулінгу й мультитенантного SaaS — той тип завдань, де продуктове мислення та інженерна дисципліна потрібні одночасно. Якщо вам потрібна платформа з кабінетом, тарифами й API, аналітичний сервіс або продукт, що обслуговує багатьох клієнтів на одній інфраструктурі, — ми вміємо доводити таке до запуску.

І ще один висновок, радше методологічний. Найкращий тест продукту — власна залежність від нього: ми підключили до Astrina свої сайти раніше за чужі, і щоранку дивимося на ті самі листи й ті самі таблиці, що й наші користувачі. Продукт, яким команда живе сама, неможливо тихо закинути — і це, мабуть, найчесніша гарантія якості з усіх можливих.

Потрібен схожий продукт?

Розкажіть про задачу — запропонуємо архітектуру й оцінку. Безкоштовна консультація.

На які запити відповідає ця сторінка

розробка платформи веб-аналітики на замовлення, створити сервіс аналітики сайтів під ключ, first-party аналітика що це, аналітика яку не блокують блокувальники реклами, аналітика сайту без cookie, моніторинг сайтів в одному кабінеті, сервіс моніторингу кількох сайтів, автоматична seo перевірка сайту за розкладом, seo моніторинг з алертами, як відстежувати помилки сайту автоматично, сервіс відгуків для сайту із захистом від видалення, відгуки які не можна видалити як реалізувати, віджет відгуків для сайту, один скрипт аналітики для всіх сайтів, як працює серверна аналітика, легкий лічильник відвідуваності сайту, saas для моніторингу сайтів розробка, astrina аналітика, astrina відгуки, astrina платформа моніторингу сайтів.