Capsule: веб-приложение и данные в одном SQLite-файле
Capsule — инструмент на Rust и Tauri 2.0, упаковывающий HTML-приложение и его данные в один .capsule-файл на базе SQLite. Разбираем архитектуру и применение.
Один файл — вся реальность приложения
Представьте: вы создаёте трекер задач, личную CRM или интерактивное портфолио — и отправляете его коллеге одним файлом. Не ссылкой, не архивом с инструкцией по установке, не приглашением в облачный сервис. Просто файл, который получатель открывает и сразу работает с живым, полноценным приложением.
Именно это обещает Capsule — проект, появившийся в июне 2026 года на Hacker News в разделе «Show HN» и мгновенно набравший сотни комментариев. Это приложение, написанное на Rust с использованием Tauri 2.0, позволяет упаковать HTML-приложение и все его данные в единый SQLite-файл; HTML и связанные ресурсы встраиваются прямо в базу данных.
В эпоху тотальной облачной зависимости это звучит как ересь. Но давайте разберёмся, почему идея работает — и почему она может оказаться именно тем, чего не хватало нишевому инструментостроению.
Что такое Capsule и как это устроено изнутри
Capsule превращает простые текстовые описания в полноценные, самодостаточные десктопные приложения — без облачных серверов, без настройки баз данных, без сложных сборочных цепочек.
Файл с расширением .capsule — это обычная SQLite-база данных, в которую вшито буквально всё:
- HTML/CSS/JS интерфейс — фронтенд хранится как BLOB прямо в таблице базы;
- Медиаресурсы — изображения, шрифты, иконки;
- Пользовательские данные — записи, состояние приложения, история;
- Схема БД — SQL-миграции и структура таблиц.
Capsule упаковывает пользовательский интерфейс, медиаресурсы и локальную базу данных в единый переносимый .capsule-файл, который можно отправить через WhatsApp, AirDrop или email, как обычный PDF или Word-документ.
Технологический стек
В основе проекта — связка из современных технологий:
| Технология | Роль в Capsule |
|---|---|
| Rust | Системное ядро, управление памятью |
| Tauri 2.0 | Кросс-платформенный десктопный shell |
| SQLite | Единый файл-хранилище для всего |
| HTML/CSS/JS | Интерфейс приложения |
| AI (ChatGPT/Claude/Gemini) | Генерация .capsule-приложений по промпту |
Tauri — это open-source фреймворк для создания кросс-платформенных десктопных и мобильных приложений под Linux, macOS, Windows, Android и iOS с использованием веб-фронтенда. Tauri v2 вышел как стабильный релиз 2 октября 2024 года.
Таким образом, .capsule-файл — это не просто архив. Это запускаемый документ: Tauri-оболочка читает встроенный HTML из SQLite и рендерит его как нативное приложение, одновременно предоставляя ему доступ к той же базе данных для чтения и записи пользовательских данных.
.capsule-файл, Tauri-оболочка (установленная один раз на устройстве) читает из SQLite встроенный HTML, запускает его во встроенном WebView и даёт фронтенду SQL-доступ к той же базе данных через Rust-бэкенд. Всё — в рамках одного файла.Почему SQLite — идеальный контейнер
Выбор SQLite в качестве «упаковки» кажется нестандартным, но он абсолютно логичен.
SQLite — это самодостаточный, serverless движок базы данных, который работает внутри приложения и хранит всё в одном файле. Он поддерживает настоящий SQL, ACID-транзакции и — в режиме WAL — конкурентное чтение при единственном писателе.
Для задачи Capsule это означает:
1. Атомарность операций. Когда пользователь сохраняет данные в приложении, SQLite гарантирует, что запись либо завершится полностью, либо не произойдёт вовсе. Никаких «полусохранённых» состояний.
2. Единый файл = простое распространение. Поскольку база данных — это единственный файл, SQLite хорошо подходит для распространения датасетов; вы можете поставлять .db-файл вместе с приложением, содержащий справочные данные, таблицы поиска или кешированные результаты.
3. Нет сетевых зависимостей. SQLite идеально вписывается в приложения Tauri: он serverless, не требует конфигурации, а база данных содержится в одном файле — это совпадает с целью Tauri создавать лёгкие, распространяемые десктопные приложения.
4. Надёжность в продакшне. С режимом WAL и современным железом SQLite справляется с продакшн-нагрузками для подавляющего большинства веб-приложений.
graph TD
A[Пользователь открывает .capsule] --> B[Tauri-оболочка]
B --> C[Читает HTML из SQLite]
C --> D[Запускает WebView с фронтендом]
D --> E[Пользователь взаимодействует с UI]
E --> F[JS вызывает Rust backend]
F --> G[Rust пишет/читает данные в SQLite]
G --> H[Данные остаются в том же .capsule-файле]
H --> E
AI как генератор приложений: промпт → .capsule-файл
Одна из самых интересных особенностей Capsule — интеграция с AI-ассистентами для генерации приложений по текстовому описанию.
Вы описываете приложение, макет или функции, которые хотите построить — и система генерирует полноценный однофайловый .capsule-контейнер с HTML UI, схемой и локальными данными SQLite.
Доступна сборка через ChatGPT, Claude, Gemini и другие AI-ассистенты.
Вот пример того, как выглядит промпт для создания простого трекера задач:
Создай приложение для отслеживания ежедневных задач.
Поля: название задачи, приоритет (низкий/средний/высокий),
статус (новая/в процессе/завершена), дедлайн.
Добавь фильтрацию по статусу и сортировку по дедлайну.
Тёмная тема, минималистичный дизайн.
AI генерирует полный HTML/JS/CSS код с SQL-схемой, упакованный в .capsule. Можно менять функции, переключать тёмную тему или изменять схему данных на лету через прямые AI-промпты или MCP-инструменты для кода.
Реальные сценарии использования
Capsule объединяет простоту документов с мощью нативных десктопных и мобильных приложений. Это звучит абстрактно, но на практике открывает несколько конкретных ниш:
1. Личные инструменты и утилиты
Трекеры привычек, личные CRM, бюджетные таблицы с логикой — всё то, что слишком сложно держать в обычном Excel, но слишком личное, чтобы доверять облаку. Capsule хранит личные данные там, где им и место — на вашем устройстве; всё создаётся прямо в файле, давая полное владение без единого облачного сервера.
2. Обмен интерактивными данными
Отправьте файл через WhatsApp, AirDrop или email, как PDF или Word-документ. Когда получатель откроет файл, он запустится мгновенно со всеми предзагруженными данными. Представьте: вы присылаете коллеге не скучную таблицу Excel, а живой дашборд с фильтрами и графиками.
3. Портфолио и презентации
Портфолио с проектами, кейс-стади и ресурсами, упакованное в один файл — это принципиально другой уровень впечатления по сравнению с PDF или ссылкой на Notion.
4. Офлайн-приложения
Capsule работает на 100% офлайн: получайте доступ к приложениям в самолёте, в метро или полностью без подключения к сети.
5. Инструменты команды без DevOps
Маленькая команда может создать и распространить внутренний инструмент (чеклист для онбординга, шаблон отчёта с логикой, трекер спринта) без деплоя, без сервера и без учётных записей.
Capsule vs. альтернативы: честное сравнение
| Критерий | Capsule (.capsule) | TiddlyWiki (HTML) | Notion / Airtable | Excel/Google Sheets |
|---|---|---|---|---|
| Хранение данных | SQLite внутри файла | Всё в одном HTML | Облако | Облако / локально |
| Портативность | ✅ Один файл | ✅ Один файл | ❌ Только ссылка | ⚠️ Нужен Office |
| Офлайн | ✅ Полная | ✅ Полная | ❌ | ⚠️ Частичная |
| Интерактивность | ✅ Полноценный UI | ⚠️ Ограниченная | ✅ | ⚠️ Макросы |
| Приватность | ✅ Данные на устройстве | ✅ | ❌ Данные у вендора | ⚠️ |
| AI-генерация | ✅ Встроена | ❌ | ⚠️ Частично | ❌ |
| Порог входа | Низкий (промпт) | Средний | Низкий | Низкий |
| Масштабируемость | Личное/команда | Личное | Команда/Enterprise | Личное/команда |
«Один файл, целое приложение. Делитесь как документом, открывайте как приложением.» — девиз Capsule точно передаёт суть философии local-first разработки.
ТiddlyWiki — ближайший исторический аналог: единый HTML-файл, хранящий и приложение, и данные. Но SQLite даёт Capsule структурированное хранение, запросы и транзакционность, которых у TiddlyWiki нет.
Как начать работу с Capsule
Самый быстрый путь — через сайт withcapsule.app:
- Скачайте приложение для macOS (доступны и другие платформы).
- Опишите приложение в текстовом поле или выберите AI-ассистент.
- Получите
.capsule-файл — готовое работающее приложение. - Используйте или поделитесь — отправьте файл кому угодно.
Для разработчиков, которые хотят писать .capsule-приложения вручную, структура файла открытая: это стандартная SQLite-база данных со специальными таблицами для хранения ресурсов.
-- Пример структуры .capsule-файла
CREATE TABLE _capsule_assets (
path TEXT PRIMARY KEY, -- 'index.html', 'style.css' и т.д.
content BLOB NOT NULL, -- Содержимое файла
mime_type TEXT -- 'text/html', 'text/css'
);
CREATE TABLE _capsule_meta (
key TEXT PRIMARY KEY,
value TEXT
);
-- Пользовательские таблицы создаются самим приложением:
CREATE TABLE tasks (
id INTEGER PRIMARY KEY AUTOINCREMENT,
title TEXT NOT NULL,
status TEXT DEFAULT 'new',
created_at DATETIME DEFAULT CURRENT_TIMESTAMP
);
Трекер задач — опишите поля, приоритеты, статусы. AI генерирует полный UI с фильтрами.
Рецептник — список рецептов с ингредиентами, тегами и поиском. Всё офлайн, всё в одном файле.
Дашборд проекта — статусы задач, временная шкала, заметки. Поделитесь с командой одним файлом.
Заключение: local-first возвращается
Capsule — это не просто технический трюк. Это манифест против cloud-first усталости: когда для каждого маленького инструмента нужен аккаунт, подписка, доступ к интернету и доверие к чужому серверу.
Capsule использует стандартный HTML и CSS; ваш код и данные принадлежат вам, полностью свободны от облачных силосов.
Философия local-first — данные живут на вашем устройстве, синхронизация опциональна, файл является единственной точкой правды — давно обсуждается в сообществе разработчиков. Capsule делает её доступной для всех: не нужно быть разработчиком, чтобы создать полноценный персональный инструмент.
Сочетание Rust + Tauri 2.0 + SQLite + AI-генерация — это стек, который позволяет одному человеку за несколько минут создать то, на что раньше уходили дни разработки и недели DevOps. А то, что результат помещается в один файл и передаётся как документ — делает этот инструмент по-настоящему человекоориентированным.
Если вы ещё не пробовали Capsule — сейчас отличный момент переосмыслить, как вы создаёте и распространяете маленькие рабочие инструменты.