# Побудувала сайт на Hugo 3 мовами

Побудувала багатомовний статичний сайт на Hugo зі 108 файлів шаблонів, з яких 53 партіали, що публікує кожну сторінку в чотирьох форматах з одного дерева контенту трьома мовами, а також на семи тематичних субдоменах, зібраних із того самого дерева.

серпень 2026

**Ситуація.** Компанії потрібен був публічний сайт, який працює трьома мовами, демонструє можливості, а не заявляє про них, нічого не коштує в експлуатації й нікому не передає своїх відвідувачів. Більшість цих вимог звичайні. Але разом вони відкидають майже будь‑яку систему керування вмістом, бо динамічний бекенд — це те, що треба захищати, оновлювати, оплачувати й пояснювати на сторінці конфіденційності.

**Завдання.** Сайт мав повністю генеруватися на етапі збірки і водночас поводитися як сучасний: мати пошук, встановлюватися як застосунок, роздавати стрічки, друкуватися й читатися програмою зчитування з екрана кожною мовою, якою він виходить.

**Дія.** Це статичний сайт: 108 файлів шаблонів, із них 53 часткові шаблони і 18 шорткодів, три мови, жодного динамічного бекенду і єдиний власний скрипт — обмежений виняток для фільтра портфоліо, усі елементи керування якого приховані, доки скрипт не запуститься. Можливості додаються на етапі збірки, а не в браузері; це продуктове рішення, і його записано саме як рішення. Кожну сторінку з одного дерева вмісту публікують у чотирьох поданнях — HTML, двійник у Markdown, документ Gemini і пункт меню Gopher, — а головна сторінка додає до цього три стрічки синдикації та маніфест застосунку, який можна встановити. Таксономій навмисно дві, а не одна, і ця відмінність ключова: категорія — це тематична мітка роботи, послуга — те, що компанія продає, а якби їх злити, каталог став би переліком навичок замість переліку пропозицій. Потім те саме дерево збирають ще сім разів, по разу для кожного тематичного субдомену, просто вказуючи генераторові інший каталог вмісту, без жодного відгалуження коду.

**Результат.** Сайт віддає три мови й чотири подання з одного дерева, не має ні бекенду, який можна атакувати, ні рахунків, а єдиний фрагмент JavaScript у ньому дотримується контракту, виконання якого забезпечує лінтер. Ціна в тому, що все інтерактивне доводиться розв'язувати на етапі збірки або ніяк; через це довелося відмовитися від кількох речей, які із сервером були б простими, і саме тому пошуковий індекс оцінили й відклали, а не випустили.

---

- Роль: Frontend‑інженер
- Категорії: [Frontend‑розробка](https://engineer.company/uk/categories/frontend/), [Full‑Stack‑розробка](https://engineer.company/uk/categories/full-stack/), [Веброзробка](https://engineer.company/uk/categories/web-development/), [Оптимізація продуктивності](https://engineer.company/uk/categories/performance/), [Дизайн‑системи та UI](https://engineer.company/uk/categories/design-systems/), [Інтернаціоналізація](https://engineer.company/uk/categories/i18n/)
- Послуги: [Frontend‑розробка](https://engineer.company/uk/services/frontend-development/), [Full‑Stack‑розробка продуктів](https://engineer.company/uk/services/full-stack-development/), [Розробка вебсайтів та CMS](https://engineer.company/uk/services/web-development/), [Готовність до ШІ‑агентів](https://engineer.company/uk/services/ai-agent-readiness/), [Інтернаціоналізація та локалізація](https://engineer.company/uk/services/i18n-localization/)

<https://engineer.company/uk/portfolio/built-a-multilingual-hugo-site-in-3-languages/>
