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-вызовов — проверяются кодом на каждом действии: каждая цифра на тарифной странице соответствует числу, которое реально enforce'ится системой. Это не только честность перед пользователем, но и защита самой платформы от перегрузки одним тенантом.
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-бейджем — оценка перестаёт жить только на странице каталога и начинает работать там, где принимаются решения.
Почему это важно: «рейтинг, который вы не написали себе сами» — редкость в интернете, где отзывами торгуют. Неизменяемость превращает оценку из декорации в валюту доверия — и одновременно дисциплинирует владельца работать с претензиями публично.

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.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Результат
Получился не «ещё один счётчик», а платформа, которая заменяет собой набор ежедневных инструментов вебмастера — и которой мы пользуемся сами.
- Сайт подключается за пять минут: одна строка тега — и первый посетитель уже на экране.
- Аналитика видит всю аудиторию, а не две трети: first-party счётчик не режется блокировщиками.
- SEO-регрессии перестали быть тихими: ночной перекраул, история балла и письмо утром в день падения.
- Рейтингу можно верить: отзывы физически нельзя ни отредактировать, ни удалить — только публично ответить.
- Данные не заперты: JSON API с ключом в заголовке и квотой в каждом ответе, CSV, MCP для AI-ассистентов.
- Продукт работает на трёх языках и проверен в продакшне на сайтах собственной экосистемы.
Но главный результат — не в отдельных цифрах, а в смене модели. Раньше наблюдение за сайтами было набором вкладок, логинов и «надо не забыть проверить»; теперь это одна таблица и почтовый ящик, в который платформа пишет сама — ровно тогда, когда есть что сказать. Рутина, которую никто не оценивал в часах, перестала существовать как ручная работа.
17Выводы
Astrina — пример того, как доверие к продукту проектируется, а не декларируется. Самое ценное здесь не список модулей, а три решения, на которых всё держится: счётчик, который грузится с домена клиента и потому видит всю аудиторию; отзывы, которые нельзя удалить и потому что-то значат; API, в котором ключ физически не может оказаться в логе. Каждое из них принято один раз, на уровне архитектуры, — и дальше честность продукта не зависит от чьей-то дисциплины.
Для нас это был проект на стыке аналитики, краулинга и мультитенантного SaaS — тот тип задач, где продуктовое мышление и инженерная дисциплина нужны одновременно. Если вам нужна платформа с кабинетом, тарифами и API, аналитический сервис или продукт, обслуживающий множество клиентов на одной инфраструктуре, — мы умеем доводить такое до запуска.
И ещё один вывод, скорее методологический. Лучший тест продукта — собственная зависимость от него: мы подключили к Astrina свои сайты раньше, чем чужие, и каждое утро смотрим на те же письма и те же таблицы, что и наши пользователи. Продукт, которым команда живёт сама, невозможно тихо забросить — и это, пожалуй, самая честная гарантия качества из всех возможных.
