Для чего
Статьи, отложенные на потом, теряются по вкладкам и закладкам. burkmak собирает их в одну библиотеку на своём сервере, извлекает текст без рекламы и отправляет на читалку Kobo без правки прошивки. Выделения и заметки уходят в Obsidian.
Сохранение
- Откуда угодно. Ссылка сохраняется из веба, мобильного приложения, share-меню Android или букмарклета в браузере.
- Метаданные в фоне. Заголовок, сайт, описание и картинка появляются без перезагрузки страницы, по SSE.
- Текст сразу. Статья извлекается при сохранении, и ридер, OPDS и Kobo получают её готовой.
- Порядок. Теги, статусы (непрочитано, прочитано, в архиве) и избранное. У каждого пользователя своя библиотека.
Чтение
- Ридер на Readability. Статья без рекламы и обвеса. Копия остаётся, даже если оригинал удалят.
- Картинки кэшируются на своём сервере.
- Полнотекстовый поиск по заголовку, адресу и тексту статьи на SQLite FTS5.
- Выделения цветом и заметки к ним.
- Светлая и тёмная тема.
Kobo
- OPDS-каталог с обложками, пагинацией и поиском. Статьи скачиваются в EPUB и KEPUB, каталог добавляется на обычную Kobo через настройки.
- Нативная синхронизация по протоколу магазина Kobo. Читалка забирает новые статьи при подключении, а статус прочтения возвращается обратно: дочитанная на Kobo статья становится прочитанной в burkmak, а архивированная в приложении исчезает с устройства. Нужен HTTPS. Протокол проверен на полной симуляции, проверка на живом устройстве впереди.
Obsidian
- Экспорт в Markdown. API отдаёт статью заметкой с источником, метаданными, выделениями и заметками. Повторный экспорт обновляет ту же заметку.
- Плагин для Obsidian синхронизирует экспорт в хранилище.
Под капотом
Бэкенд на NestJS с SQLite, веб на Nuxt, мобильный клиент на Flutter. Фоновые задачи выполняет воркер поверх базы, события в клиенты идут по SSE, внешних сервисов нет: локальный стек — два контейнера. API описан в OpenAPI, клиенты для TypeScript и Dart генерируются из спецификации.
Общий каркас Course Shelf, Coriolis и burkmak разобран в посте «Контракт, от которого код не может уйти».
Установка
Каждый релиз публикует Docker-образы для amd64 и arm64. Стек поднимается
командой docker compose up -d.



