Об этом проекте
Bento — это офисный пакет с открытым исходным кодом, определяющая идея которого состоит в том, что документ и есть программное обеспечение: презентация представляет собой один самодостаточный HTML-файл, который несёт в себе собственные просмотрщик, режим докладчика и редактор. Откройте его в любом современном браузере — и это редактор; сохраните — и он перезаписывает собственный блок данных. Первое приложение, Bento Slides, — альтернатива PowerPoint, распространяемая в виде одного файла размером около 560 КБ (Bento_Slides.bento.html) без учётной записи и установщика.
Ключевые возможности, описанные в README:
- Портируемость в одном файле: презентация, шрифты, изображения, диаграммы, анимации и полный редактор путешествуют вместе; данные документа находятся в простом, читаемом блоке JSON near the top of the file, поэтому они доступны для проверки и редактирования внешними инструментами.
- Самостоятельное сохранение: файл перезаписывает собственный блок данных при сохранении через File System Access API, с запасным вариантом в виде скачивания.
- Морфинг-презентация: элементы с одинаковым id анимируются между слайдами по положению, размеру, цвету и градиентам, вычисляемым из модели документа, а не из DOM.
- Живая совместная работа: сквозное шифрование (AES-GCM) с ключами, хранящимися в файле, а не на сервере; необязательный слепой ретранслятор синхронизации хранит только шифротекст. Слияние использует собственный CRDT с посимвольным слиянием текста, проверяемым скриптом тестирования сходимости.
- Встроенные диаграммы: столбчатые, линейные, круговые и точечные, отрисовываемые движком без зависимостей, интерактивные во время презентаций, с морфингом данных между типами диаграмм.
- Формат, удобный для ИИ: поскольку документ представляет собой простой JSON, файловые агенты (Claude Code, Cursor, Aider) могут редактировать .bento.html на месте, а чат-боты могут выполнять круговой обмен JSON через window.bento.loadDoc. Документация подтверждает работу офлайн с локальными открытыми моделями через Ollama, llama.cpp или LM Studio.
- Подписанные самообновления: релизы подписаны ECDSA и предлагаются внутри приложения; обновление записывает новый файл, а старый остаётся для отката.
- Другие перечисленные возможности: режим докладчика, комментарии, макеты, скрытые интерактивные состояния, раскрытие при наведении, траектории движения, экспорт в PDF, размеры страниц и 8 языков интерфейса.
Архитектура описывается как модель документа на TypeScript (slides/src/model.ts) с единым рендерером, используемым для холста редактора, миниатюр и режима презентации; навигацией управляет Reveal.js; анимация, диаграммы и совместная работа — собственные компоненты. Оболочка сжимается примерно до 560 КБ, а блок документа остаётся в виде простого текста.
README откровенно описывает модель безопасности: ключи совместной работы создаются на стороне клиента и существуют только в файле, поэтому владение файлом равносильно членству, а ротация ключей — это отзыв доступа; ретранслятор видит шифротекст, время соединений и хеш ключа комнаты; имена присутствия являются заявками, а не доказательствами; проверки обновлений получают статический манифест и проверяют подпись, хеш и монотонность версии. Известные компромиссы включают отмену на основе снимков во время живой совместной работы и ориентированный на настольные компьютеры опыт редактирования, тогда как телефоны лучше подходят для просмотра и презентации.
Сборка из исходного кода требует Node 20+ и npm; приложение собирается как одностраничное без бэкенда. Команды включают npm run dev, npm run build:single и скрипт тестирования сходимости CRDT. Релизы выпускаются локально, чтобы ключ подписи оставался на машине сопровождающего. Документация охватывает архитектуру, нормативную спецификацию формата bento/slides, дизайн совместной работы и модель угроз, а также руководство для агентов. Дорожная карта называет будущие приложения: bento/spaces (заметки), bento/dash (таблицы и листы) и bento/vault, каждое как отдельный распространяемый .bento.html. Всё лицензировано под MIT, с включёнными компонентами среды выполнения под MIT и встроенными шрифтами под OFL.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.