Корпоративна база знань на Confluence або Notion часто дає збої: немає потрібних посилань, складно знайти застарілі інструкції, а права редагування доводиться налаштовувати вручну. Ми розробляємо Wiki-системи, які вирішують ці проблеми — з перехресними посиланнями, історією змін та гнучкими правами. Наш досвід включає 15+ проектів для команд від 10 до 500 осіб, і кожна система працювала швидше готових рішень в середньому на 40%.
Wiki — гіпертекстова база знань з відкритим (або обмеженим) редагуванням. На відміну від бази знань з вираженою ієрархією, Wiki будується на перехресних посиланнях між сторінками. Ключові особливості: [[WikiLinks]] між статтями, історія змін з diff, система обговорень та гнучкі права на редагування.
Чому корпоративним командам потрібна кастомна Wiki?
Типові болі: інформація застаріває і ніхто не оновлює, пошук старих рішень займає години, новачки не можуть швидко влитися. Wiki з графом знань і backlinks автоматично показує взаємозв'язки документів. Історія змін дозволяє відкотити правки вандалів або помилкові оновлення. Ми впроваджуємо OT-механізми, щоб два редактори не втрачали зміни при одночасній роботі.
Open-source рішення (MediaWiki, DokuWiki, Wiki.js) хороші для старту, але часто вимагають доопрацювань: потрібна специфічна модель прав, інтеграція з внутрішнім SSO або нестандартна розмітка. Кастомна розробка дає повний контроль: ви отримуєте саме ту функціональність, яка потрібна, без зайвого баласту. В одному з проектів ми замінили MediaWiki на власне рішення — час відкриття сторінки скоротився з 2,5 с до 0,3 с за рахунок кешування та оптимізації запитів.
Як влаштована навігація та розмітка Wiki?
Wiki допускає кілька способів навігації: ієрархія (традиційне дерево сторінок), граф (сторінки пов'язані посиланнями, візуалізація як граф знань), теги (поперечна класифікація) та пошук (основний інструмент). Для кожної Wiki-сторінки автоматично будується елемент backlinks — список сторінок, які посилаються на поточну. Це ключова функція для розуміння зв'язків між концепціями.
Стандартний варіант розмітки — Markdown з розширеннями: [[Назва сторінки]] — Wiki-посилання, автостворення сторінки якщо не існує; [[Сторінка|Відображуваний текст]] — посилання з псевдонімом; ![[Сторінка]] — вбудовування вмісту іншої сторінки (transclusion); #Тег — теги прямо в тексті. Парсинг Wiki-посилань: регулярний вираз обходить текст, знаходить [[...]], перевіряє наявність сторінки в базі, генерує <a> з існуючим посиланням або класом wiki-link-new для неіснуючих.
Як забезпечити історію змін та спільну роботу?
Кожне збереження створює revision. Diff відображається рядково: алгоритм Myers diff або бібліотека diff (npm):
import { diffLines } from 'diff';
const changes = diffLines(oldContent, newContent);
changes.forEach(part => {
if (part.added) console.log('[+]', part.value);
if (part.removed) console.log('[-]', part.value);
});
Rollback — відновлення будь-якої версії зі створенням нового revision (історія не видаляється). Якщо два користувачі редагують одну сторінку одночасно, можливі три підходи: pessimistic locking (сторінка блокується при відкритті редактора), OT (операційна трансформація в реальному часі через Yjs або ShareDB) та conflict on save (останній, хто зберіг, «перемагає», першому показується diff з конфліктом). Для більшості корпоративних Wiki достатньо попередження «сторінка редагується» + merge on conflict.
Порівняння підходів: open-source vs кастомна розробка
| Характеристика | Open-source (MediaWiki, DokuWiki) | Кастомна розробка |
|---|---|---|
| Швидкість запуску | Дні-тижні | 6-12 тижнів (MVP) |
| Гнучкість прав | Обмежена (ролі, групи) | Будь-яка модель (RBAC, ABAC, заборони) |
| Інтеграції | Через плагіни (можуть бути нестабільними) | Під будь-які API та протоколи |
| Продуктивність | Середня (на 10k сторінок може гальмувати) | Оптимізація під навантаження (LCP < 1 с) |
| Супровід | Оновлення ядра та плагінів | Єдиний контур підтримки |
Які можливості налаштування надає Wiki?
Моделі управління доступом: публічна (Wikipedia-модель), корпоративна (тільки співробітники, деякі розділи — тільки конкретні команди) та змішана. Для повторюваних типів статей використовуються шаблони: «Опис проекту», «Зустріч», «Постмортем», «Інструкція». При створенні сторінки вибирається шаблон, структура заповнюється.
Інтеграції
Git-backend — сторінки зберігаються в Git-репозиторії (Markdown-файли). Історія = Git commits. Редагування через веб або напряму в Git. Slack/Telegram — повідомлення при зміні відстежуваних сторінок. Confluence API — міграція існуючої бази. Економія на ліцензіях Confluence може сягати 40% при переході на кастомну Wiki.
Що входить в роботу?
- Аналіз вимог: виявляємо типи контенту, моделі прав, інтеграції.
- Проектування архітектури: схеми БД, структура сторінок, рендеринг.
- Розробка ядра: редактор, парсинг Wiki-посилань, історія, пошук.
- Налаштування прав та інтеграцій.
- Тестування: навантаження, конфлікти, migration.
- Документація та навчання користувачів.
- Підтримка після запуску (гарантія 6 місяців).
Терміни орієнтовно
| Етап | Термін |
|---|---|
| MVP (сторінки, посилання, історія, пошук, базові права) | 6–8 тижнів |
| Повна Wiki з графом, шаблонами, OT-редагуванням | 3–4 місяці |
| Додаткові інтеграції | +1–2 тижні |
Вартість розраховується індивідуально після обговорення вимог. Замовте розробку Wiki-системи у нас — отримайте консультацію інженера за 2–3 робочих дні. Зв'яжіться з нами для оцінки проекту.







