Об этом проекте

Fold — это собственное приложение для управления задачами, совместимое с любым сервером CalDAV, соответствующим спецификации. Разработано как личное программное обеспечение, Fold сохраняет все задачи в обычных свойствах VTODO, которые остаются читаемыми другими клиентами CalDAV, обеспечивая портируемость и долговечность данных. Ключевые особенности включают парсер быстрого добавления с использованием естественного языка — например, ввод «Убрать gutter завтра в 15:00 #chores p1» автоматически извлекает дату, время, список и приоритет при нажатии Enter. Представления, такие как Сегодня, Завтра, Следующие 7 дней, Обзор и Поиск, объединяют данные со всех списков. Приложение распознаёт особыми имена списков: задачи по здоровью отображаются в начале каждого представления, а список покупок сворачивается в одну строку, поскольку вопрос не в количестве товаров, а в том, была ли сделана покупка. Поддерживается работа в автономном режиме благодаря очереди локальных изменений, которые воспроизводятся при восстановлении соединения. Приложение ориентировано на работу с клавиатурой и может быть установлено как Progressive Web App (PWA) на мобильных устройствах. Уведомления, страйки и постоянные напоминания отсутствуют. В системе нет базы данных пользователей или хранилища сессий. При входе в систему учетные данные CalDAV проверяются на сервере и шифруются с помощью AES-256-GCM в HttpOnly cookie, который хранится в браузере. JavaScript не может прочитать cookie. Каждый последующий запрос расшифровывает учетные данные в памяти сервера для выполнения операций CalDAV, затем немедленно удаляет их. Перезапуск контейнера ничего не теряет, потому что ничего не сохраняется на стороне сервера. Для развёртывания используется Docker с единственной обязательной переменной окружения SESSION_SECRET, которая шифрует cookie с учетными данными. Рекомендуется использовать обратный прокси с TLS, поскольку cookie содержит конфиденциальные данные. Опция ALLOW_INSECURE_COOKIE доступна для доверенных локальных сетей без TLS. CALDAV_ALLOWED_HOSTS позволяет ограничить, какие серверы CalDAV принимает форма входа, защищая публичные экземпляры. Fold намеренно не поддерживает подзадачи, повторяющиеся задачи, фоновую синхронизацию или несколько аккаунтов. Существующие свойства RRULE сохраняются, но никогда не создаются или редактируются приложением. Одновременно активен только один аккаунт CalDAV. Проект распространяется по лицензии MIT. Для разработки используется Bun, с тестированием на типизированных слоях, включая модульные тесты с Vitest, интеграционные тесты с реальным сервером Radicale и e2e-тесты с Playwright. Полные спецификации и архитектурные решения документированы в каталоге docs репозитория.