robertobonfa.dev
Il sito che stai guardando: un desktop simulato nel browser, con finestre, dock e icone, che raccoglie i progetti degli ultimi anni.
Perché
Un portfolio di solito si scorre. Questo si usa. L'idea era che il contenitore raccontasse qualcosa quanto il contenuto: chi arriva qui capisce in dieci secondi che dietro c'è qualcuno che costruisce cose, perché la prima cosa che incontra è una cosa costruita.
La scelta di partenza è stata rinunciare a tutto quello che di solito si dà per scontato. Niente framework, niente processo di compilazione, nessuna dipendenza da aggiornare: i file che si scrivono sono esattamente quelli che finiscono online. Fra tre anni questo sito si aprirà ancora: per modificarlo basterà un editor di testo.
Il vincolo più interessante è arrivato dagli schermi piccoli. Un desktop con finestre trascinabili su un telefono non ha senso, ma nemmeno riscrivere il sito due volte: sotto una certa larghezza la metafora cambia da sola, il desktop diventa una home con la griglia delle icone e le finestre si aprono a schermo intero. Stesso codice, due comportamenti.
Come è fatto
Il cuore è un gestore di finestre che non sa nulla dei contenuti: apre, chiude, riduce a icona, ingrandisce, sposta, ridimensiona e tiene l'ordine di sovrapposizione. Ogni sezione del sito è una piccola applicazione che dichiara titolo, icona, dimensione preferita e come disegnarsi. Aggiungere un progetto significa aggiungere un file, non toccare il resto.
Ogni finestra ha un indirizzo condivisibile: aprirlo da zero riapre quella vista. È il motivo per cui l'informativa sulla privacy dell'app iOS ha un collegamento diretto che funziona anche per chi non esegue JavaScript, come richiede la revisione dell'App Store.
Tutti i testi vivono in file separati, in italiano e in inglese, caricati al momento e convertiti in pagina da un convertitore Markdown scritto apposta. Il modulo dei contatti parla con un servizio in Python di sola libreria standard, in ascolto solo sull'indirizzo locale, con difese contro l'invio automatico e un limite di frequenza.
Il sito è ospitato in casa, su un contenitore Debian minuscolo servito da nginx. Raggiunge internet attraverso un tunnel: nessuna porta aperta sul router. Le regole di sicurezza del server permettono soltanto i due domini dei lettori musicali e nient'altro. Gli sfondi che si possono scegliere nelle impostazioni non sono immagini trovate: sono generati da un altro progetto di questa stessa raccolta.
- JavaScript
- CSS
- Python
- nginx


