Бот + ИИ-ассистент promotion kept its original ratio to the base price
(45 000/55 000 = 81.8%) but applied to the new base of 160 000 ₽
(raised in the previous commit): 131 000 ₽ promo, 160 000 ₽ crossed-out.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_013otXCiTZsxdZ4SJKZ9wUky
Бот/ИИ-ассистент was priced at 20 000 ₽ against a real market range of
150k-1.5m ₽ for comparable AI-bot products - raised 8x to 160 000 ₽.
Интеграция с сервисами repriced to ~20% below the market rate for
CRM/messenger integrations (~115k ₽ market -> 90 000 ₽).
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_013otXCiTZsxdZ4SJKZ9wUky
Compared Базовый/Бизнес/Премиум against real SPB competitor pricing
(iLine, STEK, ITSpectr). Base (regular) prices lowered to competitive
market level; promotions keep the existing genuine-condition discount
structure (prepay/contract term), just recalculated from the new base,
avoiding a fabricated "was" price (risk under the advertising law for
misleading discounts). Премиум/24/7 corrected moderately (~13%) rather
than to the raw market average, since no competitor offers a comparable
true round-the-clock product and that average price was below the cost
of staffing real 24/7 coverage.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_013otXCiTZsxdZ4SJKZ9wUky
- Merge the duplicate Organization/LocalBusiness JSON-LD blocks (home's
LocalBusiness + o-kompanii's Organization) into one shared
getOrganizationSchema() call rendered on every page. Deliberately NOT
wired through the root layout: fetches there get frozen into the
static shell at build time (backend unreachable during image build)
and never revalidate, silently serving stale data to crawlers - each
page calls it directly instead, where revalidation is proven to work.
- Add optional ItemList schema on /uslugi and Offer/OfferCatalog schema
on /aktsii; entity pages (/uslugi/[slug] Service, /blog/[slug]
Article) reference the organization via @id instead of duplicating it.
- Add 8 more real FAQ entries (pricing model, contract terms,
onboarding time, hybrid IT staff setup, supported stacks, backups,
152-FZ compliance, escalation) and give every FAQ its own slug and
dedicated /faq/[slug] page with its own title/H1/FAQPage schema,
modeled on the one-topic-per-page pattern (h/t remontka.pro).
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_013otXCiTZsxdZ4SJKZ9wUky
SectionHeading always rendered its title as <h2>, so every page whose
only heading came from a shared section component (services hub,
promotions, cases, faq, contact, reviews, blog list) had no <h1> at
all. Add a level prop (default h2) and pass headingLevel="h1" from
each page where that section is the page's own top-level heading.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_013otXCiTZsxdZ4SJKZ9wUky
Add canonical URLs and a sitewide Organization JSON-LD (linked via @id
to page-specific LocalBusiness/Service/Article schemas), move FAQ and
Reviews into the top nav, attach the 24/7 support claim to a tooltip
on the header badge instead of leaving it unexplained, drop the
unverifiable incidents_resolved stat from the hero terminal animation,
and clean up the empty-reviews state instead of showing a thin
placeholder.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_013otXCiTZsxdZ4SJKZ9wUky
Multi-page public site (Next.js), Node/Express backend with Postgres,
and Vite admin/account app, restructured from a single-page layout
into dedicated service, promotions, cases, about, FAQ, and blog pages
for SEO.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_013otXCiTZsxdZ4SJKZ9wUky