Skip to content
12Кейс-стадіSW · 12 з 10

Бренд-сайт, який підтримували чотири роки без переписування, для громадської організації без вебкоманди.

Європейська гуманітарна громадська організація масштабувалася за одну ніч на початку 2022 року. Ми побудували їхній публічний сайт за два тижні, а потім чотири роки майже нічого з ним не робили. Ця стриманість і була роботою.

КлієнтКонфіденційно
Рік2022 — 2026
Тривалість5 yrs
СтекTypeScript · Next.js · React · Vercel
Hero image for humanitarian-aid-brand-siteМАЛ 01 · ГЕРОЙ

Сайт для організації, чия робота — не сайт.

Клієнт — невелика європейська гуманітарна громадська організація, що виросла з діаспорної мережі в активну операцію з надання допомоги після лютого 2022 року. На момент, коли ми почали, вони координували доставку постачання, житло для переміщених осіб і обладнання для прифронтових рятувальників. Вебсайт був останнім, про що хтось думав — і це був саме правильний пріоритет.

Жодної вебкоманди. Жодного продакт-менеджера. Нікого, чия робота полягала б у тому, щоб писати тикети, затверджувати тексти чи доглядати за CMS. Бриф був не продуктовим. Це був інфраструктурний бриф: дайте нам публічне обличчя, яке відповідає на питання «хто ви і як я можу допомогти?», а потім не змушуйте нас більше про нього думати.

Це обмеження сформувало кожне наступне рішення.

Два тижні. Двомовний. Без CMS.

Ми випустили початкову версію сайту приблизно за два тижні, узгоджену з операційним поштовхом середини 2022 року. Next.js на Vercel, Tailwind CSS, React. Двомовний із першого дня — англійська й рідна мова організації — з використанням нативної i18n-маршрутизації Next.js, без сторонньої бібліотеки.

Рішення щодо контенту було свідомим: без CMS. Без Sanity, без Contentful, без Strapi. Увесь контент — описи проєктів, списки партнерів, напрями роботи, рівні донатів — живе у типізованих TypeScript-об'єктах у /data/<locale>/, під контролем версій разом із кодом. Оновлення тексту — це git-коміт. Немає ні входу, ні інтерфейсу редактора, ні конвеєра розгортання, якому треба було б навчати команду.

Ми також не додавали: бібліотеки анімацій, API-маршрути, базу даних під час виконання, шар обмеження частоти запитів, кастомну поверхню автентифікації. Нічого з цього не було потрібно. Процес донату виводить за межі сайту на спеціалізовані донатні рейки. Робота сайту — інформувати й спрямовувати, а не проводити транзакції.

Статична генерація всюди. Збірка створює HTML. Vercel його роздає. Єдине, що може піти не так — це невдала збірка, а збірки не будять нікого о 3-й ночі.

F · 01Двомовний статичний сайт
Англійська й рідна мова організації з першого дня. Нативна i18n-маршрутизація Next.js, повний паритет контенту, без сторонньої i18n-бібліотеки.
F · 02Контент як код
Увесь текст живе у типізованих TypeScript-об'єктах у /data/<locale>/, під контролем версій. Без входу в CMS, без інтерфейсу редактора, без конвеєра розгортання, який треба вивчати.
F · 03Статична генерація всюди
Кожна сторінка попередньо рендериться на момент збірки. Без API-маршрутів, без бази даних під час виконання, без чергування on-call для інфраструктури.
F · 04Два мажорні релізи Next.js перетнуто
Кодова база пройшла з Next.js 12 на 14 на 16 без переписування. Вибір стеку, що добре старіє.
F · 05Темна тема через CSS-клас
Zustand зберігає стан перемикача; localStorage його зберігає між сесіями. Без блимання при перезавантаженні. Без сторонньої бібліотеки тематизації.
F · 06Нуль переписувань за чотири роки
Архітектура, накреслена в початковому спринті, — це архітектура в продакшні сьогодні.

Дванадцять місяців тиші, потім один коміт.

Після початкового спринту — тиша. З серпня 2022-го до травня 2023-го кодова база не отримала жодних змін. Сайт тримався. Організація надавала допомогу. Це був правильний стан речей.

Червень 2023-го: один коміт. Аналітика. Липень 2024-го: дев'ять комітів. Невеликий спринт обслуговування — оновлення Next.js, заміна бібліотеки каруселі, гігієна залежностей. Нічого структурного.

Березень–квітень 2026-го: поточне оновлення. Освіження дизайну, повний мобільний прохід, міграція на Tailwind v4, покращення SEO. Кодова база перетнула два мажорні релізи Next.js — з 12 на 14 на 16 — без переписування.

240 комітів за чотири роки. Сплесковий патерн чесний: більшість роботи відбулася на початку, а потім наприкінці. Довга середина — це сайт, що працював.

Правильна кількість інженерії для громадської організації — це та кількість, що зникає.

Сайт не був проблемою, про яку організації доводилося думати. Це і є результат. Не коефіцієнт конверсії, не показник відмов — а відсутність сайту як джерела тертя.

Та сама кодова база, що вийшла у 2022 році, працює в продакшні сьогодні. Та сама команда, що її побудувала, її підтримує. Жодної травми міграції, жодної розмови «нам треба перебудувати це на сучасному стеку», бо стек було обрано достатньо ретельно, щоб лишатися сучасним без постійного втручання. Bun замінив Node як середовище виконання. Biome замінив ESLint і Prettier. Tailwind v4 замінив v3. Усе це було адитивним — жодного архітектурного боргу, який треба розплутувати.

Чотири роки. Два мажорні релізи Next.js перетнуто (12 → 14 → 16). Нуль переписувань. 240 комітів. Одна команда.

Цитата / 04
Сайт не був проблемою, про яку нам доводилося думати.
ДиректорГуманітарна громадська організаціяЄвропа
Outcome
Initial sprint
~2 weeks
Years in production
4
Next.js majors crossed
2 (12 → 14 → 16)
Commits over four years
240
NEXTКейс-стаді 13SW · 13 з 10
E-commerce2026

Комерція на замовлення для ринку, якому потрібен власний стек.