Перейти до вмісту
Портфоліо
Довідкова бібліотека · Охорона праці

ДНАОП — бібліотека нормативів з охорони праці

Перезапустили відкриту бібліотеку з 45 294 нормативів України з охорони праці: дизайн «спершу телефон», пошук, який розуміє, як шукають норми, і всі старі адреси на місці.

Рік
2026
Робота
Перезапуск: дизайн і розробка
Тип
Бібліотека нормативів
Мова
Українська
ДНАОП — бібліотека нормативів з охорони праці

Сайт у цифрах

45 294
акти у відкритому доступі, у 8 розділах
167 714
старих адрес збережено один в один
47 837
справжніх таблиць відновлено в текстах
49 мс
медіанна відповідь сервера замість 225 мс
Про проєкт

Бібліотека, на яку покладаються, — перезібрана з нуля

ДНАОП — відкрита бібліотека нормативів України з охорони праці: акти НПАОП і ДНАОП, будівельні норми, стандарти, санітарні й пожежні правила, готові інструкції. Інженери та керівники приходять сюди за точним формулюванням норми — і відкривають її з телефона не рідше, ніж з робочого комп’ютера.

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

Старий сайт і новий — потягніть повзунок

Стало
Було
Було Стало
Сторінка акта, яку зручно читати
Читання

Сторінка акта, яку зручно читати

Нормативи займають десятки сторінок, найдовший — 247. Тепер кожен акт відкривається з липкою шкалою сторінок, змістом і зручною колонкою тексту, а в актів, довших за 60 сторінок, є ряд швидкого переходу. Завантажити й надрукувати — в один дотик, безкоштовно й без реєстрації.

  • Шкала сторінок у трьох режимах — залежно від обсягу акта
  • Зміст і блок «Дивіться також» з актами тієї ж серії
  • Працює навіть із вимкненим JavaScript
Пошук, який розуміє, як шукають норми
Пошук

Пошук, який розуміє, як шукають норми

Норми шукають за кодом на кшталт «НПАОП 40.1», за фрагментом назви або з помилкою в іншій розкладці. Новий повнотекстовий пошук дає раду всьому цьому по кожній сторінці кожного акта й відповідає за десятки мілісекунд. На контрольному наборі запитів потрібний акт опиняється першим у 91 % випадків і завжди — у першій трійці.

  • Форми слів українською та російською, точний збіг за кодом
  • Виправлення помилок і розкладки, підказки під час набору
  • Фільтри за розділом і мовою, підсвічування збігів
За кадром

Сорок п’ять тисяч документів — після ремонту

Таблиці відновлено

У 2 571 акті таблиці з рисок перетворилися на 47 837 справжніх таблиць.

Тексти видобуто заново

1 578 актів заново видобуто з вихідних Word-архівів — із суворими перевірками.

Кодування й назви

Виправлено кодування в 191 акті та втрачену першу літеру в 886 назвах.

Легкі зображення

32 828 зображень переведено у WebP — обсяг зменшився вдвічі, з 1 060 до 521 МБ.

Усі адреси на місці

167 714 адрес перенесено один в один і звірено з тижнем реальних логів — жодної помилки.

Пошуковики в курсі

Розмітка Legislation, canonical, щоденна карта сайту та сповіщення IndexNow при кожній зміні.

Під капотом

4,7 ГБ текстів — за мілісекунди

Бібліотека працює на Laravel 13 з окремим повнотекстовим пошуковим рушієм і кешуванням на кожному рівні: готові сторінки актів віддаються через CDN, і сторінка, яка відкривалася за 0,20 с, тепер приходить за 0,06 с. 4,7 ГБ вихідних текстів не стали заганяти в базу — вони очищуються на льоту й кешуються, а вихідні файли лишаються недоторканими.

Редактори працюють в окремій адмінці на React і Fluent UI: документи та їхні дублі, статті з візуальним редактором, режимом коду й історією версій, сторінки, меню, медіатека, редиректи та заявки — з п’ятьма ролями й журналом дій. Публічні сторінки несуть близько 3 КБ нашого JavaScript, а все це перевіряють майже 600 автотестів.

Великий сайт на застарілому рушії?

Перенесемо його на сучасну платформу й збережемо адреси та контент.

Зв’язатися з нами

Маєте ідею проєкту? Розкажіть нам про неї.

Розповісти про проєкт

Відповідаємо протягом одного робочого дня

Обговорити проєкт