943a714, load-test финал, cdp/visual-diff детерминизм
ЖИВО? — твой цифровой план Б
Интерактивный прототип веб-сервиса, который показывает состояние цифровой инфраструктуры (связь, банки, карты, транспорт, мессенджеры, госуслуги, облака, магазины) и подсказывает, что делать дальше, когда что-то не работает.
Это демонстрационный прототип. Все статусы, графики, инциденты и рекомендации построены на демонстрационных данных (снимок — 19 октября 2026, 07:10 МСК). Ни один показатель не является сообщением о реальном текущем сбое. Подробнее — methodology.html.
Публичная версия: https://zhivo24.ru/ (проверено снаружи: 25 страниц, 0 JS-ошибок,
0 переполнений на мобильных). Обновление — node tools/deploy-netlify.mjs --dir=zhivo-site.
Запуск
Без зависимостей и сборки — только Node.js (или любой статический сервер).
# из корня проекта
node serve.mjs
# → http://127.0.0.1:4173/
Можно открыть и напрямую файлом: src/index.html — все скрипты классические, данные вкомпилированы
в src/assets/js/data.bundle.js, fetch не используется. Но локальный сервер удобнее (корректные
пути, история запросов).
Пересборка данных после правок src/data/*.json:
node tools/build-data.mjs
Проверка общего JS без браузера:
node tools/selfcheck.mjs
Публикация: папка zhivo-site/ (43 файла, _headers для Netlify) или архив zhivo-site.zip —
инструкция на 5 минут в PUBLISH-NETLIFY.md, альтернативы — в
docs/free-hosting.md.
Что внутри
| Страница | Файл | Что показывает |
|---|---|---|
| Главная | src/index.html | Поиск, общая ситуация, текущие проблемы и интерактивный сценарий «Что у тебя не работает? → что нужно сделать → твой План Б» |
| Каталог | src/catalog.html | 40+ сервисов и категорий, фильтры по категории и состоянию, поиск |
| Карточка сервиса | src/service.html | Статус и уверенность, что именно сломалось, география, график 24 ч, План Б, жалоба, источники, история инцидентов |
| План Б | src/plan-b.html | Подбор альтернатив по задаче с прозрачной оценкой 0–100 и фильтром доступности |
| Мой регион | src/region.html | Региональные проблемы подключения, провайдеры, действия без интернета, ограничения |
| Пульс интернета | src/pulse.html | Сводные тенденции за 24 часа, топ проблем, источники |
| Подписки | src/subscriptions.html | Оформление уведомлений, Telegram-канал, лимиты бесплатного тарифа (демо, localStorage) |
| Тарифы | src/pricing.html | Пакеты «Базовый / Личный / Команда / Бизнес», add-ons, сравнение, FAQ (оплата в демо не подключена) |
| Методология | src/methodology.html | Шесть состояний, пять источников, правила уверенности, «нет данных ≠ работает», приватность |
| Лёгкий режим | src/lite.html | Текстовая версия для плохого соединения: работает без CSS и JS |
| SEO / Instagram | src/plan-b/send-file.html, offline-maps.html, messenger.html, pay.html | Посадочные страницы под конкретную проблему: «Не отправляется файл?» и др. |
| Поддержка | src/support.html | Контакты (email/Telegram), форма обращения, сроки ответа, FAQ, ссылки на документы |
| Пользовательское соглашение | src/offer.html | Публичная оферта: тарифы, оплата СБП/крипто, возврат 14 дней, ответственность, реквизиты |
| Политика конфиденциальности | src/privacy.html | Какие данные обрабатываются, зачем, кому передаются, права пользователя, 152-ФЗ |
Ключевые механики
- Шесть состояний сервиса — «Работает», «Возможны проблемы», «Частичный сбой», «Массовый сбой», «Нет данных», «Восстанавливается». У каждого вывода — уверенность (низкая/средняя/высокая) и время последнего достоверного наблюдения. Цвет никогда не единственный носитель смысла.
- «Нет данных» ≠ «Работает» — если измерений нет, сайт честно показывает отсутствие данных, а не зелёный статус.
- Региональность — уровни «сервис → функция → провайдер → регион → инфраструктура». Региональный перебой не выдаётся за падение каждого приложения.
- План Б (Task-Based Recommendation Engine) — подбор по задаче, условиям и подтверждённой доступности; веса 35/30/15/10/10; вариант с подтверждённой недоступностью не попадает в основные рекомендации.
- Демо-честность — пометки «демо» на страницах, причина сбоя только при публичном подтверждении, никаких неподтверждённых причин.
Структура проекта
CONTRACT.md инженерный контракт прототипа (архитектура файлов, API, схемы данных)
docs/ техническая документация (архитектура, БД, API, движки, приватность, QA)
docs/team/BRIEF.md продуктовый бриф (ТЗ 2.0 в рабочей форме)
src/ сам прототип (статические HTML + CSS + ванильный JS)
index.html, catalog.html, service.html, plan-b.html, region.html, pulse.html,
subscriptions.html, pricing.html, methodology.html, lite.html, plan-b/*.html
assets/css/app.css дизайн-система (токены, компоненты, тёмная тема, a11y)
assets/js/core.js данные, статусы, форматирование, движок правил, UI-примитивы
assets/js/layout.js шапка, навигация, подвал, мобильное меню
assets/js/charts.js SVG-графики (без зависимостей)
assets/js/engines/ движок рекомендаций Плана Б
assets/js/data.bundle.js сгенерированный бандл данных
data/*.json демо-данные: сервисы, инциденты, пробы, регионы, альтернативы, evidence
tools/build-data.mjs сборка бандла данных
tools/selfcheck.mjs быстрая проверка общего JS в Node
tests/ автотесты прототипа (чистый Node)
preview/ скриншоты проверки
Документация
- docs/README.md — индекс документации
- docs/architecture.md — прод-архитектура (Next.js, Fastify, PostgreSQL/PostGIS, Redis/BullMQ, воркеры мониторинга, ECharts, наблюдаемость, несколько площадок)
- docs/data-model.md и docs/schema.sql — модель данных
- docs/api.md и docs/openapi.yaml — API
- docs/incident-engine.md — правила определения сбоя и уверенности
- docs/monitoring.md — сбор сигналов: официальные статусы, пробы, Radar, жалобы
- docs/privacy-security.md — персональные данные и безопасность
- docs/recommender.md — алгоритм Плана Б
- docs/design-system.md — дизайн-система и доступность
- docs/acceptance-criteria.md — критерии приёмки MVP
- docs/pricing.md — тарифы, юнит-экономика, LTV/CAC, точка безубыточности
- docs/telegram-notifications.md — как работают Telegram-уведомления
- docs/deploy.md — запуск и публикация, docs/free-hosting.md — бесплатный хостинг
- docs/payments-readiness.md — условия провайдера (СБП 10 %, крипто 3–4 %), чек-лист подключения
- docs/legal/README.md — юридические документы: что заполнить и как обновлять
- docs/legal/offer-template.md, docs/legal/privacy-template.md — шаблоны оферты и политики ПД
- docs/roadmap.md — план разработки и метрики
- docs/qa-report.md — отчёт о тестировании
Технические принципы прототипа
- Ноль зависимостей: без npm-пакетов, CDN, внешних шрифтов и картинок; всё работает офлайн.
- Классические скрипты,
window.ZHIVO— совместимость с открытием файлом (file://). - Данные — только из сгенерированного бандла, без
fetchво время работы. - Мобильный first, WCAG 2.2 AA (семантика, фокус, подписи, aria-live, контрасты).
- Честные состояния: «нет данных», «источник устарел», «подходящих вариантов нет», «без интернета — только офлайн-варианты».
Статус
Прототип собран командой из 8 ИИ-агентов под управлением Лида по ТЗ 2.0.
- 25 проверяемых страниц (включая 4 SEO-лендинга, тарифы и юридические документы), 49 сервисов, 39 альтернатив, 8 инцидентов, 50 проб, 89 подтверждений, 10 задач в демо-данных.
- Автотесты:
node tests/run-all.mjs— 126 PASS / 0 FAIL / 2 WARN (128 проверок, exit 0). - Визуальный аудит: CDP-прогон 390×844 по 25 страницам, 1280×900 (light) и 320×568 по ключевым —
0 JS-ошибок, 0 горизонтальных переполнений (см.
preview/final-v3,preview/final-v3-desktop,preview/ds3-final,preview/public-v3). - Дизайн-система v3 «Superhuman editorial» (light-only): тёплая пергаментная основа
#f2f0eb, midnight wine#421d24— единственный хроматический CTA, violet#714cb6только для ссылок, lilac#d4c7ff— вторичные поверхности, без drop-shadow, заголовки весом 460/540. Контрасты посчитаны (12.92 / 5.04 / 14.66 / 5.41 / 9.40),docs/design-system.md. - Бэкенд биллинга (
backend/, Node 24 без npm-зависимостей): health, plans, checkout, вебхук RollyPay с HMAC-подписью и идемпотентностью, статус/отмена подписки, rate limit, CORS, demo-режим и фолбэк на сайте. 17/17 тестов (node --test backend/test),docs/billing-backend.md. - Юридические документы заполнены и опубликованы:
/offer.html,/privacy.html,/support.html(самозанятый Яковлев А. С., ИНН 532123260012; поддержка — Telegram @ykvlev_a, email support@zhivo24.ru; возврат 14 дней — единая формулировка в оферте и docs).
Соответствие критериям приёмки — docs/acceptance-criteria.md, результаты проверок — docs/qa-report.md. Публикация — docs/free-hosting.md / docs/deploy.md, подключение платежей — docs/payments-readiness.md.
Хостинг
- Продакшен: VPS (Россия) — https://zhivo24.ru, Ubuntu 22.04 + nginx + Node 22, HTTPS Let's Encrypt (см. docs/deploy.md §8). Netlify (zhivo-demo.netlify.app) — резервная копия.
- Биллинг-API: https://api.zhivo24.ru (systemd zhivo-billing, demo-режим), тот же функционал доступен на https://zhivo24.ru/api/v1/....