WRT.agency
← Назад в портфолио

RelokantHub — автоматизированное медиа для регулируемой ниши

relokanthub.com · Соло-проект: архитектура, разработка, юридический контур · 2026
RelokantHub — автоматизированное медиа для регулируемой ниши

Расширенный кейс

Задача

Мигранту в Польше нужна одна вещь: вовремя узнать, что изменилось в законе, и что теперь делать с документами. Информация существует — она разбросана по правительственным порталам на юридическом польском, публикуется без анонса и не переводится. Существующие «сообщества переселенцев» закрывают спрос слухами в чатах.

Отдельное ограничение: аудитория политически уязвима. Для части читателей сам факт профилирования — риск. Это исключает стандартный набор медиа-монетизации (поведенческий трекинг, ретаргетинг, обмен данными с партнёрами) и делает приватность не «фичей», а условием существования продукта.

Решение

Платформа из четырёх контуров:

1. Контент-машина. Восемь автоматизированных сценариев собирают публичные первоисточники (реестр законодательных актов, ленты ведомств, миграционные новости), дедуплицируют по хэшу содержимого, оценивают релевантность, генерируют черновик с классификацией по рубрике и параметрической обложкой — и отправляют редактору в Telegram двумя кнопками. Approve/reject идемпотентны, публикация триггерит инвалидацию кэша. Ни один материал не публикуется автоматически.

main page

2. Справочник законов. Отдельная сущность с собственным конвейером черновиков: правовая рубрикация, статус актуальности, дата вступления, ссылка на официальную публикацию. Юридический контент бесплатен всегда — это ядро миссии, а не воронка.

3. Личный кабинет. Дедлайны по типам документов (тип и дата — без сканов и номеров), календарь с собственными событиями, закладки, уведомления в Telegram с пороговыми напоминаниями и дайджестом, чек-листы процедур, самоудаление аккаунта каскадом.

user flow

4. Рекрутинг с приватностью на первом месте. Вакансии от прямых работодателей с обязательной юридической верификацией перед публикацией. Анкета кандидата разделена на публичную часть (навыки, годы опыта, грейд, регион) и закрытую (имя, контакты, работодатели), которая раскрывается только через явный экран согласия — в обе стороны инициативы. Матчинг работает на векторных эмбеддингах навыков и по построению является рекомендацией, а не фильтром доступа: алгоритм не может отсеять кандидата.

Инженерные решения, на которые стоит смотреть

Человек в контуре как архитектура, а не как оговорка. Генеративный контур физически не имеет прав на публикацию: сервисная роль базы видит только контентные таблицы и вставляет черновики со статусом «на ревью». Публикующий флаг ей недоступен на уровне грантов. Это не политика — это ACL.

Три независимые границы для персональных данных. Разделение прав на уровне ролей базы (у каждого контура — свой пул соединений и свой набор грантов), row-level security с параметрами сессии, и прикладное шифрование чувствительных полей. Раскрытие персональных данных выполняется через функции с фиксированным владельцем, где проверка согласия живёт внутри тела функции — вызывающий код не может её обойти, даже свой собственный.

Аналитика без слежки. Логи согласий анонимны by design: идентификатор согласия, версия политики, язык — без IP, User-Agent, email и связи с аккаунтом. Внешний сессионный аналитик загружается только при явном согласии и только на белом списке публичных маршрутов; кабинет и админка не трекаются никогда, default-deny.

Инфраструктура одного сервера, которая переживает потерю сервера. Ежедневные шифрованные дампы уходят в объектное хранилище другого провайдера с асимметричным шифрованием (приватный ключ офлайн) и ротацией на трёх горизонтах. Отдельно собран артефакт восстановления: инструкция и скрипты, проверенные посторонним человеком, который поднял систему с нуля, не имея доступа к автору.

Дисциплина изменений. Дамп перед структурной миграцией, идемпотентные миграции, откат отдельной секцией, патчи с проверкой уникальности якорей и atomic write, бэкап файлов с парной md5-верификацией, smoke-проверка после каждого деплоя. Один инженер, ноль потерянных данных, ноль незапланированного простоя по вине релиза.

Аудиты. Инфраструктурный аудит по семи слоям и отдельный аудит модуля персональных данных по пяти слоям — оба без критических находок. Доступность (a11y) 100, канонические URL, sitemap/robots, приватные маршруты закрыты от индексации, двухслойная санитизация HTML на сохранении и рендере.

Юридический контур как часть продукта

Автор — юрист, и это встроено в реализацию, а не приложено декларацией:

  • парсинг только публичных лент, никогда за авторизацией; robots.txt уважается;
  • сбор персональных данных минимизирован до типа документа и даты — сканы и номера не хранятся вообще;
  • трёхъязычные пользовательские соглашения с версионированием и повторным подтверждением при изменении;
  • политика приватности, редакционная политика, маркировка ИИ-сгенерированного и партнёрского контента;
  • честная оговорка об отзыве согласия: архитектура защищает то, что может защитить, и не даёт ложных обещаний про уже выгруженные данные.

Для регулируемой тематики это и есть основная сложность. Написать агрегатор новостей умеет каждый; провести его через RODO, авторское право на первоисточники и требования к достоверности юридической информации — нет.

Стек

Next.js 15 (App Router, standalone), TypeScript, Tailwind с токенами тем (светлая/тёмная), Drizzle ORM, PostgreSQL 15 + pgvector/pg_trgm/pgcrypto, n8n, Docker Compose, Cloudflare Zero Trust Tunnel, OpenAI (генерация и эмбеддинги), транзакционная почта, Telegram Bot API, шифрованные офсайт-бэкапы в объектном хранилище.

Публично наружу не смотрит ни один порт, кроме туннеля. Внутренние маршруты закрыты Bearer-токеном и отвечают 404 при несовпадении — fail-closed вместо подсказки.

Роль

Всё: продуктовое решение, архитектура, схема базы, бэкенд, фронтенд, автоматизация, инфраструктура, безопасность, юридические документы, редакционная политика, дизайн-система.

Что из этого воспроизводимо для заказчика

Проект собран как референс сервисного предложения: автоматизированная справочная медиа-платформа для регулируемой ниши под ключ. Переносимая часть — не текст про мигрантов, а каркас: конвейер первоисточник → ИИ-черновик → человек → публикация; юридически чистый парсинг; RODO-контур с изоляцией персональных данных; проверенная схема восстановления. Ниша меняется (комплаенс-радары, грантовые радары, отзывы регуляторов, отраслевые уведомления) — каркас остаётся.