Skip to content

Hub Design Corporation

Назначение

Основное направление выручки: разработка сайтов, CRM, SaaS, интеграции.

Статус

  • Статус: приоритет №1.
  • Цель: сделать Hub главным каналом лидогенерации и продаж услуг разработки.

Технический контур

  • Репозиторий: /home/admin/workspace/hub
  • Dev: dev.hub.designcorp.eu -> 127.0.0.1:3003
  • Prod: hub.designcorp.eu -> 127.0.0.1:3002
  • Dev runtime: hub-dev.service (Next.js dev server на 127.0.0.1:3003)
  • Prod runtime: docker compose в /opt/designcorp/hub/prod

Админ-доступ HUB (Leads)

  • Prod login: https://hub.designcorp.eu/ru/admin/login
  • Dev login: https://dev.hub.designcorp.eu/ru/admin/login
  • После логина рабочая страница: /ru/admin/leads (и локализованные аналоги).

Модель авторизации (актуальная)

  • Вход только через email+password (owner/admin), без query ?token=....
  • Сессия хранится в httpOnly cookie hub_admin_session.
  • Для API-интеграций допускается x-admin-token (HUB_ADMIN_TOKEN).

Обязательные env для логина

  • HUB_OWNER_EMAIL (owner email, например info@designcorp.eu)
  • HUB_ADMIN_PASSWORD
  • HUB_ADMIN_SESSION_SECRET
  • HUB_ADMIN_SESSION_MAX_AGE_SEC (по умолчанию 43200)

Для dev-окружения переменные задаются в /home/admin/workspace/hub/.env.local. Для prod-окружения переменные задаются в /opt/designcorp/hub/prod/.env.

Ближайшие задачи

  1. Довести коммерческие страницы и офферы до уровня масштабирования.
  2. Усилить SEO и conversion flow (CTA -> brief -> контакт -> оценка).
  3. Запустить системную раскрутку и входящий трафик.

Операционный стандарт лендингов

Шаблоны в Hub

В Hub используются два уровня шаблонов:

  1. Шаблоны страниц (site templates):

    • Назначение: быстрый запуск целых коммерческих страниц под оффер.
    • Роут: /offers/templates (локализованный).
    • Пример: /offers/templates/template-1.
  2. Шаблоны блоков (blocks library):

    • Назначение: внутренняя библиотека независимых UI-блоков (pricing/process/feature и т.д.) для быстрого сборочного workflow.
    • Роут: /offers/templates/blocks (локализованный).
    • Статус: внутренняя библиотека, noindex.

Правило независимости блоков (обязательное)

  • Все блоки библиотеки должны быть независимыми от боевых страниц офферов.
  • Изменения блока на странице оффера не должны менять библиотечный блок и наоборот.
  • Блоки библиотеки хранятся в src/components/blocks/**.
  • Блоки боевых страниц хранятся в src/components/offers/**.
  • Запрещены сквозные зависимости вида blocks -> offers для production-блоков библиотеки.

Зачем это нужно

  • Скорость: можно быстро собирать новые лендинги из готовых блоков.
  • Контроль качества: стабильные блоки не ломаются от экспериментов на боевых страницах.
  • Масштабирование: один и тот же visual/system подход переиспользуется между офферами.
  • Прозрачный handoff: команда всегда понимает, где шаблон страницы, а где библиотечный блок.

Рабочий процесс (стандарт)

  1. Сначала делаем/полируем блок на боевой странице.
  2. После валидации выносим в отдельный независимый блок в src/components/blocks/**.
  3. Регистрируем блок в internal library (/offers/templates/blocks).
  4. Проверяем, что правки в боевой странице не затрагивают библиотеку.
  5. Только после этого используем блок в новых шаблонах страниц.