HeadlinesBriefing favicon HeadlinesBriefing.com

Capsule: Apps Web de arquivo único no SQLite

Hacker News •
×

Hey HN, sempre tive o problema de que criar páginas HTML é simples, mas salvar dados exigia hospedá-los em algum lugar e compartilhar não era fácil. Nos últimos meses, venho construindo um app chamado Capsule (também é o nome da extensão do arquivo) escrito em Rust com Tauri 2.0 que permite empacotar um app HTML e seus dados em um único arquivo SQLite. O arquivo HTML e quaisquer assets relacionados são incorporados diretamente no banco de dados.

Os dados do usuário podem ser salvos como um armazenamento chave/valor localStorage ou via uma API de coleções inspirada no MongoDB como documentos, salvos em uma tabela no arquivo. Você também pode salvar outros assets, como arquivos PDF ou imagens, diretamente no banco de dados para manter diferentes documentos juntos. Todos os dados podem ser facilmente exportados para CSV ou JSON, se necessário.

Privacidade e segurança foram uma grande prioridade, então os documentos não podem fazer nada por padrão. Eles não têm acesso direto ao sistema de arquivos e requerem permissão para acessar a internet. O modelo de permissões ainda é algo em que estou trabalhando para melhorar.

Documentos do Capsule também podem usar modelos de IA locais ou remotos para recursos de IA específicos do documento. Uma desvantagem desta abordagem é que várias pessoas trabalhando nisso criarão cópias diferentes. Para tornar possível mesclar cópias diferentes do mesmo arquivo, cada entrada de dados tem um UUID e timestamp únicos.

Planejo abrir a especificação do formato de arquivo para a versão 1.0 do app para que outros apps possam ler ou escrever arquivos Capsule. Você pode testá-lo na prévia web em https://withcapsule.app/preview com templates pré-construídos ou usar qualquer provedor de IA de sua escolha para criar um app personalizado e otimizado para Capsule. Ainda estou trabalhando no formato de arquivo, mas há migrações para cada nova versão, então os dados nunca devem ser perdidos ao usar versões mais novas do app no futuro.