DolinaRoz — доставка цветов
https://dolinaroz.byИнтернет-магазин цветов в Минске. Более 1000 букетов из роз, пионов, гортензий. Доставка от 1 часа, онлайн-оплата, 3 точки в городе.
О проекте
DolinaRoz — интернет-магазин цветов в Минске с онлайн-оформлением заказов и доставкой по городу и области. В проекте реализованы удобный каталог с категориями, быстрый путь до покупки, поддержка популярных способов оплаты и коммуникация с клиентами через мессенджеры. Технологический стек проекта: Next.js, Strapi, OpenAI и Telegram API.
page.tsx
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
Как мы разрабатывали
Проектирование начинали с мобильной версии — подход Mobile First позволяет расставить приоритеты интерфейса на раннем этапе и избежать компромиссов при адаптации под большие экраны. Мы сознательно отказались от типовых шаблонных решений: магазины на конструкторах часто выглядят идентично, что размывает идентичность бренда и снижает доверие покупателей.
Разработали собственную дизайн-систему: подобрали фирменную цветовую палитру, выстроили типографическую иерархию и убрали из интерфейса всё, что не ведёт пользователя к покупке. Результат — магазин, в котором интуитивно понятно, что делать, с первых секунд.
Для клиентской части выбрали Next.js: нативная поддержка SSR, SSG и Streaming критична для скорости загрузки и позиций в поиске. Административную панель построили на Strapi — гибкая контент-модель и REST API из коробки позволили реализовать все требования без лишней разработки. После редизайна позиции сайта в органической выдаче не только сохранились, но и заметно выросли.
Как мы внедряли AI
Сайт работает в двух локалях — RU и EN. На старте весь контент управлялся через Strapi CMS вручную. После запуска мы интегрировали OpenAI: теперь все материалы на русском автоматически переводятся и верифицируются перед публикацией в английской локали.
Логика перевода полностью управляется через user-prompt в настройках админ-панели — без изменения кода. Это позволяет настраивать контекст, стиль, правила форматирования и тонкости локализации прямо в интерфейсе, получая предсказуемый результат с первого запуска.
Для перевода используется модель gpt-4o-mini — оптимальный выбор по соотношению скорости и стоимости. Архитектура позволяет переключать модели под конкретные задачи: быстрая модель для рутинного контента, более мощная — для структурированных или нестандартных текстов.
OpenAI
OpenAI Token
OPENAI_TOKEN
OpenAI Rules
OPENAI_RULES
OpenAI Proxy URL
OPENAI_PROXY_URL
OpenAI Prompt Translate
OPENAI_TRANSLATION_PROMPT
Ввод в CMS
Answer
ENTRY
PREVIEW
Запрос к OpenAI
01
const response = await openai.chat.completions.create({
02
model: 'gpt-4o-mini',
03
messages: [
04
{ role: 'system', content: rules },
05
{ role: 'user', content: inputText },
06
],
07
});
AI-перевод
Waiting
Сохранение в БД
01
const translated = response.choices[0].message.content;
02
03
await strapi.put(
04
`/api/reviews/${review.id}`,
05
{ data: { answer_en: translated } }
06
);
Как работает автоматический перевод
Перевод реализован на уровне серверных lifecycle-хуков Strapi CMS. При каждом создании или обновлении записи — товара, категории, статьи, новости или ответа на отзыв — обработчик автоматически извлекает текстовые поля, формирует запрос к OpenAI Chat Completions API с системным промптом и правилами форматирования из конфигурации, и сохраняет результат в поле целевой локали. Процесс полностью прозрачен для менеджера и выполняется асинхронно в фоне.
Среднее время отклика модели составляет порядка 300 мс, что позволяет завершить перевод практически мгновенно и не блокировать работу в редакторе. Ниже — пошаговая визуализация полного цикла: от ввода текста в форму CMS и формирования запроса к API, через потоковую обработку ответа языковой моделью, до записи переведённого контента в базу данных через Strapi REST API.
Как AI помогает в продвижении сайта
Помимо классического SEO, мы внедрили модуль AI Hints — набор структурированных метаданных, которые помогают AI-системам (ChatGPT, Perplexity, Gemini) точнее понимать контекст бизнеса, тематику страниц и целевую аудиторию. Модуль формирует семантические сигналы на основе Schema.org и практик Generative Engine Optimization (GEO) — направления, которое оптимизирует видимость сайта не только в поисковой выдаче, но и в ответах AI-ассистентов.
Каждое поле — от описания бизнеса и ключевых слов до типа аудитории и географии — преобразуется в структурированные теги, которые AI-краулеры считывают при индексации. Это позволяет поисковым системам и языковым моделям корректно классифицировать сайт, формировать релевантные ответы и чаще цитировать бренд в AI-генерируемых результатах.
Все параметры управляются через интерфейс админ-панели Strapi — без правок кода и деплоя. Менеджер может в любой момент обновить контекст, ключевые слова, тип бизнеса или регион обслуживания, и изменения мгновенно отразятся в метаданных сайта.
AI Hints
Context
*max. 500 characters
Keywords
max. 255 characters
Business Type
Service Area
Service City
Content Priority
Target Audience
Available Languages
Производительность и поисковая оптимизация
Проект с первого дня построен на Next.js — фреймворке с нативной поддержкой нескольких стратегий рендеринга, каждая из которых применяется там, где даёт наибольший эффект. SSR (Server-Side Rendering) используется для страниц, требующих актуальных данных на каждый запрос. SSG (Static Site Generation) совместно с ISR (Incremental Static Regeneration) обеспечивают мгновенный TTFB для страниц с высокой посещаемостью: ответ отдаётся из CDN-кэша, а фоновая регенерация поддерживает данные свежими без перезапуска сервера. Там, где серверный рендеринг тяжёлый, применяется Streaming — пользователь видит первый значимый контент немедленно, не дожидаясь завершения всей цепочки загрузки.
После запуска мы провели полный технический аудит производительности: собрали базовые метрики Core Web Vitals на реальных устройствах через Chrome UX Report, проанализировали узкие места в бандле (tree-shaking, code splitting, lazy-загрузка компонентов), настроили HTTP-заголовки кэширования, оптимизировали стратегию загрузки шрифтов и изображений (next/image с blur placeholder, приоритет LCP-элементов), а также скорректировали окна ISR revalidation под реальный паттерн обновлений контента.
Результат аудита подтверждён данными Chrome UX Report за последние 28 дней на реальных пользователях: LCP — 0.7 с, INP — 98 мс, CLS — 0. Все три показателя Core Web Vitals укладываются в порог «хорошо», а итоговая оценка — Core Web Vitals Assessment: Passed. Это напрямую влияет на позиции в поисковой выдаче Google: с 2021 года CWV входят в сигналы ранжирования Page Experience, и сильные метрики дают измеримое конкурентное преимущество в органическом поиске.
Core Web Vitals Assessment:
Passed
Expand view
Largest Contentful Paint (LCP)
0.7 s
Interaction to Next Paint (INP)
98 ms
Cumulative Layout Shift (CLS)
0
Other notable metrics
First Contentful Paint (FCP)
0.7 s
Time to First Byte (TTFB) ↗
0.3 s
Latest 28-day period
Full visit durations
Various desktop devices
Various network connections
Many samples (Chrome UX Report)
All Chrome versions
deploy@vps: ~/www/dolinaroz.by
01
02
03
05
06
07
08
09
11
12
13
14
15
16
17
18
20
21
22
23
Инфраструктура приложения
Git-репозиторий и VPS Cloud обеспечивают полный цикл доставки: от коммита до production-окружения. Благодаря автоматизированному pipeline изменения публикуются в течение минуты — без ручного переноса файлов и простоев.
VPS позволяет динамически масштабировать ресурсы под текущую нагрузку. В пиковые периоды конфигурация поднимается оперативно, а в периоды низкой нагрузки — снижается. Это обеспечивает запас отказоустойчивости и оптимизирует операционные затраты на обслуживание сервера.
Хотите так же?
Выберите удобный способ связи, оставьте контакт и мы свяжемся с вами для обсуждения проекта.




