Ваши задачи. Ваши устройства. Только ваши. Off the cloud, still logged.
Бесплатный менеджер задач с открытым исходным кодом, работающий локально. Без учётной записи, без телеметрии, без подписки — навсегда. Запускается в браузере, как нативное Android-приложение и как десктопное приложение для Windows — все три варианта используют одну и ту же кодовую базу и синхронизируются друг с другом через вашу собственную сеть. (Актуальная версия всегда отображается в бейдже выше; что изменилось — в docs/CHANGELOG.md.)
Навигация: Скриншоты · Зачем это нужно · Возможности · Как получить приложения · Быстрый старт · Документация · Участие в разработке
Скриншоты
Реальные снимки экрана из реальной сборки — никаких макетов, никакого Lorem Ipsum.
Dashboard — все проекты с первого взгляда, закреплённые и просроченные задачи на виду
Kanban — колонки с перетаскиванием, сроки выполнения на карточках, теги и прогресс чеклистов
List — сортируемые столбцы, сохранённые фильтры, многоуровневая сортировка
Focus — выберите до 3 задач на день, отсортированных по приоритету: закреплённые → просроченные → ближайшие по сроку
Task detail — полноценный редактор поверх месячного календаря Agenda
Search (Ctrl+K) — единая строка для поиска задач, заметок, текста чеклистов и команд
Светлая или тёмная тема — на каждом экране, а не переключатель, который работает через раз
Зачем это нужно
Одна общая кодовая база на Svelte, завёрнутая тремя способами (браузер, Android, Windows). Каждое устройство хранит собственную локальную базу данных; включив синхронизацию, телефон и компьютер общаются напрямую через домашний Wi-Fi — никакой облачный сервис не стоит посередине, не нужно создавать учётную запись, ни одна функция не спрятана за платный доступ. В обоих режимах приложение полностью работает офлайн.
Изначально это был личный инструмент, и та же модель синхронизации хорошо подходит для небольшой, доверенной группы, находящейся в одном месте, — семьи, маленькой команды, офиса, совместно использующего доску в одной сети. Это не продукт для удалённой работы с множеством пользователей: нет разграничения прав, нет учётных записей, синхронизация возможна только в рамках одной локальной сети. Подробнее о границах применения — в манифесте в начале docs/DECISIONS.md.
Проект создавался открыто и намеренно — каждое решение, включая те, что впоследствии были пересмотрены, зафиксировано: docs/DECISIONS.md (почему именно так, включая ответы на вопросы «а почему не просто…»), docs/ROADMAP.md (что запланировано), docs/TECH.md (реальная архитектура) и полный docs/CHANGELOG.md начиная с первого релиза.
Статус: завершён и используется каждый день — не заброшен, не в активной разработке. Создавался в течение июля 2026 года; с 1 августа 2026 года является основным менеджером задач автора. Текущая работа — исправление ошибок, обнаруженных в реальном использовании, обновление зависимостей и проверка безопасности. Новые функции появляются только при наличии реальной потребности, а не просто идеи. docs/STORY.md — честный рассказ о том, как всё это создавалось, включая месяц, когда фундамент был выброшен и переписан заново, и ошибку в резервном копировании, обнаруженную за двенадцать часов до того, как это стало бы критично.
Возможности
Складывалось месяцами реального ежедневного использования — часть возможностей пришла из изначального плана, часть — из замеченного в процессе работы. Подробнее обо всём: docs/CHANGELOG.md (последние релизы) и docs/archive/changelog-archive.md (всё более раннее, по одной строке на релиз).
Основные функции управления задачами
-
Пространства (Spaces) и проекты — организуйте работу в цветные пространства, каждое из которых содержит несколько проектов с собственным набором статусов
-
Виды Kanban, List, Table и Agenda (ориентированный на дедлайны) для каждого проекта — с сохранёнными фильтрами, выбором и переупорядочиванием столбцов, многоуровневой сортировкой в List/Table
-
Режим Focus — ежедневное ограничение фокуса: выберите до 3 задач на день из сортируемого по принципу round-robin выборщика, а не из автоматически вычисляемого списка приоритетов, которому никто не доверяет
-
Чеклисты с индикатором прогресса, теги с автодополнением в рамках проекта и опциональным цветом, пользовательские поля (глобальные, не привязанные к проекту)
-
Детали карточки — полноценный редактор задачи: заметки со счётчиком длины, приоритет, срок выполнения, время напоминания (независимо от срока), статус, чеклист, пользовательские поля, ссылки на связанные задачи, прикреплённые файлы и журнал изменений каждой карточки
-
Прикреплённые файлы — фотографии, PDF, таблицы и любые другие файлы (кроме HEIC/HEIF, пока не поддерживаются), до 10 МБ каждый и до 10 штук на задачу. Изображения масштабируются и перекодируются прямо на устройстве перед сохранением, чтобы фотография с телефона не раздувала базу данных. Вложения синхронизируются так же, как всё остальное, — без отдельного шага загрузки
-
Повторяющиеся задачи (ежедневно/еженедельно/ежемесячно) — задача сбрасывается на месте вместо создания дубликата; корректно обрабатываются даты в конце месяца (задача со сроком 31-го числа переносится на 28-е/29-е/30-е в более коротких месяцах, а не через два месяца) и переходы на летнее/зимнее время
-
Быстрые ярлыки для установки срока при создании задачи; дублирование задачи; шаблоны проектов (копирование структуры статусов, опционально вместе с открытыми задачами)
-
Dashboard — все проекты с первого взгляда, закреплённые задачи, просроченные задачи, еженедельная сводка «выполнено за прошедшую неделю»
-
Quick Add (Ctrl+N) и Global Search (Ctrl+K) из любого места — поиск охватывает названия задач, заметки и текст чеклистов, а не только названия — плюс палитра команд, которая находит действия, а не только задачи
-
Undo и Recycle — «мягкое» удаление везде с возможностью отмены, полноценный раздел «Корзина» с восстановлением/окончательным удалением и настраиваемой политикой хранения
Синхронизация — это основная идея, а не дополнение
Локальная синхронизация телефон–компьютер (и компьютер–компьютер) — именно ради этого проект вообще появился: единый список задач, всегда актуальный, на каждом вашем устройстве, без передачи данных облачному провайдеру. Большинство self-hosted, local-first приложений ограничиваются фразой «синхронизация возможна, если вы развернёте собственный сервер» — для тех, кто не готов этим заниматься, это реальный барьер. Windows-приложение Offlog само является сервером: в него встроен NyxDB (небольшой, самостоятельно написанный сервер с протоколом CouchDB), который настраивается при первом запуске, а телефон находит его в сети автоматически. Отдельные технические компоненты (репликация по протоколу CouchDB, обнаружение через mDNS, обмен учётными данными через парный handshake) сами по себе не новы — в том и состоит задача: упаковать всё три вместе так, чтобы нетехнический пользователь их вообще не видел. (До версии v5.7.10 в качестве встроенного сервера использовался настоящий Apache CouchDB; затем его заменил NyxDB, что позволило сократить размер установщика примерно в 10 раз — подробная история в docs/DECISIONS.md.)
-
Живая двунаправленная репликация по протоколу CouchDB — запись на одном устройстве отображается на другом в реальном времени, пока оба находятся в одной сети
-
Windows-приложение поставляется с NyxDB в комплекте — ничего не нужно устанавливать отдельно, никаких знаний администрирования серверов не требуется. При первом запуске приложение автоматически генерирует случайный порт, пароль администратора и идентификатор базы данных, запуская NyxDB как управляемый фоновый процесс на всё время работы приложения
-
Телефон обнаруживает компьютер автоматически через mDNS (
_offlog._tcp) и выполняет сопряжение по одноразовому 6-значному коду, показанному на компьютере, — никакого ручного ввода IP-адреса, никакой передачи учётных данных по воздуху до завершения сопряжения, а код блокируется после нескольких неверных попыток -
Если IP-адрес компьютера меняется (обновление DHCP, перезагрузка роутера), телефон автоматически переопределяет его при следующей неудачной синхронизации, не требуя повторного сопряжения вручную
-
Приложение полностью работает офлайн без какой-либо настройки, если синхронизация не включена; определение отсутствия соединения, понятные сообщения об ошибках синхронизации и интерфейс разрешения конфликтов означают, что потеря связи всегда заметна и устранима — никакой тихой потери данных
-
Произвольные имена устройств со стабильным внутренним идентификатором, плюс список «недавно виденных устройств»
Всё вышеперечисленное работает исключительно в локальной сети (LAN) — намеренно — подробнее о том, почему синхронизация вне домашней сети и учётные записи были сознательно выведены за рамки проекта, в docs/DECISIONS.md.
Два телефона без компьютера — хотите обмениваться данными? Не поддерживается — только Windows-приложение может выступать синхронизирующим узлом, к которому подключаются телефоны (логику решения см. в разделе mesh-sync файла DECISIONS.md). Для переноса данных между двумя телефонами, которые никогда не будут подключены к одному компьютеру, используйте экспорт/импорт (Настройки → Резервное копирование и хранилище).
Переезд на новый компьютер? Всё, что нужно Offlog, — данные и настройки подключений — хранится в одной папке на старом компьютере (проверено: папка переживает обычное удаление и переустановку, поэтому описанный способ нужен только при смене железа, а не при переустановке на том же компьютере). Скопируйте всю папку на новый компьютер до первого открытия Offlog там — и все ранее подключённые телефоны переподключатся автоматически, без необходимости сопрягать их заново. (Для любопытных: папка находится по адресу %APPDATA%\com.offlog.app\ в Windows.)
Android-приложение — протестировано и работает на реальном устройстве
-
Нативное приложение на базе Capacitor, используется каждый день, а не просто собрано и забыто
-
Виджеты главного экрана для Quick Add, Agenda в режиме только для чтения и списка проектов — чтобы добавить задачу или проверить срок, не открывая приложение
-
Нативные уведомления с кнопками «Готово»/«Отложить на 1 час» прямо с экрана блокировки
-
Кнопка «Назад» закрывает открытое модальное окно или панель — именно так, как это должно работать
-
Пока не в Google Play — это запланировано; подробнее в разделе «Как получить приложения»
Windows-приложение — основной «приложение для людей»
-
Нативное приложение на базе Tauri, оборачивает ту же веб-сборку без изменений, со встроенным хостом синхронизации NyxDB (см. раздел «Синхронизация»)
-
Нативные уведомления Windows с возможностью открыть приложение по клику и работающими запланированными напоминаниями (не просто запасной вариант через браузерное уведомление)
-
Нативные диалоги «Сохранить как» для резервного копирования и экспорта вместо тихой загрузки файла браузером внутри WebView
Небольшой размер — намеренно. Android- и Windows-приложения прошли многократные чистки именно для того, чтобы оставаться лёгкими: удалён мёртвый код, убраны неиспользуемые зависимости, встроенный хост синхронизации в Windows-приложении заменён на специально написанный сервер (NyxDB) вместо универсальной СУБД, что позволило сократить установщик примерно в 10 раз. Проверка размера бандла входит в процедуру каждого релиза. Это не случайность: каждые несколько релизов специально проводится проход по обслуживанию, чтобы выявить раздутие и регрессии до того, как они попадут в выпуск (см. docs/MAINTENANCE.md).
Данные, резервное копирование и целостность
-
Полный процесс резервного копирования (с выбором области) и восстановления, экспорт в JSON и CSV
-
Инструмент проверки и восстановления базы данных (Check Database / Repair Issues), который находит и исправляет осиротевшие задачи и проекты, недопустимые ссылки на статусы и неразрешённые конфликты синхронизации
-
Предупреждения о нехватке места при использовании более 80% с подсказками по освобождению,
db.compact()привязан к реальному действию «Оптимизировать хранилище»
Внешний вид и доступность
-
Светлая / Тёмная / Системная тема, переключатель высокой контрастности, переключатель уменьшения анимации, который реально читается каждой анимацией в приложении
-
Полноценное управление с клавиатуры: захват фокуса в каждом модальном окне, видимые рамки фокуса, панель горячих клавиш, Escape закрывает всё
-
Контрастность проверена и приведена в соответствие со стандартом WCAG AA по всей палитре
Платного уровня нет, ни одна функция никогда не будет спрятана за ним — подробнее в манифесте docs/DECISIONS.md.
Как получить приложения
Загрузите последний установщик для Windows и APK для Android со страницы GitHub Releases. Операционная система предупредит вас перед установкой (неподписанное приложение, не из Google Play) — это ожидаемо и не является тревожным сигналом о качестве кода; настройка подписи и публикации — отслеживаемая цель (см. раздел «Open» в docs/ROADMAP.md — листинг в Google Play готов и ожидает проверки Google; заявка на подпись Windows подана в SignPath Foundation в рамках программы для open-source проектов и была возвращена с просьбой повторно обратиться после набора публичной активности, см. раздел «Windows code signing» в docs/TECH.md). Главное — скачивайте только со страницы Releases этого репозитория, а не с зеркал.
Windows — основное приложение для повседневного использования: поставляется со встроенным сервером синхронизации, ничего лишнего устанавливать не нужно, автоматически проверяет обновления (подписанный установщик, журнал изменений в приложении, явный запрос на перезапуск). Android сегодня работает через установку APK в обход магазина, после публикации в Play Store будет обновляться там же автоматически. Веб-сборка (npm run dev) — это среда для разработки и тестирования, а не основной способ использования приложения.
Сделано как настоящий продукт, а не прототип
Каждый релиз: production-сборка без предупреждений, чистая проверка типов, полный прогон тестов, ручная проверка светлой/тёмной темы — всё контролируется CI, а каждые несколько релизов проводится проход по обслуживанию для выявления мёртвого кода и регрессий (см. docs/MAINTENANCE.md). Перед открытым выходом был выполнен полный аудит безопасности и очистка истории git от учётных данных (см. раздел «Public release» в docs/DECISIONS.md).
Быстрый старт
Все описанные ниже действия выполняются в терминале — GUI-установщика для разработки нет. При желании можно использовать графический клиент Git/npm, но для каждого шага есть эквивалентная команда в командной строке, так что ничего специального не требуется.
Что нужно установить в зависимости от целевой платформы:
| Цель | Требования |
|---|---|
Веб-сборка |
Node.js 20+ (включает npm) |
Android-сборка |
Всё выше + Android Studio (JDK поставляется вместе с ним) |
Windows desktop-сборка |
Всё выше + Rust + предварительные требования Tauri |
Веб-приложение (полностью работает офлайн, без дополнительной настройки):
cd offlog-app
npm install
npm run dev # http://localhost:5173
Чтобы включить синхронизацию, создайте файл offlog-app/.env.local:
VITE_SYNC_URL=http://192.168.x.x:5984/offlog
VITE_SYNC_USER=youruser
VITE_SYNC_PASS=yourpass
Сборка для веба (npm run build, результат в offlog-app/dist/) или Android (npx cap sync android, затем сборка через Android Studio или Gradle).
Windows desktop-приложение — соседний проект в папке offlog-desktop/ (Tauri), оборачивает ту же веб-сборку и встраивает хост синхронизации NyxDB (полностью автономен — отдельный сервер не нужен даже при разработке):
cd offlog-desktop
cargo tauri dev
Полные шаги сборки и деплоя, детали окружения и полное описание архитектуры (включая точный принцип работы обнаружения через mDNS и handshake сопряжения) — в docs/TECH.md.
Документация
Всё, что не поместилось в этот обзор, находится в папке docs/:
| Документ | Содержание |
|---|---|
Манифест, открытые вопросы, требующие внешней оценки, и обоснование неочевидных решений |
|
Архитектура, модель данных, внутренняя работа синхронизации, токены тем, процесс релиза и подписи |
|
Текущий статус и запланированная работа |
|
Подробная история последних версий |
|
Более ранние релизы, по одной строке каждый, плюс полный журнал проходов по обслуживанию |
|
История выполненных, отклонённых и отложенных пунктов роадмапа |
|
Слоган, описание, голос бренда, визуальная идентичность, условия использования торговой марки и форков |
|
Руководство для участников и правила для людей и AI-ассистентов |
Участие в разработке
Создавался примерно за месяц, в одиночку — Claude занимался непосредственным написанием кода, тогда как все идеи, решения по интерфейсу и циклы тестирования шли от одного владельца, выступавшего в роли продакт-менеджера и QA. Кодовая база намеренно задокументирована (CLAUDE.md + docs/) именно для того, чтобы AI-ассистент (или человек) мог подхватить её таким же образом для форка.
Есть реальный, честный список того, что помогло бы проекту двигаться вперёд — подробности о настройке и механике PR в CONTRIBUTING.md, но если коротко, наиболее ценный вклад прямо сейчас:
-
Настоящая подпись кода (Windows) и публикация в Google Play — сам процесс сборки и релиза уже автоматизирован (см. ниже), не хватает только платных учётных данных и человека, готового взять на себя эти расходы и процесс
-
iOS-сборка — у автора сейчас нет ресурсов открыть это направление в одиночку, поэтому оно полностью открыто для того, кто захочет этим заняться
-
Общие идеи, исправления и код-ревью — если что-то кажется более простым, безопасным или лучше структурированным, такая обратная связь по-настоящему приветствуется, а не просто принимается
Кодовая база намеренно структурирована для форков и легко читается AI: CLAUDE.md документирует инварианты, которые ассистент (или человек) должен знать перед изменением db.ts, системы тем или кода Android-платформы.
Лицензия
MIT — см. LICENSE.