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 дазваляе дынамічна маштабаваць рэсурсы пад бягучую нагрузку. У пікавыя перыяды канфігурацыя падымаецца аператыўна, а ў перыяды нізкай нагрузкі — зніжаецца. Гэта забяспечвае запас адмоваўстойлівасці і аптымізуе аперацыйныя выдаткі на абслугоўванне сервера.
Хочаце так жа?
Абярыце зручны спосаб сувязі, пакіньце кантакт і мы звяжамся з вамі для абмеркавання праекта.




