Этап 1b: сайт

- Страницы обоих брендов из блоков Payload (D-029): главная, цены,
  локации, поддержка, 4 юридические, 404 и 500. Коллекции pages
  (черновики и версии) и faq с местами показа, 12 типов блоков; поля
  sites — почта и Telegram поддержки, часы работы, SEO по умолчанию.
- Карта и глобус рисуются на сервере (d3-geo), контуры во внешнем
  SVG через <use>; выбор локации синхронизирован между картой и сеткой.
- Тексты сайта и юридические черновики на 5 языках: de, fr, es —
  перевод с глоссарием; seed создаёт страницы и FAQ, только если их
  нет, SEED_CONTENT=reset пересоздаёт.
- SEO: title и описания, canonical, hreflang с x-default,
  sitemap.xml и robots.txt на каждый домен, картинки для соцсетей.
- Статическая сборка и пересборка через revalidatePath из хуков
  Payload (D-030); /svc/internal/revalidate для проверки.
- 404 — статичная страница со статусом 404 через proxy; на сайте
  только опубликованные страницы.
- Производительность: Client Hints темы Payload только в админке,
  предзагрузка 2 файлов шрифтов вместо 6; Lighthouse mobile 97–99.
- Контраст --ink-3 по WCAG AA, радиокнопки вместо div role=button.
- Документация: итоги 1b, глоссарий de/fr/es, трактовки юридических
  черновиков подтверждены, переносимые вопросы — в этапах 3e–3h.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
andreypr207andClaude Opus 5.5 committed 2026-10-22 04:53:15 +02:00
1 parent 515acfb69d
commit 20491d1ba4
134 files changed
+11232 -212

No files matched your search

+15 -1
View File
@@ -1,6 +1,6 @@
# Этап 1b. Сайт
Статус: в работе.
Статус: готово.
## 1. Цель
@@ -46,3 +46,17 @@ Root: R-19 — сделано.
3. Lighthouse mobile ≥ 90 на главной и странице цен обоих брендов.
4. Формы проверяют поля и показывают состояние «отправлено».
5. `sitemap.xml` и `hreflang` проходят проверку.
## 7. Итоги (22.10.2026)
1. Сделано всё из раздела 2. Страницы обоих брендов собраны из 12 типов блоков ([03-data-model.md](../03-data-model.md)), тексты сайта и юридические черновики — на 5 языках.
2. Проверки:
a. Сверка с макетами по скриншотам: 1280 и 375 px, светлая и тёмная темы. На 320 и 375 px на всех языках нет горизонтальной прокрутки и вылезающего текста.
b. Lighthouse mobile на production-сборке через nginx, главная и цены обоих брендов: производительность 97–99, доступность 100, best practices 100, LCP 2,1–2,6 с, CLS 0. SEO на dev-доменах — 66 только из-за `noindex`.
c. Пересборка: после правки цены в базе и вызова `revalidatePath` новая цена отдаётся с первого же запроса (0,2 с). Связка «хук Payload → `revalidatePath`» покрыта модульными тестами.
d. `sitemap.xml` — 40 адресов на домен (8 страниц × 5 языков), у каждого 5 языковых вариантов и `x-default`.
3. Тексты макетов, где говорилось о личном сервере, переписаны про индивидуальный IP на общем сервере (решение 2.2 сверки): «Индивидуальный IP, не общий», «Здесь IP общий» на mass.
4. Перенесено:
a. Проверка юристом и данные юрлица — 3h, список трактовок — в [stage-3h-launch.md](stage-3h-launch.md), раздел 5.
b. Хранение IP в Chatwoot — 3e; ссылка «Настройки cookies» и срок `cw_*` — 3f; журналы Xray для лимита устройств — 3g.
c. Вычитка de, fr, es — 3h.
+4
View File
@@ -20,3 +20,7 @@ Root: R-12 — Chatwoot на VPS, ключи API, боты поддержки в
## 4. Готово, когда
Сообщения из виджетов, ботов поддержки, почты и формы приходят в Chatwoot с указанием бренда; вошедший пользователь опознан.
## 5. Учесть из 1b
1. Chatwoot хранит IP-адреса и данные браузера контактов. Политика конфиденциальности (`src/seed/legal/*/privacy.md`) должна это упоминать, как и страну VPS Chatwoot и Twenty, если она отличается от страны основного сервера.
+5
View File
@@ -18,3 +18,8 @@ Root: R-10 — nginx и сертификат для `umi.veilix.cc`, прокс
## 4. Готово, когда
Посещения видны в Umami; без согласия виджет Chatwoot не загружается.
## 5. Учесть из 1b
1. Политика cookies обещает ссылку «Настройки cookies» в подвале: она открывает баннер повторно.
2. В политике cookies у `cw_*` (Chatwoot) вместо срока хранения заглушка — заполнить по фактической настройке виджета.
+4
View File
@@ -12,3 +12,7 @@
## 2. Обсудить при старте
Источник серверов и подключений, способ интеграции, как получать WG-конфиги mass по странам, обработка ошибок выдачи.
## 3. Учесть из 1b
1. Если ограничение числа устройств в Xray потребует журналов доступа, это расходится с обещанием «VPN-серверы не ведут журналов» в политике конфиденциальности. Решаем до выбора способа ограничения.
+15
View File
@@ -24,3 +24,18 @@ Root: R-11, по желанию R-15 и R-16. Решения: Q-13 (юрлицо
1. Основные домены работают по HTTPS, dev и prod разделены.
2. Выкладка и откат отрепетированы.
3. Восстановление из бэкапа проверено.
## 5. Учесть из 1b
1. Трактовки в юридических черновиках. Владелец подтвердил их 22.10.2026, юрист проверяет формулировки:
a. 7 дней на возврат считаются с момента выдачи ключа;
b. «вы передумали» — возвращаем неиспользованный остаток пропорционально дням от всей суммы за период; у dedicated в неё входит надбавка первого месяца за подготовку адреса;
c. после возврата ключ отключается;
d. за заблокированный за нарушения ключ возврата нет;
e. бонусные дни и дни компенсации не возвращаются деньгами;
f. об изменении цены продления предупреждаем заранее;
g. ответственность ограничена оплаченным периодом ключа;
h. «по нашей вине» описано только примерами;
i. `vx_ref` отнесён к обязательным cookies.
2. Темы, которых в черновиках нет: вывод баланса, налоги, закрытие локации, рассылки, удаление аккаунта.
3. Переводы de, fr, es сделаны без носителей: проверить формулировки, в которых переводчики сомневались (юридические термины GDPR, «as is», место разрешения споров).