- Create /[lang]/o-kompanii/ page with About, Clients, Partners sections
- Remove those sections from homepage (Hero + Services + FAQ remain)
- Update Header nav: "О нас" now links to /o-kompanii/ instead of /#about
- AboutSection: support standalone prop (h1 vs h2)
- Root layout: add indexnow-key meta tag (key from public/40c65b...txt)
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Add Cloudflare Turnstile widget support (site key configurable in config.js,
secret key in contact.php — both empty until widget created at dash.cloudflare.com)
- Add email input field to contact form (parity with hhivp)
- Add company length validation (200 chars) to contact.php
- Add IP, country (CF-IPCountry header), and referer metadata to Telegram notifications
- Add company and email fields to SMTP email body
- Turnstile script loaded in index.html, widget rendered conditionally when TURNSTILE_SITE_KEY is set
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Rate limit: 5 req/min per IP (file-based)
- Email format validation via filter_var
- Field length limits: name 100, email 254, phone 30, message 5000
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Send email via SMTP AUTH to mx.hhivp.com using noreply@sag24.ru
- Telegram is non-fatal (ТСПУ blocks 45.10.53.x datacenter)
- Form always returns success as long as email is sent
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Always send email to info@sag24.ru (via server mail())
- Return success even if Telegram is unreachable (ТСПУ blocks 45.10.53.x)
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- SSR-пререндер через Vite + react-dom/server (entry-server.jsx, scripts/prerender.mjs)
- Секция партнёров: RU-CENTER, REG.RU, МТВ, КОНТУР
- Реквизиты компании в футере (ИНН, ОГРН, банк)
- Копирайт с 2011 года
- Логотип увеличен (h-8→h-12 навбар, h-7→h-10 футер)
- favicon.ico пересобран с 16×16, 32×32, 48×48 из logo.png
- og:image и twitter:image переключены на .png
- apple-touch-icon.png и og-image.png сгенерированы через sharp
- SSR-safe: localStorage и window.location проверяются на typeof
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>