TL;DR: Il libro è scritto in markdown, compilato con Pandoc e Typst, hostato su un sito statico senza tracker. Tutto è open source. Tutto è libero. Ecco perché.
«Ehi, ma come l'hai fatto questo libro?»
Me lo chiedono in tanti. Non il contenuto — quello, a quanto pare, si spiega da solo. Intendo la costruzione: l'impaginazione, la copertina, i font, la formula dell'I.R.E. che sembra uscita da un manuale di matematica e invece è puro sarcasmo.
La risposta breve è: markdown, Pandoc, Typst e un filtro Lua. Il sito: Zola e Alpine.js. La compilazione: una shell Linux, perché il corporatese si combatte anche dal terminale.
Il libro: markdown come source of truth
Il testo del libro è scritto in markdown. Ogni capitolo è un file .md nella cartella content/. La formattazione speciale — sidebar, mail, formule — è ottenuta con div fenced:
::: sidebar
«We need to schedule a call per allinearci sui *deliverable* del Q3...»
:::
Niente HTML inline, niente CSS nel testo. Il markdown resta leggibile, portabile e convertibile in qualsiasi formato.
Pandoc: il traduttore universale
Il passaggio successivo è Pandoc. Lo script create.sh — uno script bash di 200 righe, perché sono ingegnere e non designer — prende tutti i file .md, li passa a Pandoc con un filtro Lua e li converte nel formato desiderato: PDF per la stampa, PDF per lo schermo, EPUB, copertina KDP.
Il filtro Lua (typst-book-filter.lua) è il vero motore: manipola l'AST di Pandoc per gestire impaginazione avanzata, numerazione condizionale delle sezioni, componenti grafici e differenze strutturali tra PDF ed EPUB.
Typst: l'impaginazione
L'output di Pandoc viene compilato con Typst, un compositore tipografico moderno. Gestisce i margini, i font, le dimensioni, i colori. Il template definisce:
- La palette colori (scuro
#141a24+ accento giallo#e7ff3fper la copertina) - I font: XCharter per il corpo, Work Sans per i titoli, Archivo per la copertina
- Le dimensioni: 6×9 pollici per il formato libro, margini 22mm inside / 16mm outside
- Le funzioni di rendering per ogni componente: titlepage, copyright, sidebar, email, formula, copertine
Il risultato è un PDF tipograficamente curato, con indice cliccabile, intestazioni di parte/capitolo, e una copertina che funziona sia come PDF screen che come file KDP pronto per la stampa.
Il sito: Zola + Alpine.js
Il sito è generato da Zola, un generatore statico in Rust. I contenuti sono in markdown. I template sono in Tera. Il CSS è compilato da sorgenti in Sass scritti a mano. L'interattività è Alpine.js, self-hosted.
Il calcolatore I.R.E. è un componente Alpine di ~100 righe di JavaScript: conteggio automatico di parole inglesi e sillabe, calcolo della formula, badge di valutazione con tre fasce di rischio.
Niente framework JavaScript, niente bundler, niente node_modules. Il sito pesa poco, carica in fretta e non ha dipendenze che possono rompersi.
La shell: il massimo dell'indipendenza
Perché Linux? Perché PowerShell è il dialetto di chi ha già accettato il sistema. È il dialetto di chi apre Outlook alle 8:02 e chiude Teams alle 18:47. È la shell che ti chiede il permesso anche per creare una cartella.
Bash non ti chiede niente. Scrivi chmod +x create.sh, premi Invio, e il tuo libro viene compilato. Non c'è un dialog di conferma, non c'è un «Vuoi davvero eseguire questo script?», non c'è un aggiornamento di Windows che riavvia la macchina a metà build.
C'è un prompt. Un cursore. E la libertà di fare quello che hai deciso.
Il principio: nessuna catena di montaggio
La scelta della toolchain non è casuale. È lo stesso principio del libro: non farti ingabbiare da un formato proprietario.
- Il testo è markdown: leggibile ovunque, convertibile ovunque, versionabile con git
- La compilazione è scriptata: un comando e rigeneri tutto
- Il sito è statico: nessuna vulnerabilità, nessun database, nessun CMS da aggiornare
- I font sono self-hosted: nessuna richiesta a CDN esterni
- Il sistema operativo è Linux: nessun vendor lock-in, nessun aggiornamento forzato
Se domani Zola scompare, il markdown resta. Se Pandoc cambia API, il testo è ancora lì. Se il sito va offline, il PDF funziona ancora. Se Microsoft decide che PowerShell 8 non è retrocompatibile, a me non cambia niente.
È la stessa logica del capitolo 16: il lavoro è un contratto commerciale, non un'identità. Il libro è un file, non un vincolo.
Epilogo: il commit finale
L'ultima versione del libro è stata compilata con quattro comandi. Quattro formati. Zero Word, zero InDesign, zero abbonamenti a software che ti chiedono di «allineare gli stakeholder del layout». Zero dialog di conferma. Zero riavvii forzati. Zero «Il tuo PC verrà aggiornato tra 5 minuti».
Il libro è libero. Il sito è libero. E tu, finalmente, puoi leggerlo in pace.
Anche in ufficio, se vuoi. Ma se il capo passa, digli che stai analizzando un report strategico sulla retention dei talenti.
Oppure, se sei già libero, non dire niente. Chiudi il portatile, apri un terminale, e fai quello che hai sempre voluto fare:
sudo rm -rf /var/corporate/bullshit/
