Bento sfida PowerPoint: editor e slide vivono in un unico file HTML

Bento Slides integra documento, editor e visualizzatore in un solo file HTML. Il progetto open source funziona offline, supportando animazioni, grafici e collaborazione cifrata.

Un’intera applicazione per creare, modificare e riprodurre presentazioni racchiusa nello stesso file che contiene le slide. È l’idea alla base di Bento Slides, progetto open source che prova a superare tanto il classico formato PowerPoint quanto il modello degli editor ospitati interamente nel cloud. Il documento non richiede un programma dedicato, un account o un servizio remoto: basta aprire un file con estensione .bento.html in un browser moderno.

Le presentazioni basate su HTML non rappresentano una novità: framework come reveal.js permettono da anni di costruire slide interattive usando tecnologie Web, mentre diversi strumenti hanno sperimentato documenti portabili, applicazioni a singolo file e architetture local-first. Bento combina però tali idee in modo piuttosto insolito: il file include il documento, il motore di rendering, l’editor visuale e il player per la presentazione.

La prima applicazione pubblica della suite è Bento Slides; gli autori indicano anche Bento Docs e Bento Sheets come sviluppi futuri. Al momento della pubblicazione, il contenitore applicativo pesa circa 560-570 KB, come si può verificare cliccando sul pulsante Download.

Editor presentazioni HTML alternativa PowerPoint

Il file non contiene soltanto le slide: contiene anche il programma

Una normale presentazione PPTX conserva testi, immagini, temi, relazioni e metadati in un archivio ZIP composto da numerosi file XML. Per aprirla serve comunque un’applicazione capace di interpretare correttamente quel formato. Bento segue la strada opposta: produce un normale documento HTML indipendente che incorpora il codice necessario per visualizzare, modificare e presentare il contenuto.

In pratica, chi riceve il file riceve anche l’editor. Può archiviarlo, copiarlo su una chiavetta USB, inviarlo per posta elettronica oppure conservarlo su un servizio di storage senza dipendere da un’installazione specifica: ogni copia rimane autonoma.

La parte documentale risiede in un blocco JSON leggibile, identificato da uno script con tipo application/bento+json e ID bento-doc. Al suo interno compaiono il titolo, l’elenco delle slide, le transizioni, gli elementi grafici, le coordinate, gli stili e le altre proprietà necessarie al rendering.

La scelta del JSON ha conseguenze interessanti: un amministratore o uno sviluppatore può ispezionare il documento con un editor di testo, estrarre i dati senza avviare Bento e, almeno in linea teorica, creare strumenti indipendenti per analizzarli o convertirli.

Come fa un documento HTML a memorizzare le modifiche

Uno degli aspetti più curiosi riguarda le operazioni di salvataggio. Il browser carica il file, Bento modifica il modello JSON in memoria e, quando l’utente salva, ricostruisce il documento HTML aggiornando il blocco che contiene la presentazione.

Sui browser compatibili può usare la File System Access API, che consente a una pagina web autorizzata dall’utente di ottenere un riferimento al file e aprire un flusso in scrittura.

Il meccanismo passa attraverso oggetti come FileSystemFileHandle e FileSystemWritableFileStream; l’applicazione non acquisisce quindi un accesso indiscriminato al disco, ma opera sul file scelto in modo esplicito.

Qui emerge un limite importante: il metodo showSaveFilePicker non offre ancora un supporto uniforme perché funziona nei browser Chromium, tra cui Chrome ed Edge, mentre Firefox non lo implementa. Bento prevede un ripiego basato sul download di una nuova copia, ma l’esperienza cambia. In un caso il documento può sovrascrivere direttamente sé stesso; nell’altro il browser genera un nuovo file, con il rischio di accumulare versioni quasi identiche nella cartella Download.

L’applicazione mantiene inoltre copie locali di sicurezza e una cronologia delle versioni. Se la scheda si chiude in modo anomalo, Bento può proporre il ripristino del lavoro.

La struttura dell’editor e delle slide Bento

Bento integra testi, forme, immagini, tabelle, grafici, video e audio. L’interfaccia usa un’impostazione familiare: miniature sulla sinistra, area di lavoro centrale e pannello delle proprietà sulla destra. Gli oggetti possono essere spostati e ridimensionati direttamente sulla tela; i componenti Moveable e Selecto gestiscono parte delle interazioni di selezione e trasformazione, mentre reveal.js contribuisce alla modalità di presentazione e alla navigazione tra le slide.

Gli autori dichiarano però di aver sviluppato internamente diversi elementi centrali, tra cui il motore delle animazioni, quello dei grafici e il sistema di sincronizzazione. Il rendering usa un unico modello dati per editor, miniature e modalità di presentazione; tale impostazione riduce il rischio che l’anteprima mostri qualcosa di diverso dal risultato finale.

La funzione più caratteristica si chiama Morph. Quando due elementi presenti in slide consecutive condividono lo stesso identificatore, Bento interpola posizione, dimensione, colore e altre proprietà durante il passaggio. Il metodo più semplice consiste nel duplicare una slide e spostare gli oggetti: gli ID restano invariati e il sistema costruisce automaticamente la transizione.

Supporto di grafici e tabelle

I grafici supportano al momento rappresentazioni a barre, linee, torta e dispersione. Bento li disegna con un motore integrato, senza delegare il lavoro a un servizio esterno; durante la presentazione restano interattivi, con tooltip, zoom e trasformazioni animate tra differenti visualizzazioni degli stessi dati.

Una tabella può alimentare direttamente un grafico: modificando i valori nelle celle, la visualizzazione collegata si aggiorna. È un approccio utile per mantenere numeri e rappresentazione coerenti, anche se non sostituisce le capacità di calcolo di un foglio elettronico: mancano, almeno nella versione iniziale, formule avanzate, connessioni a sorgenti dati e strumenti analitici paragonabili a Excel o LibreOffice Calc.

Audio e video

Per video e audio, Bento adotta una soluzione ibrida. I file piccoli possono essere codificati e incorporati nel documento, preservando il funzionamento offline.

Quelli più grandi restano collegati tramite URL, così la presentazione non cresce fino a centinaia di megabyte. L’incorporamento migliora la portabilità ma aumenta tempi di apertura e salvataggio; il collegamento mantiene il file leggero ma introduce una dipendenza dalla rete e dalla disponibilità della risorsa.

Sono previste anche slide di stato, raggiungibili tramite un clic ma escluse dalla navigazione lineare. Possono servire per mostrare un approfondimento, una scheda tecnica o una variante senza allungare il percorso principale. A queste funzioni si aggiungono rivelazioni al passaggio del puntatore, percorsi di movimento, commenti ancorati agli oggetti e note per il relatore.

Collaborazione in tempo reale senza un archivio centrale

Bento include una modalità collaborativa basata su un motore CRDT, cioè una struttura dati progettata per unire modifiche concorrenti senza richiedere un unico ordine centrale delle operazioni. Due utenti possono lavorare anche dopo una temporanea perdita di connessione; quando tornano online, il sistema prova a riconciliare entrambe le diramazioni.

La sincronizzazione passa attraverso un relay che, secondo la documentazione, riceve soltanto dati cifrati. Bento usa AES-GCM tramite le primitive offerte dalla Web Crypto API: la modalità GCM combina cifratura e autenticazione. Oltre a nascondere il contenuto, consente di rilevare alterazioni del messaggio, purché chiavi, nonce e parametri siano gestiti correttamente.

Le chiavi risiedono nel file della presentazione: possedere una copia autorizzata equivale a disporre delle credenziali necessarie per entrare nella sessione.

La soluzione riduce il valore di un’eventuale violazione del server, perché non esiste un database centrale con tutte le presentazioni in chiaro. Introduce però un’altra responsabilità: chi possiede il file possiede anche l’accesso. Se una copia finisce nelle mani sbagliate, occorre ruotare le chiavi e distribuire nuovamente il documento agli utenti legittimi.

Open source, ma non privo di rischi

Il codice di Bento è pubblicato con licenza MIT. Anche reveal.js, Moveable e Selecto usano la stessa licenza, mentre i caratteri Fraunces e Instrument Sans seguono la SIL Open Font License. La disponibilità dei sorgenti consente di verificare il formato, realizzare una propria versione e mantenere il progetto in caso di abbandono.

Aprire un file HTML equivale però a caricare codice JavaScript nel browser: una presentazione ricevuta da una fonte sconosciuta non va considerata innocua soltanto perché contiene slide. Le protezioni del browser limitano l’accesso al sistema, ma uno script potrebbe tentare collegamenti di rete, mostrare interfacce ingannevoli o sfruttare vulnerabilità del motore web.

Prima di adottare Bento in un’organizzazione servirebbero quindi controlli precisi: revisione del codice distribuito, verifica delle firme delle release, definizione di una procedura per i file provenienti dall’esterno e, dove necessario, apertura in un profilo del browser isolato.

Ti consigliamo anche

Link copiato negli appunti