- Alternativa ao PowerPoint que coloca documentos/editor/editor de visualização/ferramenta de apresentação em um único arquivo
.bento.html, permitindo abrir, editar e apresentar apenas com um navegador - Um único arquivo de cerca de 570 KB funciona como uma aplicação completa e pode ser salvo e enviado por e-mail ou AirDrop sem conta, nuvem ou instalador
- Os dados dos slides são armazenados dentro do arquivo como JSON legível, permitindo que agentes de IA como Claude Code/Codex/Gemini/ChatGPT modifiquem o arquivo diretamente
- Se você também enviar um
.pptxexistente para a IA, ela pode reescrever os slides usando recursos do Bento, como Morph e gráficos em tempo real, em vez de apenas fazer uma conversão simples - Suporta transições Morph, gráficos, vídeo, áudio e colaboração criptografada em tempo real; depois do Slides, a ideia é oferecer também Docs e Sheets no mesmo formato de arquivo único
Um único arquivo é tanto documento quanto app
- O
.bento.htmlcontém os slides e todo o programa de edição juntos - Ao abrir o arquivo no navegador, o editor é executado imediatamente; ao salvar, os dados do documento são gravados de volta no próprio arquivo
- Fontes/imagens/gráficos também ficam incluídos, permitindo abrir e apresentar de forma independente apenas com uma cópia do arquivo
- No modo Offline, atualizações e colaboração são bloqueadas, e todo o trabalho é processado localmente
- É possível executar diretamente pelo navegador em Bento/Slides ou baixar o arquivo de aplicação único
Um formato de documento para agentes de IA
- Os dados do documento são armazenados como JSON em texto puro no bloco
<script type="application/bento+json" id="bento-doc">no topo do arquivo - É possível ler o documento atual com
window.bento.doce carregar um documento modificado comwindow.bento.loadDoc(json) - Agentes de IA podem modificar apenas o JSON, sem tocar no código da aplicação, para adicionar slides, gráficos, notas do apresentador etc.
- Pode ser usado não só por agentes de programação como Claude Code/Cursor/Aider, mas também por chatbots comuns que aceitam anexos de arquivos
- Em chatbots que não oferecem suporte a arquivos, é possível copiar o JSON, modificá-lo e colá-lo de volta
- Com Ollama/llama.cpp/LM Studio, a edição por IA também pode ser executada totalmente localmente
- O agents.md é fornecido para orientar agentes de IA a usar o Bento corretamente
Recursos de apresentação mais próximos da web do que do PowerPoint
- Suporta transições Morph, que movem naturalmente entre slides elementos com o mesmo
id- Ao duplicar um slide existente e mover elementos ou alterar estilos, a transição é criada sem precisar montar uma timeline separada
- Desenha gráficos de barras/linhas/pizza/dispersão com um mecanismo de gráficos próprio, sem dependências
- Gráficos de barras/linhas/pizza/dispersão continuam funcionando durante a apresentação, com tooltips, zoom e troca de dados
- Vídeo e áudio podem ser incluídos dentro dos slides ou vinculados como arquivos externos
- Arquivos PowerPoint existentes não são importados como estão; a IA os reconstrói como documentos Bento
- Também oferece suporte a tela do apresentador, comentários, layouts, exportação para PDF, vários tamanhos de página e 8 idiomas de UI
- A edição é focada em desktop, mas também é possível visualizar e apresentar pelo smartphone
Colaboração local-first
- Ao iniciar uma sessão ao vivo a partir do arquivo, usuários que abrirem cópias do mesmo arquivo entram no espaço colaborativo
- Os dados de colaboração são criptografados de ponta a ponta com AES-GCM, e o servidor de retransmissão processa apenas texto cifrado
- Um CRDT próprio cuida da edição em tempo real e da mesclagem de alterações offline
- A própria chave de colaboração fica dentro do arquivo, então enviar o arquivo funciona como método de convite
- Edições que se divergiram offline são mescladas nos dois sentidos ao reconectar
Roadmap e licença do Bento/Suite
- O Bento/Slides, atualmente em distribuição, é a primeira aplicação do Bento/Suite
- A intenção é oferecer Bento/Docs e Bento/Sheets como arquivos
.bento.htmlautocontidos e independentes - O software Bento em si é disponibilizado sob a MIT License
1 comentários
Opiniões no Hacker News
Sou o criador do Bento. No topo do arquivo há um bloco JSON comum, que contém os dados dos slides, então ele pode ser lido, processado com grep ou manipulado por ferramentas de automação. O app é um blob base64 carregado por um pequeno loader, e é descompactado com o
DecompressionStreamdo navegador para manter o pacote pequeno e não buscar arquivos externos em tempo de execuçãoEle reescreve o JSON no mesmo arquivo usando a File System Access API; quando ela não é compatível, recorre a um download comum, e todas as atualizações são assinadas com ECDSA. Ele foi baseado no reveal.js, com GSAP/Flip e echarts adicionados, mas por problemas de tamanho e comportamento, tanto as animações quanto os gráficos foram reimplementados diretamente
Em especial, estou satisfeito com o fato de a colaboração via CRDT funcionar de forma fluida. Um pequeno relay cego rodando no Cloudflare Durable Objects só vê dados criptografados dos clientes, e a colaboração fica desativada até que uma sessão seja iniciada pelo compartilhamento de um arquivo de convite. As permissões de acesso são gerenciadas por chaves de usuário, permitindo usuários somente leitura, e também é possível revogar permissões de colaboração em tempo real por usuário
Também fico me perguntando se, caso o recurso de colaboração venha habilitado por padrão para todos os usuários, não há risco de concentrar tráfego na conta da Cloudflare
Parece que esse recurso foi removido ao tentar deixá-lo mais parecido com o PowerPoint, mas é meu recurso favorito do Reveal.js, então espero que não seja esquecido
Criei uma ferramenta parecida, mas focada em criar pequenos apps React em vez de apresentações. O HTML básico com um app de exemplo está aqui, e a documentação está aqui; ainda não está polido, mas é usável o suficiente
Ela traz um transformador JSX e editor de código embutidos, oferece suporte a salvamento em arquivo ou em
localStorage, e também permite exportar os dados JSX e JSON separadamente do shell responsável por salvar, transformar e editar o arquivoTambém criei um app para iOS para armazenar miniapps. Ele não depende apenas de
localStorage; salva mudanças de dados e código no longo prazo, deixando o fluxo de salvar e recarregar mais fluido. O sandbox impede chamadas de rede dos apps salvos, mas isso pode ser permitido por app, e no futuro eu gostaria de adicionar conveniências como um editor nativoAcho que esse formato vai se tornar mais comum. Muitos softwares podem ser entregues de forma totalmente local com HTML, TypeScript, React etc., mantendo também o estado localmente, mas até agora faltava incentivo econômico
Pessoalmente, estou usando o Kimi K3 para criar um jogo mobile-friendly que vai de álgebra linear a física quântica. O objetivo é levar em conta usuários neurodivergentes, salvar todo o estado localmente e disponibilizá-lo no GitHub Pages para despertar interesse nessa área. É um projeto que exigiria diversas especializações e muito tempo, então não teria viabilidade econômica sem LLMs; pretendo jogá-lo eu mesmo, melhorá-lo, remover bugs e depois publicá-lo no HN
Usei com prazer o livro de visitas em tempo real, mas no fim meu Mac M1 travou e tive que forçar a reinicialização. Se não for uma situação em que todo o HN esteja editando ao mesmo tempo, provavelmente funciona bem na maior parte dos casos, mas parece haver um motivo para o Figma usar WASM e um renderizador personalizado
O foco de digitação atual não deveria ser redefinido quando outro usuário altera algo não relacionado. Além disso, o texto da landing page e do deck de exemplo soa LLM demais, enquanto o post enviado ao HN é muito mais fácil de ler. É excelente que tenha sido publicado como software livre e open source
Também concordo sobre o problema do texto, mas não tenho confiança na minha escrita e, entre trabalho e criação dos filhos, falta tempo; pretendo melhorar isso gradualmente
Estou divulgando o conceito de web apps de arquivo único, e acho que seria bom adicionar o Bento ao rascunho proposto na Wikipedia
.htmlque incluía imagens, ícones e estilos todos inline e funcionava offline, então eu brincava dizendo que era o primeiro app verdadeiramente de página únicayou. A Wikipedia deve ser uma fonte terciária, não um lugar para promover um conceito que se quer estabelecer, então não parece o local adequadoÉ legal que basta informar ao Claude a tecnologia do Bento para conseguir usá-la
Depois de criar diagramas no draw.io por muito tempo, achei inteligente a forma de salvar o documento como um blob de iframe contendo o editor e o arquivo. Só que, no draw.io, o próprio editor não fica incluído no arquivo, então é preciso carregar o código pela web
Eu esperava que essa abordagem pudesse ser usada como caso de uso principal, e o Bento é quase exatamente o que eu imaginava
Atende a uma demanda muito comum em ambientes corporativos. Algumas equipes dentro da empresa abandonaram produtos de apresentação e visualização, tanto na nuvem quanto desktop, porque bugs não eram corrigidos e recursos personalizados não eram adicionados, migrando para ferramentas baseadas em HTML e JavaScript
Parece que os pequenos detentores de poder nas organizações internas de TI deveriam ficar atentos
Estou pensando em uma ferramenta de apresentação independente que instale um Bento vazio como PWA usando o recurso do navegador de “instalar site como app”, preencha automaticamente o nome do autor etc., torne-o somente leitura e faça o usuário usar “Salvar como”
Seria bom se o projeto incluísse a capacidade de instalar como PWA um documento-base vazio, somente leitura exceto pelas informações do autor
Pretendo analisar melhor quais recursos os usuários querem em uma versão hospedada e como manter os princípios especiais do Bento
Ao criar apresentações HTML com agentes de código, os resultados ficam muito bons. Dependendo do objetivo, dá para usar o Slidev baseado em Markdown, ou até criar com um agente slides em Typst, especialmente bonitos para expressões matemáticas
Mas, pelo título, achei que fosse uma ferramenta diretamente relacionada ao PowerPoint; na prática, usaram PowerPoint como sinônimo de “apresentação”. É meio irônico, considerando que muita gente detesta PowerPoint