Immaginate una presentazione che porta con sé tutto il necessario per essere aperta, modificata e mostrata, senza dover installare nulla. È esattamente ciò che propone Bento Slides, un progetto open source che tenta di scavalcare sia il vecchio formato PowerPoint sia gli editor che vivono solo nel cloud. Nessun programma dedicato, nessun account, nessun servizio remoto da attivare. Serve un file con estensione .bento.html e un browser moderno, punto.
Le presentazioni costruite in HTML non sono certo una scoperta recente. Framework come reveal.js permettono da tempo di realizzare slide interattive con tecnologie Web, e in giro esistono già esperimenti di documenti portabili e architetture local first. La mossa di Bento sta nel mettere insieme queste idee in un modo che spiazza un po’: dentro lo stesso file convivono il documento, il motore di rendering, l’editor visuale e il player. La prima applicazione pubblica è appunto Bento Slides, ma gli autori parlano anche di Bento Docs e Bento Sheets come progetti in cantiere. Il contenitore, al momento, pesa attorno ai 560-570 KB.
Quando il file contiene anche il programma
Un normale file PPTX conserva testi, immagini, temi e metadati in un archivio ZIP fatto di tanti file XML, e per aprirlo serve comunque un’applicazione capace di leggere quel formato. Bento prende la direzione opposta: genera un documento HTML autonomo che si porta dietro il codice per visualizzare, modificare e presentare il contenuto. Chi riceve il file riceve anche l’editor. Lo può copiare su una chiavetta USB, spedirlo via email, salvarlo su un servizio di storage. Ogni copia resta indipendente.
La parte documentale vive in un blocco JSON leggibile, identificato da uno script con tipo application/bento+json e ID bento-doc. Lì dentro ci sono titolo, elenco delle slide, transizioni, elementi grafici, coordinate, stili. Un dettaglio interessante: uno sviluppatore può ispezionare tutto con un semplice editor di testo ed estrarre i dati senza nemmeno avviare l’app.
Il salvataggio è la parte più curiosa. Il browser carica il file, Bento modifica il modello JSON in memoria e, al momento di salvare, ricostruisce il documento aggiornando il blocco della presentazione. Sui browser compatibili entra in gioco la File System Access API, che permette alla pagina di ottenere un riferimento diretto al file. Peccato che il metodo showSaveFilePicker funzioni su Chrome ed Edge ma non su Firefox, che si affida a un ripiego basato sul download di una nuova copia. Nel primo caso il file si sovrascrive da solo, nell’altro rischiate di ritrovarvi la cartella Download piena di versioni quasi identiche.
Grafici interattivi, video e collaborazione cifrata
L’interfaccia è quella a cui siamo abituati: miniature a sinistra, area di lavoro al centro, pannello delle proprietà a destra. Testi, forme, immagini, tabelle, grafici, video e audio si spostano e ridimensionano direttamente sulla tela. La funzione più caratteristica si chiama Morph: se due elementi in slide consecutive condividono lo stesso identificatore, Bento interpola posizione, dimensione e colore durante il passaggio. Basta duplicare una slide e spostare gli oggetti, il resto lo fa il sistema.
I grafici, per ora a barre, linee, torta e dispersione, restano interattivi durante la presentazione, con tooltip e zoom. Una tabella può alimentare direttamente un grafico, anche se mancano formule avanzate e connessioni a sorgenti dati alla Excel. Per video e audio la scelta è ibrida: i file piccoli vengono incorporati per funzionare offline, quelli grandi restano collegati via URL per non gonfiare il documento.
C’è pure una modalità collaborativa basata su un motore CRDT, che unisce le modifiche concorrenti senza un ordine centrale. La sincronizzazione passa da un relay che riceve solo dati cifrati con AES-GCM tramite la Web Crypto API. Le chiavi però vivono dentro il file: chi possiede una copia autorizzata ha in mano le credenziali della sessione. Se finisce nelle mani sbagliate, tocca ruotare le chiavi e ridistribuire tutto.
Il codice è pubblicato con licenza MIT, il che consente di verificare il formato e mantenere vivo il progetto in caso di abbandono. Va detto però che aprire un file HTML equivale a caricare JavaScript nel browser, e una presentazione arrivata da fonte sconosciuta non è innocua solo perché contiene slide. Prima di portare Bento in un’organizzazione servirebbero controlli seri: revisione del codice, verifica delle firme delle release, una procedura per i file esterni e, se serve, l’apertura in un profilo del browser isolato.


