3 pontos por GN⁺ 4 시간 전 | 1 comentários | Compartilhar no WhatsApp
  • 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 .pptx existente 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.html conté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.doc e carregar um documento modificado com window.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.html autocontidos e independentes
  • O software Bento em si é disponibilizado sob a MIT License

1 comentários

 
GN⁺ 4 시간 전
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 DecompressionStream do navegador para manter o pacote pequeno e não buscar arquivos externos em tempo de execução
    Ele 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

    • Parece que você criou uma nova conta no GitHub há uma semana para o projeto; gostaria de saber se existe outra conta do GitHub em que seja possível verificar seu histórico de manutenção e segurança
    • Como ele lida apenas com um único arquivo, fiquei curioso sobre onde o CRDT funciona e onde fica o servidor. Eu gostava do TiddlyWiki, mas nunca aderi de vez; por outro lado, uma apresentação facilmente editável é um caso de uso fácil de entender
      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
    • O recurso mágico do Reveal.js são os slides verticais, que permitem navegar para cima e para baixo como no exemplo. Em um único deck de slides, dá para descer e mostrar conteúdo técnico dependendo da plateia, ou pular essa parte
      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
    • Fico curioso sobre o que acontece com decks de slides v1 quando o Bento for atualizado para a v2. Ao clicar em atualizar, deveria ser possível exportar os dados JSON dos slides existentes para o shell v2
    • O caminho de oferecer suporte aos formatos demoníacos do Office leva ao inferno, então eu preferiria chamá-lo de slideshow em vez de PowerPoint. Espero que um formato simples assim se torne padrão e que os formatos antigos desapareçam
  • 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 arquivo
    També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 nativo

  • Acho 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

    • Conversei com colegas sobre documentos híbridos em que os controles de edição e o conteúdo ficam em um único arquivo HTML. Wikis como o Feather Wiki são precedentes, e fico curioso sobre como isso seria se fosse implementado em SVG ou em planilhas
  • 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

    • Por causa de spam, reiniciei o livro de visitas e agora estamos na epoch 4. O problema de redefinição de foco não apareceu nos testes com apenas uma ou duas pessoas, mas vou corrigi-lo imediatamente
      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

    • O mdwiki, que criei em 2013, também parece se encaixar. Era um único arquivo .html que 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 única
    • Esse rascunho não parece um artigo da Wikipedia, por exemplo ao chamar o leitor de you. 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
    • Diagramas do Ilograph também podem ser exportados como HTML autônomo, como neste exemplo. Eles também têm uma espécie de recurso de slides, e o tamanho do arquivo é de cerca de 560 KB
    • Hyperclay também poderia entrar na lista
    • Quando comecei o Bento, eu só conhecia o TiddlyWiki, então vou dar uma olhada nessa lista
  • É 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

    • Como usamos bastante o draw.io, também avaliamos essa abordagem, mas por enquanto concluímos que era melhor começar com um único arquivo local. No futuro, se recursos corporativos como SSO se tornarem necessários, hospedagem também pode fazer sentido
  • 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

    • Na nossa empresa também, os técnicos criam apresentações em web app incríveis e deixam todo mundo impressionado, mas se os números estiverem errados e precisarem ser corrigidos antes do comitê operacional da tarde, uma pessoa não técnica que só tem Claude, e não Claude Code, fica perdida. Isso porque foi decidido que só técnicos e engenheiros de software podem usar Claude Code
  • 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

    • Também considerei PWA, mas ainda estou refletindo sobre a questão geral de hospedar ou não. Para dar suporte a usos corporativos, provavelmente a hospedagem acabará sendo necessária, mas por enquanto quero me concentrar em criar uma ferramenta simples e elegante
      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