Kage: документация без интернета в одном файле
Знакомо чувство, когда ты уже в самолёте, открываешь ноутбук и понимаешь: нужная документация осталась там, где есть интернет. А завтра презентация, и без неё ты как без рук.
Что такое kage
Kage — это утилита, которая берёт сайт и превращает его в один компактный исполняемый файл. Она скачивает страницу, собирает ресурсы, упаковывает всё в один бинарник и позволяет открыть контент где угодно, даже без сети.
Название отсылает к японскому слову «тень» (影, kage): сайт как будто отбрасывает свою офлайн-копию.
Главная идея простая: JavaScript убирается полностью. Для статического контента это снижает сложность и убирает лишние зависимости — остаются HTML и CSS, которые работают предсказуемо и офлайн.
КАК РАБОТАЕТ KAGE
─────────────────
┌─────────────┐ ┌─────────────┐ ┌─────────────┐
│ Сайт │ │ Скачивание │ │ Бинарник │
│ example.com│────▶│ ресурсов │────▶│ kage.bin │
└─────────────┘ └─────────────┘ └─────────────┘
│
┌──────┴──────┐
▼ ▼
HTML/CSS Картинки
и шрифты и медиа
Механика: один файл вместо сотни
Типичный сайт часто состоит из HTML-страницы, множества CSS-файлов, картинок, шрифтов и иконок. Обычное сохранение через браузер даёт папку с десятками файлов и вложенными путями. Переносить это неудобно.
Kage делает иначе: он скачивает ресурсы асинхронно, встраивает их прямо в бинарник, удаляет JavaScript и собирает всё в один исполняемый файл. Картинки кодируются в base64, стили инлайнятся, а результат открывается локально без сервера и без интернета.
- Скачивает все ресурсы страницы параллельно
- Встраивает их в бинарник
- Удаляет JavaScript
- Упаковывает всё в один файл
Зачем это нужно
Документация в дороге. Можно заранее сохранить нужные разделы и открыть их в полёте без интернета.
Архивирование важных страниц. Если ресурс может исчезнуть, локальная копия поможет сохранить доступ к нему.
Демонстрации без сети. Один файл удобно показать заказчику или коллеге на выезде, когда интернет подводит.
Передача контента. Когда нужно отправить набор страниц, один бинарник часто удобнее множества вложений.
Кому это полезно
| Аудитория | Зачем |
|---|---|
| Разработчики | Оффлайн-документация и переносимые демо |
| DevOps-инженеры | Резервирование конфигов и мануалов |
| Преподаватели | Материалы без доступа к сети |
| Путешественники | Справочники и офлайн-чтение |
Основной сценарий — именно документация, особенно если у проекта слабая или отсутствующая офлайн-версия.
Ограничения
У инструмента есть и слабые стороны. Если сайт построен на React, Vue или другом SPA и контент появляется только через JavaScript, Kage не поможет: без JS страница может оказаться пустой.
Также стоит учитывать размер: изображения в base64 раздувают итоговый файл. Для небольших страниц это нормально, но для тяжёлых лендингов или богатых медиаконтентом сайтов размер быстро растёт.
Ещё одно ограничение — потеря интерактивности. Формы, анимации и реактивные компоненты не сохраняются. И, конечно, важно помнить об этике: не стоит использовать такой подход для платного или защищённого авторским правом контента.
СТАТИЧЕСКИЙ САЙТ │ ДИНАМИЧЕСКИЙ САЙТ ───────────────────────── │ ───────────────────────── ✓ Отлично работает │ ✗ Контент не загрузится ✓ HTML/CSS отрендерятся │ ✗ JS необходим для контента ✓ Один бинарник │ ✗ Требует сервер и сеть ───────────────────────── │ ───────────────────────── Документация │ Gmail, Twitter, React-приложения Блоги, вики │ SPA с API-вызовами Лендинги (простые) │ Онлайн-редакторы
Вывод
Kage — это не универсальный комбайн, а точечный инструмент для одной задачи: сделать сайт портативным и доступным без интернета. Для документации, архивов и офлайн-демо он выглядит очень практично.
В мире, где почти всё уходит в облако, такие решения особенно ценны: минимум лишнего, максимум пользы.
Ссылки
- Kage на GitHub — репозиторий проекта
Дмитрий Полухин — продуктовый дизайнер. Пишу про разработку, AI и дизайн интерфейсов. Обо мне, контакты и профили.