Корпоративный сайт

87 страниц.
Ни одного JS-фреймворка.

Как мы построили сайт компании полного цикла — с AI-чатом, партнёрской программой, автономными агентами и SEO-инфраструктурой — на чистом HTML, PHP и Tailwind CSS.

87
HTML-страниц
135K
строк кода
41
статья в блоге
5
продуктовых кейсов
// Архитектура 0101ai.tech
Фронтенд (87 HTML-страниц)
Tailwind CSS v4 · Inter + JetBrains Mono · Lucide Icons · AOS · Chart.js
JS-слой (8 модулей, ~1 400 строк)
nav.js (417 строк) · chat_widget.js · utm_resolver · ab_engine · tracker · pixels · calculator · auto-audit
Бэкенд (28 PHP-файлов)
chat_api.php · send_lead.php · kb_engine.php · partner/api.php · crm_adapter.php · agents/scheduler.php
Данные (JSON-файлы, без MySQL)
knowledge_base.json · partners.json · deals.json · semantic_core.json · visits.json · contacts.json

Ни одного JS-фреймворка — и не нужно

Проблематика: Корпоративный сайт компании полного цикла должен выполнять десятки функций: презентация услуг, сбор лидов, AI-чат, блог, кейсы, партнёрская программа, SEO. Обычно под это берут Next.js + headless CMS. Мы пошли другим путём.

Решение: Статический HTML на Tailwind CSS v4. PHP 8.2 для серверной логики (без фреймворка). JSON-файлы вместо базы данных. Apache на shared-хостинге. 135 000 строк кода — и всё это собирается, деплоится и работает без Node.js на сервере.

Почему: Нет времени на Next.js, Vercel и базы данных. Клиенту (нам самим) нужен сайт, который работает, индексируется и продаёт. Скорость загрузки, SEO и простота деплоя — важнее модного стека.

Навигация

Один nav.js на 87 страниц

Mega-menu с 6 панелями: Услуги, Автоматизации, Отрасли, Продукты, Кейсы/Блог, Компания. 417 строк JavaScript — и ни строчки дублирования. При изменении меню правится один файл.

Десктоп: ховер с 150ms задержкой открывает mega-панель. 6 колонок с группировкой: Услуги (3 подколонки), Автоматизации (3), Отрасли (4), Продукты (3), Компания (4).

Мобильное: аккордеон на 7 секций. Активные состояния подсвечиваются. Кейсы и Блог — прямые ссылки без раскрытия. Гамбургер-меню с анимацией.

Активные состояния: nav.js определяет текущую страницу по window.location.pathname, подсвечивает триггер панели и активную ссылку внутри. Мобильное меню раскрывает активную секцию по умолчанию.

// Структура mega-menu: 6 панелей
5
направлений
6
автоматизаций
8
отраслей
5
продуктов
41
статья
6
о компании
// Активное состояние: страница /cases/site/
// nav.js определяет:
const isActive = (slug) => {
  if (slug === '/') return path === '/';
  return path.startsWith('/' + slug);
};
// AI-чат: стейт-машина диалога
discovery qualification solution objections consultation handoff
[User] Сколько стоит внедрение ИИ в медклинике?
[0101 AI] Зависит от масштаба. Уточните: сколько врачей, какая МИС, нужна ли интеграция с 152-ФЗ?
// KB: qualification stage — извлечены триггеры: "стоимость", "медклиника"
[User] 15 врачей, МедОфис, да, 152-ФЗ обязательно
[0101 AI] Понял. Пилот на 15 врачей с RAG-поиском по протоколам — от 85 000 ₽. Air-gapped сервер, векторная БД, интеграция с МедОфис через Win32 API. Какой email для рассчёта?
// KB: solution_matching → objection_handling → consultation_offer
AI-чат

Чат-система с BANT-квалификацией

5 компонентов, ~3 150 строк: chat_widget.js (545 строк, IIFE), chat_api.php (1 222 строки, 14+ endpoints), kb_engine.php (385 строк, поиск по базе знаний), chat_admin.html (803 строки, панель оператора), knowledge_base.json (189 строк, 6 стадий диалога).

Стейт-машина из 6 стадий: discovery → qualification → solution_matching → objection_handling → consultation_offer → human_handoff. Каждая стадия — свой system prompt для DeepSeek.

Human handoff с защитой от ложных срабатываний: триггер — пользователь просит оператора. Regex-защита от негации («не надо оператора» → не переключаем). 5-минутный таймаут неактивных сессий.

152-ФЗ: сначала сбор PII (имя, телефон/email) → Bitrix24, потом AI-диалог с обезличенными вопросами. История: максимум 12 сообщений. Rate limit: 20 запросов/мин/IP.

Партнёрка

Реферальная система с 3 уровнями

5 файлов, ~1 340 строк: API (346 строк, 10+ endpoints), админка (445 строк, CRUD партнёров и сделок), дашборд (332 строки, статистика), шаблоны эксперта и редиректа.

3 уровня: Партнёр (5%) → Агент (10%) → Амбассадор (15%). Каждый уровень — свой доступ: read-only песочница, свои сделки в Bitrix24, полный доступ.

Реферальный механизм: кука partner_ref (30 дней) → все формы читают куку → лид уходит в CRM с source_id='PARTNER'. Автосоздание директорий: /expert/{slug}/ и /go/{short}/.

API: partner_login, apply, track_visit, partner_stats, admin_partners (CRUD), admin_deals (CRUD). Статусы сделок: lead → audit_scheduled → audit_done → proposal_sent → negotiation → won/lost.

// Уровни партнёрской программы
Партнёр
Read-only песочница
5%
Агент
Песочница + свои сделки в CRM
10%
Амбассадор
Полный доступ к Bitrix24
15%
// Автономные AI-агенты (cron-job.org)
DevOps Agent каждые 30 мин
Healthcheck: GET / и /chat_api.php. 2 отказа подряд → alerts.md. 0 токенов.
Content Agent (SMM) Пн/Ср/Пт 4:00
Черновики Telegram-постов (300-500 зн.). Читает knowledge/ → DeepSeek → reports/telegram_posts.md. ~1K токенов.
Board Agent ежедневно 7:00
Утренний брифинг: читает все отчёты + PLAN.md → 3 вопроса (главное, приоритет, внимание CEO). ~2.5K токенов.
// Безопасность: CRON_SECRET (64 символа), файловые блокировки,
// агенты изолированы в /agents/, не трогают файлы сайта
Автономные агенты

3 AI-агента работают без участия человека

5 файлов, ~460 строк: scheduler.php (диспетчер), agent_base.php (общие функции: lock, log, DeepSeek API, report), devops_agent.php, content_agent.php, board_agent.php.

DevOps Agent (0 токенов): мониторит сайт каждые 30 минут. Проверяет HTTP 200, время ответа, статус чат-API. При двух отказах подряд пишет alerts.md. Самый дешёвый агент — вообще не дёргает DeepSeek.

Content Agent (~1K токенов): черновики постов для Telegram. Читает knowledge/ и semantic_core.json, промптит DeepSeek, пишет reports/telegram_posts.md со статусом [ ] одобрить. Требуется ручная анти-ИИ чистка перед публикацией.

Board Agent (~2.5K токенов): утренний брифинг для CEO. Собирает логи, отчёты и PLAN.md, задаёт DeepSeek 3 вопроса: что главное за вчера, какой приоритет на сегодня, на что обратить внимание CEO.

SEO и контент

41 статья, 12 кластеров, семантическое ядро

41 техническая статья в блоге — AI, RAG, маркетинг-аналитика, CRM, продажи B2B, веб-разработка, 8 отраслей. Каждая статья: JSON-LD BlogPosting, OG-теги, каноникал, хлебные крошки, перекрёстные ссылки.

Семантическое ядро: 12 кластеров, 120+ ключей с интентом (commercial/info/transactional), частотностью Wordstat и привязкой к страницам. semantic_core.json (699 строк).

UTM-резолвер: читает utm_term из URL, ищет совпадение в семантическом ядре, динамически подменяет h1, подзаголовок и текст CTA под поисковый запрос.

A/B-движок: сплитует трафик, подменяет контент по вариантам, считает конверсии. Результаты в ab_tests.json.

// Семантические кластеры
Внедрение ИИ
commercial · 8 ключей
AI-безопасность
info · 6 ключей
Сквозная аналитика
commercial · 10 ключей
ROMI B2B
commercial · 7 ключей
CRM-внедрение
commercial · 9 ключей
Создание сайтов
commercial · 12 ключей
// sitemap.xml: 67 URL, lastmod, changefreq, priority
<url>
  <loc>https://0101ai.tech/cases/site/</loc>
  <lastmod>2026-07-27</lastmod>
  <changefreq>monthly</changefreq>
  <priority>0.8</priority>
</url>
// Инфраструктура деплоя
Git (MinGit portable) — conventional commits на русском
FTP-деплой (Python + ftplib) — retry 3 попытки
Nichost shared hosting — Apache 2.4.67, PHP 8.2.31
mod_rewrite, mod_headers, mod_deflate, mod_expires
HTTPS через прокси (не трогать %{HTTPS})
npm + Tailwind CSS v4 (output.css ~101 KB)
Деплой

FTP, shared hosting и ни одного контейнера

Хостинг: Nichost (RU-CENTER), shared-тариф. Apache 2.4.67 за прокси, PHP 8.2.31 без фреймворка. Без Docker, без Kubernetes, без CI/CD-пайплайнов. FTP + Python-скрипты.

Деплой: Python-скрипт на ftplib. Ретрай при таймаутах (3 попытки). Автосоздание директорий на FTP. deploy.py для полного деплоя, deploy_update.py для точечного.

Tailwind CSS v4: сборка через npx tailwindcss с автосканированием HTML. output.css — 101 KB в минифицированном виде. Исходный input.css — только @import "tailwindcss" + @theme.

Git: MinGit portable (вне PATH, 2.50.1). Conventional commits на русском. Feature-ветки для крупных фич. Правило: коммитить до и после каждой batch-операции.

Сайт как инфраструктура продаж

Не визитка, не портфолио — полноценная платформа для генерации, квалификации и конвертации лидов.

87
HTML-страниц
135K
строк кода
28
PHP-файлов
41
статья в блоге
3
AI-агента
6
стадий чат-диалога
417
строк nav.js
12
SEO-кластеров

AI-чат

DeepSeek + knowledge base + human handoff. 6 стадий диалога, objection detection, 152-ФЗ compliant.

Партнёрка

3 уровня, реферальные куки, автосоздание страниц /expert/ и /go/, 10+ API endpoints.

Автономные агенты

DevOps, Content, Board. Запуск по cron, файловые блокировки, 64-символьный секрет.

Нужен такой же сайт?

От лендинга до платформы с AI-чатом и партнёрской программой. Проектируем, верстаем, подключаем CRM и SEO. Фикс-цены от 25 000 ₽.