HeadlinesBriefing favicon HeadlinesBriefing.com

Capsule: Apps Web de un archivo en SQLite

Hacker News •
×

Hey HN, siempre he tenido el problema de que crear páginas HTML es simple, pero guardar datos requería alojarlos en algún lugar y compartirlos no era fácil. En los últimos meses, he estado construyendo una app llamada Capsule (también es el nombre de la extensión de archivo) escrita en Rust con Tauri 2.0 que permite empaquetar una app HTML y sus datos en un solo archivo SQLite. El archivo HTML y cualquier recurso relacionado se incrustan directamente en la base de datos.

Los datos del usuario pueden guardarse como un almacén clave/valor localStorage o mediante una API de colecciones inspirada en MongoDB como documentos, guardados en una tabla del archivo. También puedes guardar otros recursos, como archivos PDF o imágenes, directamente en la base de datos para mantener diferentes documentos juntos. Todos los datos se pueden exportar fácilmente a CSV o JSON si es necesario.

La privacidad y la seguridad fueron una gran prioridad, así que los documentos no pueden hacer nada de forma predeterminada. No tienen acceso directo al sistema de archivos y requieren permiso para acceder a internet. El modelo de permisos es algo en lo que sigo trabajando para mejorar.

Los documentos de Capsule también pueden usar modelos de IA locales o remotos para funciones de IA específicas del documento. Un inconveniente de este enfoque es que varias personas trabajando en él crearán copias diferentes. Para hacer posible fusionar diferentes copias del mismo archivo, cada entrada de datos tiene un UUID y una marca de tiempo únicos.

Planeo abrir la especificación del formato de archivo para la versión 1.0 de la app para que otras apps puedan leer o escribir archivos Capsule. Puedes probarlo en la vista previa web en https://withcapsule.app/preview con plantillas preconstruidas o usar cualquier proveedor de IA de tu elección para crear una app personalizada optimizada para Capsule. Todavía estoy trabajando en el formato de archivo, pero hay migraciones para cada nueva versión, por lo que los datos nunca se perderán al usar versiones más nuevas de la app en el futuro.